Function report | 
Source Code:arch\x86\kernel\ldt.c | 
Create Date:2022-07-28 07:35:41 | 
| Last Modify:2022-05-18 16:20:29 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:write_ldt
Proto:static int write_ldt(void __user *ptr, unsigned long bytecount, int oldmode)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| void __user * | ptr | |
| unsigned long | bytecount | |
| int | oldmode | 
| 477 | If copy_from_user( & ldt_info, ptr, size of ldt_info ) Then Go to out | 
| 481 | If entry_number >= Maximum number of LDT entries supported. Then Go to out | 
| 483 | If contents == 3 Then | 
| 486 | If seg_not_present == 0 Then Go to out | 
| 490 | If oldmode && Not base_addr && Not limit || This intentionally ignores lm, since 32-bit apps don't have that field. ( & ldt_info) Then | 
| 494 | Else | 
| 505 | If down_write_killable( & ldt_usr_sem) Then Return -EINTR | 
| 509 | old_nr_entries = If old_ldt Then nr_entries Else 0 | 
| 510 | new_nr_entries = max - return maximum of two values of the same or compatible types*@x: first value*@y: second value(entry_number + 1, old_nr_entries) | 
| 514 | If Not new_ldt Then Go to out_unlock | 
| 517 | If old_ldt Then memcpy(entries, entries, old_nr_entries * The size of each LDT entry. ) | 
| 520 | entries[entry_number] = ldt | 
| 530 | If error Then | 
| 536 | If Not WARN_ON_ONCE(old_ldt) Then free_ldt_pgtables(mm) | 
| 538 | free_ldt_struct(new_ldt) | 
| 539 | Go to out_unlock | 
| 542 | install_ldt(mm, new_ldt) | 
| 543 | unmap_ldt_struct(mm, old_ldt) | 
| 544 | free_ldt_struct(old_ldt) | 
| 545 | error = 0 | 
| 547 | out_unlock : | 
| 549 | out : | 
| 550 | Return error | 
| Source code conversion tool public plug-in interface  | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion  |