Lines Matching defs:cmsg
83 #define CMSG_CONTENT(cmsg) (&((cmsg)[1]))
84 #define CMSG_CONTENTLEN(cmsg) ((cmsg)->cmsg_len - sizeof (struct cmsghdr))
85 #define CMSG_VALID(cmsg, start, end) \
86 (ISALIGNED_cmsghdr(cmsg) && \
87 ((uintptr_t)(cmsg) >= (uintptr_t)(start)) && \
88 ((uintptr_t)(cmsg) < (uintptr_t)(end)) && \
89 ((ssize_t)(cmsg)->cmsg_len >= sizeof (struct cmsghdr)) && \
90 ((uintptr_t)(cmsg) + (cmsg)->cmsg_len <= (uintptr_t)(end)))
948 struct cmsghdr *cmsg;
958 for (cmsg = (struct cmsghdr *)control;
959 CMSG_VALID(cmsg, control, (uintptr_t)control + controllen);
960 cmsg = CMSG_NEXT(cmsg)) {
961 if (cmsg->cmsg_level == SOL_SOCKET &&
962 cmsg->cmsg_type == SCM_RIGHTS) {
963 close_fds(CMSG_CONTENT(cmsg),
964 (int)CMSG_CONTENTLEN(cmsg),
967 startoff -= cmsg->cmsg_len;
982 struct cmsghdr *cmsg;
1005 for (cmsg = (struct cmsghdr *)control;
1006 CMSG_VALID(cmsg, control, (uintptr_t)control + controllen);
1007 cmsg = CMSG_NEXT(cmsg)) {
1008 if (cmsg->cmsg_level == SOL_SOCKET &&
1009 cmsg->cmsg_type == SCM_RIGHTS) {
1012 fds = CMSG_CONTENT(cmsg);
1013 fdlen = (int)CMSG_CONTENTLEN(cmsg);
1015 (size_t)CMSG_CONTENTLEN(cmsg)));
1033 struct cmsghdr *cmsg;
1044 for (cmsg = (struct cmsghdr *)control;
1045 CMSG_VALID(cmsg, control, (uintptr_t)control + controllen);
1046 cmsg = CMSG_NEXT(cmsg)) {
1047 if (cmsg->cmsg_level == SOL_SOCKET &&
1048 cmsg->cmsg_type == SCM_RIGHTS) {
1049 len = fdbuf_optlen((int)CMSG_CONTENTLEN(cmsg));
1051 len = (t_uscalar_t)CMSG_CONTENTLEN(cmsg);
1068 struct cmsghdr *cmsg;
1077 for (cmsg = (struct cmsghdr *)control;
1078 CMSG_VALID(cmsg, control, (uintptr_t)control + controllen);
1079 cmsg = CMSG_NEXT(cmsg)) {
1086 if (cmsg->cmsg_level == SOL_SOCKET &&
1087 cmsg->cmsg_type == SCM_RIGHTS)
1090 len = (t_uscalar_t)CMSG_CONTENTLEN(cmsg);
1091 toh.level = cmsg->cmsg_level;
1092 toh.name = cmsg->cmsg_type;
1097 soappendmsg(mp, CMSG_CONTENT(cmsg), len);
1162 * MSG_CTRUNC when the cmsg fits but the padding doesn't fit.
1189 struct cmsghdr *cmsg;
1197 cmsg = (struct cmsghdr *)control;
1212 ASSERT((uintptr_t)cmsg <= (uintptr_t)control + controllen);
1231 cmsg->cmsg_level = tohp->level;
1232 cmsg->cmsg_type = SCM_RIGHTS;
1233 cmsg->cmsg_len = (socklen_t)(fdlen +
1237 CMSG_CONTENT(cmsg), fdlen);
1248 cmsg->cmsg_level = tohp->level;
1249 cmsg->cmsg_type = tohp->name;
1258 cmsg->cmsg_len = sizeof (struct timeval) +
1268 bcopy(&tv, CMSG_CONTENT(cmsg), sizeof (tv));
1272 cmsg->cmsg_len = sizeof (struct timeval32) +
1274 time32 = (struct timeval32 *)CMSG_CONTENT(cmsg);
1285 cmsg->cmsg_level = tohp->level;
1286 cmsg->cmsg_type = tohp->name;
1287 cmsg->cmsg_len = (socklen_t)(_TPI_TOPT_DATALEN(tohp) +
1291 bcopy(&tohp[1], CMSG_CONTENT(cmsg),
1292 CMSG_CONTENTLEN(cmsg));
1295 cmsg = CMSG_NEXT(cmsg);
1297 dprint(1, ("so_opt2cmsg: buf %p len %d; cend %p; final cmsg %p\n",
1298 control, controllen, (void *)cend, (void *)cmsg));
1299 ASSERT(cmsg <= cend);