003 File Manager
Current Path:
/usr/src/contrib/netbsd-tests/rump/rumpkern/h_client
usr
/
src
/
contrib
/
netbsd-tests
/
rump
/
rumpkern
/
h_client
/
📁
..
📄
h_forkcli.c
(3.52 KB)
📄
h_reconcli.c
(2.51 KB)
📄
h_sigcli.c
(1.72 KB)
📄
h_simplecli.c
(477 B)
📄
h_stresscli.c
(4.5 KB)
Editing: h_sigcli.c
/* $NetBSD: h_sigcli.c,v 1.3 2011/02/07 20:05:09 pooka Exp $ */ #include <sys/types.h> #include <sys/sysctl.h> #include <err.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <unistd.h> #include <rump/rump_syscalls.h> #include <rump/rumpclient.h> static const int hostnamemib[] = { CTL_KERN, KERN_HOSTNAME }; static char hostnamebuf[128]; static volatile sig_atomic_t sigexecs; static void sighand(int sig) { char buf[128]; size_t blen = sizeof(buf); if (rump_sys___sysctl(hostnamemib, __arraycount(hostnamemib), buf, &blen, NULL, 0) == -1) err(1, "sighand sysctl"); if (strcmp(buf, hostnamebuf) != 0) errx(1, "sighandler hostname"); sigexecs++; } int main(void) { char buf[128]; time_t tstart; struct itimerval itv; size_t hnbsize; int i; size_t blen; if (rumpclient_init() == -1) err(1, "rumpclient init"); hnbsize = sizeof(hostnamebuf); if (rump_sys___sysctl(hostnamemib, __arraycount(hostnamemib), hostnamebuf, &hnbsize, NULL, 0) == -1) err(1, "sysctl"); if (signal(SIGALRM, sighand) == SIG_ERR) err(1, "signal"); itv.it_interval.tv_sec = itv.it_value.tv_sec = 0; itv.it_interval.tv_usec = itv.it_value.tv_usec = 10000; /* 10ms */ if (setitimer(ITIMER_REAL, &itv, NULL) == -1) err(1, "itimer"); tstart = time(NULL); for (i = 0;; i++) { blen = sizeof(buf); if (rump_sys___sysctl(hostnamemib, __arraycount(hostnamemib), buf, &blen, NULL, 0) == -1) err(1, "sysctl"); if (strcmp(buf, hostnamebuf) != 0) errx(1, "main hostname"); /* * check every 100 cycles to avoid doing * nothing but gettimeofday() */ if (i == 100) { if (time(NULL) - tstart > 5) break; i = 0; } } if (!sigexecs) { printf("no signal handlers run. test busted?\n"); } }
Upload File
Create Folder