函数逻辑报告 |
Source Code:ipc\mqueue.c |
Create Date:2022-07-27 18:25:39 |
| Last Modify:2020-03-17 23:00:47 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:mqueue_get_inode
函数原型:static struct inode *mqueue_get_inode(struct super_block *sb, struct ipc_namespace *ipc_ns, umode_t mode, struct mq_attr *attr)
返回类型:struct inode
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct super_block * | sb | |
| struct ipc_namespace * | ipc_ns | |
| umode_t | mode | |
| struct mq_attr * | attr |
| 235 | u等于current_user() |
| 245 | i_uid等于current_fsuid() |
| 246 | i_gid等于current_fsgid() |
| 247 | i_mtime等于i_ctime等于i_atime等于current_time(inode) |
| 254 | i_size等于FILENT_SIZE |
| 257 | spin_lock_init( & lock) |
| 258 | init_waitqueue_head( & wait_q) |
| 259 | 初始化链表头 |
| 260 | 初始化链表头 |
| 261 | notify_owner = NULL |
| 262 | notify_user_ns = NULL |
| 264 | user who created, for accounting = NULL |
| 265 | msg_tree = |
| 266 | msg_tree_rightmost = NULL |
| 267 | node_cache = NULL |
| 273 | 如果attr则 |
| 292 | 如果 maximum number of messages 小于等于0或 maximum message size 小于等于0则转到:out_inode |
| 294 | 如果操作权限检查则 |
| 298 | 否则 |
| 305 | 如果 maximum message size 大于ULONG_MAX除 maximum number of messages 则转到:out_inode |
| 311 | 如果mq_bytes加mq_treesize小于mq_bytes则转到:out_inode |
| 313 | mq_bytes加等于mq_treesize |
| 314 | 加自旋锁 |
| 323 | 自旋锁解锁 |
| 330 | i_size等于2乘DIRENT_SIZE |
| 335 | 返回:inode |
| 336 | out_inode : |
| 337 | 放置一个索引节点 |
| 338 | err : |
| 339 | 返回:错误号 |
| 名称 | 描述 |
|---|---|
| mqueue_fill_super | |
| mqueue_create_attr |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |