Lines Matching refs:cmsg

83 #define	CMSG_CONTENT(cmsg)	(&((cmsg)[1]))  argument
84 #define CMSG_CONTENTLEN(cmsg) ((cmsg)->cmsg_len - sizeof (struct cmsghdr)) argument
85 #define CMSG_VALID(cmsg, start, end) \ argument
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; in so_closefds() local
958 for (cmsg = (struct cmsghdr *)control; in so_closefds()
959 CMSG_VALID(cmsg, control, (uintptr_t)control + controllen); in so_closefds()
960 cmsg = CMSG_NEXT(cmsg)) { in so_closefds()
961 if (cmsg->cmsg_level == SOL_SOCKET && in so_closefds()
962 cmsg->cmsg_type == SCM_RIGHTS) { in so_closefds()
963 close_fds(CMSG_CONTENT(cmsg), in so_closefds()
964 (int)CMSG_CONTENTLEN(cmsg), in so_closefds()
967 startoff -= cmsg->cmsg_len; in so_closefds()
982 struct cmsghdr *cmsg; in so_getfdopt() local
1005 for (cmsg = (struct cmsghdr *)control; in so_getfdopt()
1006 CMSG_VALID(cmsg, control, (uintptr_t)control + controllen); in so_getfdopt()
1007 cmsg = CMSG_NEXT(cmsg)) { in so_getfdopt()
1008 if (cmsg->cmsg_level == SOL_SOCKET && in so_getfdopt()
1009 cmsg->cmsg_type == SCM_RIGHTS) { in so_getfdopt()
1012 fds = CMSG_CONTENT(cmsg); in so_getfdopt()
1013 fdlen = (int)CMSG_CONTENTLEN(cmsg); in so_getfdopt()
1015 (size_t)CMSG_CONTENTLEN(cmsg))); in so_getfdopt()
1033 struct cmsghdr *cmsg; in so_optlen() local
1044 for (cmsg = (struct cmsghdr *)control; in so_optlen()
1045 CMSG_VALID(cmsg, control, (uintptr_t)control + controllen); in so_optlen()
1046 cmsg = CMSG_NEXT(cmsg)) { in so_optlen()
1047 if (cmsg->cmsg_level == SOL_SOCKET && in so_optlen()
1048 cmsg->cmsg_type == SCM_RIGHTS) { in so_optlen()
1049 len = fdbuf_optlen((int)CMSG_CONTENTLEN(cmsg)); in so_optlen()
1051 len = (t_uscalar_t)CMSG_CONTENTLEN(cmsg); in so_optlen()
1068 struct cmsghdr *cmsg; in so_cmsg2opt() local
1077 for (cmsg = (struct cmsghdr *)control; in so_cmsg2opt()
1078 CMSG_VALID(cmsg, control, (uintptr_t)control + controllen); in so_cmsg2opt()
1079 cmsg = CMSG_NEXT(cmsg)) { in so_cmsg2opt()
1086 if (cmsg->cmsg_level == SOL_SOCKET && in so_cmsg2opt()
1087 cmsg->cmsg_type == SCM_RIGHTS) in so_cmsg2opt()
1090 len = (t_uscalar_t)CMSG_CONTENTLEN(cmsg); in so_cmsg2opt()
1091 toh.level = cmsg->cmsg_level; in so_cmsg2opt()
1092 toh.name = cmsg->cmsg_type; in so_cmsg2opt()
1097 soappendmsg(mp, CMSG_CONTENT(cmsg), len); in so_cmsg2opt()
1189 struct cmsghdr *cmsg; in so_opt2cmsg() local
1197 cmsg = (struct cmsghdr *)control; in so_opt2cmsg()
1212 ASSERT((uintptr_t)cmsg <= (uintptr_t)control + controllen); in so_opt2cmsg()
1231 cmsg->cmsg_level = tohp->level; in so_opt2cmsg()
1232 cmsg->cmsg_type = SCM_RIGHTS; in so_opt2cmsg()
1233 cmsg->cmsg_len = (socklen_t)(fdlen + in so_opt2cmsg()
1237 CMSG_CONTENT(cmsg), fdlen); in so_opt2cmsg()
1248 cmsg->cmsg_level = tohp->level; in so_opt2cmsg()
1249 cmsg->cmsg_type = tohp->name; in so_opt2cmsg()
1258 cmsg->cmsg_len = sizeof (struct timeval) + in so_opt2cmsg()
1268 bcopy(&tv, CMSG_CONTENT(cmsg), sizeof (tv)); in so_opt2cmsg()
1272 cmsg->cmsg_len = sizeof (struct timeval32) + in so_opt2cmsg()
1274 time32 = (struct timeval32 *)CMSG_CONTENT(cmsg); in so_opt2cmsg()
1285 cmsg->cmsg_level = tohp->level; in so_opt2cmsg()
1286 cmsg->cmsg_type = tohp->name; in so_opt2cmsg()
1287 cmsg->cmsg_len = (socklen_t)(_TPI_TOPT_DATALEN(tohp) + in so_opt2cmsg()
1291 bcopy(&tohp[1], CMSG_CONTENT(cmsg), in so_opt2cmsg()
1292 CMSG_CONTENTLEN(cmsg)); in so_opt2cmsg()
1295 cmsg = CMSG_NEXT(cmsg); in so_opt2cmsg()
1298 control, controllen, (void *)cend, (void *)cmsg)); in so_opt2cmsg()
1299 ASSERT(cmsg <= cend); in so_opt2cmsg()