do_syscall_64 函数

x86_64  4.15.1内核do_syscall_64 函数中nr和ori_ax和ax中应该是过滤过得系统调用号,我看网上帖子都是说系统调用号,我真是无语了。我是自己编译内核打印nr  ori_ax  ax值得,不知道网上帖子有没有测试,就在哪里瞎扯淡

mq_timedsend是在glibc中的一个系统调用接口,用于向一个消息队列发送消息。在glibc中,有两个调用mq_timedsend系统调用的接口:mq_send和mq_timedsend。这些接口最终会通过linux内核系统调用mq_timedsend进入内核。具体的系统调用源码可以在glibc源码中找到,其格式如下: SYSCALL_DEFINE5(mq_timedsend, mqd_t, mqdes, const char __user *, u_msg_ptr, size_t, msg_len, unsigned int, msg_prio, const struct __kernel_timespec __user *, u_abs_timeout) { struct timespec64 ts, *p = NULL; if (u_abs_timeout) { int res = prepare_timeout(u_abs_timeout, &ts); if (res) return res; p = &ts; } return do_mq_timedsend(mqdes, u_msg_ptr, msg_len, msg_prio, p); } 这段代码定义了mq_timedsend系统调用的参数和返回值。其中,mqdes是消息队列的描述符,u_msg_ptr是指向消息内容的指针,msg_len是消息的长度,msg_prio是消息的优先级,u_abs_timeout是超时时间。如果设置了超时时间,会调用prepare_timeout函数进行超时时间的准备,并传递给do_mq_timedsend函数进行实际的消息发送操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux mq在内核的发送、唤醒流程简介](https://blog.csdn.net/u012075739/article/details/127173875)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值