Home
last modified time | relevance | path

Searched refs:cmsg (Results 1 – 25 of 56) sorted by relevance

123

/linux/drivers/isdn/capi/
H A Dcapiutil.c231 #define TYP (cdef[cmsg->par[cmsg->p]].typ)
232 #define OFF (((u8 *)cmsg) + cdef[cmsg->par[cmsg->p]].off)
234 static void jumpcstruct(_cmsg *cmsg) in jumpcstruct() argument
237 for (cmsg->p++, layer = 1; layer;) { in jumpcstruct()
239 cmsg->p++; in jumpcstruct()
464 #define NAME (pnames[cmsg->par[cmsg->p]])
466 static _cdebbuf *protocol_message_2_pars(_cdebbuf *cdb, _cmsg *cmsg, int level) in protocol_message_2_pars() argument
468 if (!cmsg->par) in protocol_message_2_pars()
471 for (; TYP != _CEND; cmsg->p++) { in protocol_message_2_pars()
483 cdb = bufprint(cdb, "%-*s = 0x%x\n", slen, NAME, *(u8 *) (cmsg->m + cmsg->l)); in protocol_message_2_pars()
[all …]
/linux/tools/testing/selftests/net/
H A Dcmsg_sender.c77 } cmsg; member
178 opt.cmsg.dontfrag.ena = true; in cs_parse_args()
179 opt.cmsg.dontfrag.val = atoi(optarg); in cs_parse_args()
185 opt.cmsg.tclass.ena = true; in cs_parse_args()
186 opt.cmsg.tclass.val = atoi(optarg); in cs_parse_args()
192 opt.cmsg.hlimit.ena = true; in cs_parse_args()
193 opt.cmsg.hlimit.val = atoi(optarg); in cs_parse_args()
199 opt.cmsg.exthdr.ena = true; in cs_parse_args()
202 opt.cmsg.exthdr.val = IPV6_HOPOPTS; in cs_parse_args()
205 opt.cmsg.exthdr.val = IPV6_DSTOPTS; in cs_parse_args()
[all …]
H A Dudpgso_bench_tx.c139 static void flush_cmsg(struct cmsghdr *cmsg) in flush_cmsg() argument
147 switch (cmsg->cmsg_level) { in flush_cmsg()
149 if (cmsg->cmsg_type == SO_TIMESTAMPING) { in flush_cmsg()
151 tss = (struct scm_timestamping *)CMSG_DATA(cmsg); in flush_cmsg()
156 cmsg->cmsg_type); in flush_cmsg()
161 switch (cmsg->cmsg_type) { in flush_cmsg()
165 err = (struct sock_extended_err *)CMSG_DATA(cmsg); in flush_cmsg()
200 cmsg->cmsg_type); in flush_cmsg()
206 cmsg->cmsg_level); in flush_cmsg()
216 struct cmsghdr *cmsg; in flush_errqueue_recv() local
[all …]
H A Dtimestamping.c159 struct cmsghdr *cmsg; in printpacket() local
172 for (cmsg = CMSG_FIRSTHDR(msg); in printpacket()
173 cmsg; in printpacket()
174 cmsg = CMSG_NXTHDR(msg, cmsg)) { in printpacket()
175 printf(" cmsg len %zu: ", cmsg->cmsg_len); in printpacket()
176 switch (cmsg->cmsg_level) { in printpacket()
179 switch (cmsg->cmsg_type) { in printpacket()
182 (struct timeval *)CMSG_DATA(cmsg); in printpacket()
190 (struct timespec *)CMSG_DATA(cmsg); in printpacket()
198 (struct timespec *)CMSG_DATA(cmsg); in printpacket()
[all …]
H A Dso_rcv_listener.c72 struct cmsghdr *cmsg; in main() local
146 for (cmsg = CMSG_FIRSTHDR(&msg); cmsg != NULL; cmsg = CMSG_NXTHDR(&msg, cmsg)) { in main()
147 if (cmsg->cmsg_level == SOL_SOCKET && cmsg->cmsg_type == opt.name) { in main()
148 recv_val = *(__u32 *)CMSG_DATA(cmsg); in main()
H A Drxtimestamp.c201 struct cmsghdr *cmsg; in do_recv() local
225 for (cmsg = CMSG_FIRSTHDR(&hdr); cmsg != NULL; in do_recv()
226 cmsg = CMSG_NXTHDR(&hdr, cmsg)) { in do_recv()
227 if (cmsg->cmsg_level != SOL_SOCKET) in do_recv()
229 cmsg->cmsg_level); in do_recv()
230 switch (cmsg->cmsg_type) { in do_recv()
238 ts = (struct scm_timestamping *)CMSG_DATA(cmsg); in do_recv()
245 error(1, 0, "Unexpected cmsg_type %d", cmsg->cmsg_type); in do_recv()
H A Dudpgso_bench_rx.c220 struct cmsghdr *cmsg; in recv_msg() local
235 for (cmsg = CMSG_FIRSTHDR(&msg); cmsg != NULL; in recv_msg()
236 cmsg = CMSG_NXTHDR(&msg, cmsg)) { in recv_msg()
237 if (cmsg->cmsg_level == SOL_UDP in recv_msg()
238 && cmsg->cmsg_type == UDP_GRO) { in recv_msg()
239 *gso_size = *(int *)CMSG_DATA(cmsg); in recv_msg()
H A Dtxtimestamp.c350 fprintf(stderr, "unknown cmsg %d,%d\n", in __recv_errmsg_cmsg()
493 struct cmsghdr *cmsg; in do_test() local
637 cmsg = NULL; in do_test()
639 cmsg = CMSG_FIRSTHDR(&msg); in do_test()
640 cmsg->cmsg_level = SOL_SOCKET; in do_test()
641 cmsg->cmsg_type = SO_TIMESTAMPING; in do_test()
642 cmsg->cmsg_len = CMSG_LEN(sizeof(uint32_t)); in do_test()
644 *((uint32_t *)CMSG_DATA(cmsg)) = report_opt; in do_test()
647 cmsg = cmsg in do_test()
[all...]
/linux/net/handshake/
H A Dalert.c39 struct cmsghdr *cmsg; in tls_alert_send() local
56 cmsg = CMSG_FIRSTHDR(&msg); in tls_alert_send()
57 cmsg->cmsg_level = SOL_TLS; in tls_alert_send()
58 cmsg->cmsg_type = TLS_SET_RECORD_TYPE; in tls_alert_send()
59 cmsg->cmsg_len = CMSG_LEN(sizeof(record_type)); in tls_alert_send()
60 memcpy(CMSG_DATA(cmsg), &record_type, sizeof(record_type)); in tls_alert_send()
74 u8 tls_get_record_type(const struct sock *sk, const struct cmsghdr *cmsg) in tls_get_record_type() argument
78 if (cmsg->cmsg_level != SOL_TLS) in tls_get_record_type()
80 if (cmsg->cmsg_type != TLS_GET_RECORD_TYPE) in tls_get_record_type()
83 record_type = *((u8 *)CMSG_DATA(cmsg)); in tls_get_record_type()
/linux/tools/testing/selftests/namespaces/
H A Dsiocgskns_test.c121 struct cmsghdr *cmsg = CMSG_FIRSTHDR(&msg); in TEST() local
122 cmsg->cmsg_level = SOL_SOCKET; in TEST()
123 cmsg->cmsg_type = SCM_RIGHTS; in TEST()
124 cmsg->cmsg_len = CMSG_LEN(sizeof(int)); in TEST()
125 memcpy(CMSG_DATA(cmsg), &sock_fd, sizeof(int)); in TEST()
157 struct cmsghdr *cmsg = CMSG_FIRSTHDR(&msg); in TEST() local
158 ASSERT_NE(cmsg, NULL); in TEST()
159 ASSERT_EQ(cmsg->cmsg_type, SCM_RIGHTS); in TEST()
161 memcpy(&sock_fd, CMSG_DATA(cmsg), sizeof(int)); in TEST()
457 struct cmsghdr *cmsg = CMSG_FIRSTHDR(&msg); in TEST() local
[all …]
/linux/include/linux/
H A Dsocket.h131 #define __CMSG_NXTHDR(ctl, len, cmsg) __cmsg_nxthdr((ctl),(len),(cmsg))
132 #define CMSG_NXTHDR(mhdr, cmsg) cmsg_nxthdr((mhdr), (cmsg)) argument
136 #define CMSG_DATA(cmsg) \ argument
137 ((void *)(cmsg) + sizeof(struct cmsghdr))
138 #define CMSG_USER_DATA(cmsg) \
139 ((void __user *)(cmsg) + sizeof(struct cmsghdr))
147 #define CMSG_OK(mhdr, cmsg) ((cmsg)
116 __CMSG_NXTHDR(ctl,len,cmsg) global() argument
117 CMSG_NXTHDR(mhdr,cmsg) global() argument
121 CMSG_DATA(cmsg) global() argument
123 CMSG_USER_DATA(cmsg) global() argument
[all...]
/linux/tools/perf/trace/beauty/include/linux/
H A Dsocket.h131 #define __CMSG_NXTHDR(ctl, len, cmsg) __cmsg_nxthdr((ctl),(len),(cmsg)) argument
132 #define CMSG_NXTHDR(mhdr, cmsg) cmsg_nxthdr((mhdr), (cmsg)) argument
136 #define CMSG_DATA(cmsg) \ argument
137 ((void *)(cmsg) + sizeof(struct cmsghdr))
138 #define CMSG_USER_DATA(cmsg) \ argument
139 ((void __user *)(cmsg) + sizeof(struct cmsghdr))
147 #define CMSG_OK(mhdr, cmsg) ((cmsg)->cmsg_len >= sizeof(struct cmsghdr) && \ argument
148 (cmsg)->cmsg_len <= (unsigned long) \
150 ((char *)(cmsg) - (char *)(mhdr)->msg_control)))
151 #define for_each_cmsghdr(cmsg, msg) \ argument
[all …]
/linux/Documentation/translations/zh_CN/networking/
H A Dtimestamping.rst83 也可以通过 cmsg 为单个 sendmsg 调用启用时间戳生成(1.3.4)。
179 cmsg = CMSG_FIRSTHDR(msg);
180 cmsg->cmsg_level = SOL_SOCKET;
181 cmsg->cmsg_type = SCM_TS_OPT_ID;
182 cmsg->cmsg_len = CMSG_LEN(sizeof(__u32));
183 *((__u32 *) CMSG_DATA(cmsg)) = opt_id;
211 支持所有时间戳数据包的 recv() cmsg。控制消息已无条件地在所有接收时间戳数据包
218 仅适用于传输时间戳。使内核返回一个 cmsg 与一个空数据包一起,而不是与原
256 例外情况是当进程需要额外的 cmsg 数据时,例如 SOL_IP/IP_PKTINFO 以检测出
264 除了套接字选项外,时间戳生成还可以通过 cmsg 按写入请求,仅适用于
[all …]
/linux/tools/testing/selftests/net/af_unix/
H A Dscm_inq.c71 struct cmsghdr *cmsg; in recv_chunks() local
91 cmsg = CMSG_FIRSTHDR(&msg); in recv_chunks()
92 ASSERT_NE(NULL, cmsg); in recv_chunks()
93 ASSERT_EQ(CMSG_LEN(sizeof(int)), cmsg->cmsg_len); in recv_chunks()
94 ASSERT_EQ(SOL_SOCKET, cmsg->cmsg_level); in recv_chunks()
95 ASSERT_EQ(SCM_INQ, cmsg->cmsg_type); in recv_chunks()
99 ASSERT_EQ(*(int *)CMSG_DATA(cmsg), inq); in recv_chunks()
H A Dscm_pidfd.c139 struct cmsghdr *cmsg; in parse_cmsg() local
146 for (cmsg = CMSG_FIRSTHDR(msg); cmsg != NULL; in parse_cmsg()
147 cmsg = CMSG_NXTHDR(msg, cmsg)) { in parse_cmsg()
148 if (cmsg->cmsg_level == SOL_SOCKET && in parse_cmsg()
149 cmsg->cmsg_type == SCM_PIDFD) { in parse_cmsg()
150 if (cmsg->cmsg_len < sizeof(*res->pidfd)) { in parse_cmsg()
155 res->pidfd = (void *)CMSG_DATA(cmsg); in parse_cmsg()
158 if (cmsg->cmsg_level == SOL_SOCKET && in parse_cmsg()
159 cmsg->cmsg_type == SCM_CREDENTIALS) { in parse_cmsg()
160 if (cmsg->cmsg_len < sizeof(*res->ucred)) { in parse_cmsg()
[all …]
H A Dscm_rights.c291 struct cmsghdr *cmsg; in __send_fd() local
294 cmsg = CMSG_FIRSTHDR(&msg); in __send_fd()
295 cmsg->cmsg_level = SOL_SOCKET; in __send_fd()
296 cmsg->cmsg_type = SCM_RIGHTS; in __send_fd()
297 cmsg->cmsg_len = CMSG_LEN(sizeof(fds)); in __send_fd()
298 memcpy(CMSG_DATA(cmsg), fds, sizeof(fds)); in __send_fd()
/linux/tools/testing/selftests/tty/
H A Dtty_tiocsti_test.c252 struct cmsghdr *cmsg; in send_fd_via_socket() local
262 cmsg = CMSG_FIRSTHDR(&msg); in send_fd_via_socket()
263 cmsg->cmsg_level = SOL_SOCKET; in send_fd_via_socket()
264 cmsg->cmsg_type = SCM_RIGHTS; in send_fd_via_socket()
265 cmsg->cmsg_len = CMSG_LEN(sizeof(int)); in send_fd_via_socket()
267 memcpy(CMSG_DATA(cmsg), &fd_to_send, sizeof(int)); in send_fd_via_socket()
276 struct cmsghdr *cmsg; in recv_fd_via_socket() local
290 for (cmsg = CMSG_FIRSTHDR(&msg); cmsg; cmsg = CMSG_NXTHDR(&msg, cmsg)) { in recv_fd_via_socket()
291 if (cmsg->cmsg_level == SOL_SOCKET && in recv_fd_via_socket()
292 cmsg->cmsg_type == SCM_RIGHTS) { in recv_fd_via_socket()
[all …]
/linux/samples/seccomp/
H A Duser-trap.c35 struct cmsghdr *cmsg; in send_fd() local
47 cmsg = CMSG_FIRSTHDR(&msg); in send_fd()
48 cmsg->cmsg_level = SOL_SOCKET; in send_fd()
49 cmsg->cmsg_type = SCM_RIGHTS; in send_fd()
50 cmsg->cmsg_len = CMSG_LEN(sizeof(int)); in send_fd()
51 fd_ptr = (int *)CMSG_DATA(cmsg); in send_fd()
53 msg.msg_controllen = cmsg->cmsg_len; in send_fd()
66 struct cmsghdr *cmsg; in recv_fd() local
84 cmsg = CMSG_FIRSTHDR(&msg); in recv_fd()
85 fd_ptr = (int *)CMSG_DATA(cmsg); in recv_fd()
/linux/tools/testing/selftests/landlock/
H A Dcommon.h151 struct cmsghdr *cmsg; in recv_fd() local
158 cmsg = CMSG_FIRSTHDR(&msg); in recv_fd()
159 if (cmsg->cmsg_len != CMSG_LEN(sizeof(fd_rx))) in recv_fd()
162 memcpy(&fd_rx, CMSG_DATA(cmsg), sizeof(fd_rx)); in recv_fd()
185 struct cmsghdr *cmsg = CMSG_FIRSTHDR(&msg); in send_fd() local
187 cmsg->cmsg_len = CMSG_LEN(sizeof(fd_tx)); in send_fd()
188 cmsg->cmsg_level = SOL_SOCKET; in send_fd()
189 cmsg->cmsg_type = SCM_RIGHTS; in send_fd()
190 memcpy(CMSG_DATA(cmsg), &fd_tx, sizeof(fd_tx)); in send_fd()
/linux/net/
H A Dcompat.c107 #define CMSG_COMPAT_DATA(cmsg) \ argument
108 ((void __user *)((char __user *)(cmsg) + sizeof(struct compat_cmsghdr)))
126 struct compat_cmsghdr __user *cmsg, int cmsg_len) in cmsg_compat_nxthdr()
128 char __user *ptr = (char __user *)cmsg + CMSG_COMPAT_ALIGN(cmsg_len); in cmsg_compat_nxthdr()
136 * thus placement) of cmsg headers and length are different for
184 struct compat_cmsghdr cmsg; in cmsghdr_from_user_compat_to_kern() local
185 if (copy_from_user(&cmsg, ucmsg, sizeof(cmsg))) in cmsghdr_from_user_compat_to_kern()
187 if (!CMSG_COMPAT_OK(cmsg.cmsg_len, ucmsg, kmsg)) in cmsghdr_from_user_compat_to_kern()
189 tmp = ((cmsg in cmsghdr_from_user_compat_to_kern()
125 cmsg_compat_nxthdr(struct msghdr * msg,struct compat_cmsghdr __user * cmsg,int cmsg_len) cmsg_compat_nxthdr() argument
[all...]
/linux/arch/um/os-Linux/
H A Dfile.c512 struct cmsghdr *cmsg; in os_rcv_fd_msg() local
532 cmsg = CMSG_FIRSTHDR(&msg); in os_rcv_fd_msg()
533 if (!cmsg || in os_rcv_fd_msg()
534 cmsg->cmsg_level != SOL_SOCKET || in os_rcv_fd_msg()
535 cmsg->cmsg_type != SCM_RIGHTS) in os_rcv_fd_msg()
538 memcpy(fds, CMSG_DATA(cmsg), cmsg->cmsg_len - CMSG_LEN(0)); in os_rcv_fd_msg()
661 struct cmsghdr *cmsg = CMSG_FIRSTHDR(&msg); in os_sendmsg_fds() local
667 cmsg->cmsg_level = SOL_SOCKET; in os_sendmsg_fds()
668 cmsg->cmsg_type = SCM_RIGHTS; in os_sendmsg_fds()
669 cmsg->cmsg_len = CMSG_LEN(fds_size); in os_sendmsg_fds()
[all …]
/linux/tools/testing/selftests/bpf/prog_tests/
H A Dcrypto_sanity.c52 struct cmsghdr *cmsg; in do_crypt_afalg() local
59 cmsg = CMSG_FIRSTHDR(&msg); in do_crypt_afalg()
60 cmsg->cmsg_level = SOL_ALG; in do_crypt_afalg()
61 cmsg->cmsg_type = ALG_SET_OP; in do_crypt_afalg()
62 cmsg->cmsg_len = CMSG_LEN(4); in do_crypt_afalg()
63 *(__u32 *)CMSG_DATA(cmsg) = encrypt ? ALG_OP_ENCRYPT : ALG_OP_DECRYPT; in do_crypt_afalg()
H A Dlwt_reroute.c102 struct cmsghdr *cmsg = CMSG_FIRSTHDR(&msg); in overflow_fq() local
122 cmsg->cmsg_type = SCM_TXTIME; in overflow_fq()
123 cmsg->cmsg_level = SOL_SOCKET; in overflow_fq()
124 cmsg->cmsg_len = CMSG_LEN(sizeof(uint64_t)); in overflow_fq()
132 *(uint64_t *)CMSG_DATA(cmsg) = (now.tv_nsec + 1) * NSEC_PER_SEC + in overflow_fq()
/linux/net/rxrpc/
H A Dsendmsg.c504 struct cmsghdr *cmsg; in rxrpc_sendmsg_cmsg() local
511 for_each_cmsghdr(cmsg, msg) { in rxrpc_sendmsg_cmsg()
512 if (!CMSG_OK(msg, cmsg)) in rxrpc_sendmsg_cmsg()
515 len = cmsg->cmsg_len - sizeof(struct cmsghdr); in rxrpc_sendmsg_cmsg()
517 cmsg->cmsg_level, cmsg->cmsg_type, len); in rxrpc_sendmsg_cmsg()
519 if (cmsg->cmsg_level != SOL_RXRPC) in rxrpc_sendmsg_cmsg()
522 switch (cmsg->cmsg_type) { in rxrpc_sendmsg_cmsg()
527 p->call.user_call_ID = *(u32 *)CMSG_DATA(cmsg); in rxrpc_sendmsg_cmsg()
532 CMSG_DATA(cmsg); in rxrpc_sendmsg_cmsg()
[all...]
/linux/tools/testing/selftests/net/mptcp/
H A Dmptcp_inq.c323 struct cmsghdr *cmsg; in get_tcp_inq() local
325 for (cmsg = CMSG_FIRSTHDR(msgh); cmsg ; cmsg = CMSG_NXTHDR(msgh, cmsg)) { in get_tcp_inq()
326 if (cmsg->cmsg_level == IPPROTO_TCP && cmsg->cmsg_type == TCP_CM_INQ) { in get_tcp_inq()
327 memcpy(inqv, CMSG_DATA(cmsg), sizeof(*inqv)); in get_tcp_inq()
332 xerror("could not find TCP_CM_INQ cmsg type"); in get_tcp_inq()
381 /* read one byte, expect cmsg t in process_one_client()
[all...]

123