Function report |
Source Code:fs\quota\compat.c |
Create Date:2022-07-28 20:33:52 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:COMPAT_SYSCALL_DEFINE4
Proto:COMPAT_SYSCALL_DEFINE4(quotactl32, unsigned int, cmd, const char __user *, special, qid_t, id, void __user *, addr)
Type:
Parameter:Nothing
| 50 | __user * compat_dqblk |
| 52 | __user * compat_fsqstat |
| 57 | cmds = cmd >> SUBCMDSHIFT |
| 60 | Case cmds == get user quota structure |
| 61 | dqblk = Allocate user-space memory for the duration of a single system call,* in order to marshall parameters inside a compat thunk. |
| 62 | compat_dqblk = addr |
| 64 | If ret Then Break |
| 66 | If copy_in_user(compat_dqblk, dqblk, size of compat_dqblk ) || Get a simple variable from user space(data, & dqb_valid) || Write a simple value into user space(data, & dqb_valid) Then ret = -EFAULT |
| 70 | Break |
| 71 | Case cmds == set user quota structure |
| 72 | dqblk = Allocate user-space memory for the duration of a single system call,* in order to marshall parameters inside a compat thunk. |
| 73 | compat_dqblk = addr |
| 75 | If copy_in_user(dqblk, compat_dqblk, size of compat_dqblk ) || Get a simple variable from user space(data, & dqb_valid) || Write a simple value into user space(data, & dqb_valid) Then Break |
| 80 | Break |
| 81 | Case cmds == get quota subsystem status |
| 82 | fsqstat = Allocate user-space memory for the duration of a single system call,* in order to marshall parameters inside a compat thunk. |
| 83 | compat_fsqstat = addr |
| 85 | If ret Then Break |
| 89 | If copy_in_user(compat_fsqstat, fsqstat, offsetof(structcompat_fs_quota_stat, qs_uquota)) Then Break |
| 93 | If copy_in_user( & qs_uquota, & user quota storage information , size of qs_uquota ) || Get a simple variable from user space(data, & umber of extents ) || Write a simple value into user space(data, & qfs_nextents) Then Break |
| 100 | If copy_in_user( & qs_gquota, & group quota storage information , size of qs_gquota ) || Get a simple variable from user space(data, & umber of extents ) || Write a simple value into user space(data, & qfs_nextents) Then Break |
| 107 | If copy_in_user( & qs_incoredqs, & number of dquots incore , sizeof(structcompat_fs_quota_stat) - offsetof(structcompat_fs_quota_stat, qs_incoredqs)) || Get a simple variable from user space(xdata, & limit for num warnings ) || Write a simple value into user space(xdata, & qs_iwarnlimit) Then Break |
| 114 | ret = 0 |
| 115 | Break |
| 116 | Default |
| 119 | Return ret |
| 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 |