version 1.20, 2016/06/07 01:34:39 |
version 1.21, 2016/06/07 06:12:37 |
|
|
} |
} |
|
|
static void |
static void |
|
ktrpollfd(const char *data, int count) |
|
{ |
|
struct pollfd pfd; |
|
int i; |
|
|
|
printf("struct pollfd"); |
|
if (count > 1) |
|
printf(" [%d]", count); |
|
for (i = 0; i < count; i++) { |
|
memcpy(&pfd, data, sizeof(pfd)); |
|
data += sizeof(pfd); |
|
printf(" { fd=%d, events=", pfd.fd); |
|
pollfdeventname(pfd.events); |
|
printf(", revents="); |
|
pollfdeventname(pfd.revents); |
|
printf(" }"); |
|
} |
|
printf("\n"); |
|
} |
|
|
|
static void |
ktrcmsghdr(char *data, socklen_t len) |
ktrcmsghdr(char *data, socklen_t len) |
{ |
{ |
struct msghdr msg; |
struct msghdr msg; |
|
|
if (datalen % sizeof(struct kevent)) |
if (datalen % sizeof(struct kevent)) |
goto invalid; |
goto invalid; |
ktrevent(data, datalen / sizeof(struct kevent)); |
ktrevent(data, datalen / sizeof(struct kevent)); |
|
} else if (strcmp(name, "pollfd") == 0) { |
|
if (datalen % sizeof(struct pollfd)) |
|
goto invalid; |
|
ktrpollfd(data, datalen / sizeof(struct pollfd)); |
} else if (strcmp(name, "cmsghdr") == 0) { |
} else if (strcmp(name, "cmsghdr") == 0) { |
char *cmsg; |
char *cmsg; |
|
|