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