blob: 7f3ec73c8fc1420071475ccb45628a83c4997d45 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
static void swap_bytes(void *a, void *b, int len) {
char *x = a, *y = b, z;
while (len--) {
z = *x; *x = *y; *y = z;
++x; ++y;
}
}
static int sortpfd() {
int l=0, r=npfd-1;
again:
while (l <= r && pfd[l].fd >= 0) ++l;
while (l <= r && pfd[r].fd < 0) --r;
if (l < r) {
swap_bytes(pfd+l, pfd+r, sizeof(pollfd_));
swap_bytes(tty+l, tty+r, sizeof(tty_name_));
goto again;
}
return l;
}
|