函数逻辑报告 |
Source Code:ipc\mqueue.c |
Create Date:2022-07-27 18:27:04 |
Last Modify:2020-03-17 23:00:47 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:Notes: the case when user wants us to deregister (with NULL as pointer)* and he isn't currently owner of notification, will be silently discarded.* It isn't explicitly defined in the POSIX.
函数原型:static int do_mq_notify(mqd_t mqdes, const struct sigevent *notification)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
mqd_t | mqdes | |
const struct sigevent * | notification |
1225 | audit_mq_notify(mqdes, notification) |
1227 | nc = NULL |
1228 | sock = NULL |
1229 | 如果(notification != NULL)则 |
1230 | 如果此条件成立可能性小(为编译器优化)(sigev_notify != her notification: meaningless && sigev_notify != ify via signal && sigev_notify != deliver via thread creation )则返回:负EINVAL |
1236 | 返回:负EINVAL |
1238 | 如果sigev_notify恒等于deliver via thread creation 则 |
1246 | 如果copy_from_user(data, sival_ptr, NOTIFY_COOKIE_LEN)则 |
1254 | 设置数据在缓存区 |
1256 | retry : |
1257 | f等于fdget(sigev_signo) |
1258 | 如果非file则 |
1262 | sock等于grained unicast helpers: |
1264 | 如果是错误则 |
1269 | timeo等于MAX_SCHEDULE_TIMEOUT |
1270 | ret等于netlink_attachskb(sock, nc, & timeo, NULL) |
1271 | 如果ret恒等于1则 |
1281 | 如果非file则 |
1286 | inode等于file_inode(file) |
1287 | 如果此条件成立可能性小(为编译器优化)(f_op != & mqueue_file_operations)则 |
1293 | ret等于0 |
1294 | 加自旋锁 |
1295 | 如果(notification == NULL)则 |
1296 | 如果notify_owner恒等于task_tgid(当前进程)则 |
1297 | remove_notification(info) |
1298 | i_atime等于i_ctime等于current_time(inode) |
1300 | 否则如果(notify_owner != NULL)则 |
1302 | 否则 |
1306 | 退出 |
1314 | 当:sigev_notify恒等于ify via signal |
1315 | sigev_signo等于sigev_signo |
1316 | sigev_value等于sigev_value |
1317 | sigev_notify等于ify via signal |
1318 | 退出 |
1321 | notify_owner等于get_pid(task_tgid(当前进程)) |
1322 | notify_user_ns等于get_user_ns(current_user_ns()) |
1323 | i_atime等于i_ctime等于current_time(inode) |
1325 | 自旋锁解锁 |
1326 | out_fput : |
1328 | out : |
1329 | 如果sock则netlink_detachskb(sock, nc) |
1331 | 否则free_skb : |
1333 | dev_kfree_skb(nc) |
1335 | 返回:ret |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |