#include #include #include #include #define atomic_on() \ do { \ if (gettimeofday((void *)1,(void *)1)) { \ printf("failed: wrong kernel?\n"); \ abort(); \ } \ } while (0) #define atomic_off() gettimeofday((void *)1,(void *)0) int main(void) { printf("testing atomic mode functionality.\n"); atomic_on(); atomic_off(); printf("ok, kernel supports atomic mode.\n"); printf("atomic mode is now off - doing sleep(), should succeed:\n"); sleep(1); printf("turning atomic mode on.\n"); atomic_on(); printf("doing getppid() syscall - should succeed.\n"); getppid(); printf("doing sleep() syscall - should abort!\n"); sleep(1); printf("huh? got back and no signal?\n"); return 0; }