函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:fs\quota\compat.c Create Date:2022-07-29 11:10:29
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:COMPAT_SYSCALL_DEFINE4

函数原型:COMPAT_SYSCALL_DEFINE4(quotactl32, unsigned int, cmd, const char __user *, special, qid_t, id, void __user *, addr)

返回类型:

参数:

49  __userdqblk
50  __usercompat_dqblk
51  __userfsqstat
52  __usercompat_fsqstat
57  cmds等于cmd右移SUBCMDSHIFT
60  :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
63  ret等于This is the system call interface. This communicates with* the user-level programs. Currently this only supports diskquota* calls. Maybe we need to add the process quotas etc. in the future,* but we probably should use rlimits for that.
64  如果ret退出
66  如果copy_in_user(compat_dqblk, dqblk, compat_dqblk的长度)或Careful: we have to cast the result to the type of the pointer* for sign reasons(data, & dqb_valid)或put_user - Write a simple value into user space(data, & dqb_valid)则ret等于负EFAULT
70  退出
71  :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
74  ret等于负EFAULT
75  如果copy_in_user(dqblk, compat_dqblk, compat_dqblk的长度)或Careful: we have to cast the result to the type of the pointer* for sign reasons(data, & dqb_valid)或put_user - Write a simple value into user space(data, & dqb_valid)则退出
79  ret等于This is the system call interface. This communicates with* the user-level programs. Currently this only supports diskquota* calls. Maybe we need to add the process quotas etc. in the future,* but we probably should use rlimits for that.
80  退出
81  :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
84  ret等于This is the system call interface. This communicates with* the user-level programs. Currently this only supports diskquota* calls. Maybe we need to add the process quotas etc. in the future,* but we probably should use rlimits for that.
85  如果ret退出
87  ret等于负EFAULT
89  如果copy_in_user(compat_fsqstat, fsqstat, offsetof(structcompat_fs_quota_stat, qs_uquota))则退出
93  如果copy_in_user( & qs_uquota, & user quota storage information , qs_uquota的长度)或Careful: we have to cast the result to the type of the pointer* for sign reasons(data, & umber of extents )或put_user - Write a simple value into user space(data, & qfs_nextents)则退出
100  如果copy_in_user( & qs_gquota, & group quota storage information , qs_gquota的长度)或Careful: we have to cast the result to the type of the pointer* for sign reasons(data, & umber of extents )或put_user - Write a simple value into user space(data, & qfs_nextents)则退出
107  如果copy_in_user( & qs_incoredqs, & number of dquots incore , sizeof(structcompat_fs_quota_stat) - offsetof(structcompat_fs_quota_stat, qs_incoredqs))或Careful: we have to cast the result to the type of the pointer* for sign reasons(xdata, & limit for num warnings )或put_user - Write a simple value into user space(xdata, & qs_iwarnlimit)则退出
114  ret等于0
115  退出
116  默认
117  ret等于This is the system call interface. This communicates with* the user-level programs. Currently this only supports diskquota* calls. Maybe we need to add the process quotas etc. in the future,* but we probably should use rlimits for that.
119  返回:ret