version 1.73, 2012/06/29 05:09:58 |
version 1.74, 2012/07/09 17:51:08 |
|
|
} |
} |
|
|
static void |
static void |
|
ktrfdset(const struct fd_set *fds, int len) |
|
{ |
|
int nfds, i, start = -1; |
|
char sep = ' '; |
|
|
|
nfds = len * NBBY; |
|
printf("struct fd_set {"); |
|
for (i = 0; i <= nfds; i++) |
|
if (i != nfds && FD_ISSET(i, fds)) { |
|
if (start == -1) |
|
start = i; |
|
} else if (start != -1) { |
|
putchar(sep); |
|
if (start == i - 1) |
|
printf("%d", start); |
|
else if (start == i - 2) |
|
printf("%d,%d", start, i - 1); |
|
else |
|
printf("%d-%d", start, i - 1); |
|
sep = ','; |
|
start = -1; |
|
} |
|
|
|
printf(" }\n"); |
|
} |
|
|
|
static void |
ktrstruct(char *buf, size_t buflen) |
ktrstruct(char *buf, size_t buflen) |
{ |
{ |
char *name, *data; |
char *name, *data; |
|
|
goto invalid; |
goto invalid; |
memcpy(&tf, data, datalen); |
memcpy(&tf, data, datalen); |
ktrtfork(&tf); |
ktrtfork(&tf); |
|
} else if (strcmp(name, "fdset") == 0) { |
|
struct fd_set *fds; |
|
if ((fds = malloc(datalen)) == NULL) |
|
err(1, "malloc"); |
|
memcpy(fds, data, datalen); |
|
ktrfdset(fds, datalen); |
|
free(fds); |
} else { |
} else { |
printf("unknown structure %s\n", name); |
printf("unknown structure %s\n", name); |
} |
} |