| 函数逻辑报告 | 
| 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 插件可实现:逻辑报告 代码生成和批量转换代码 |