4 * $DragonFly: src/test/sysmsg/sysmsg2.c,v 1.3 2004/09/02 11:21:12 eirikn Exp $
14 write_test(int fd
, void * buf
, size_t nbyte
)
16 struct write_args writemsg
;
19 INITMSGSYSCALL(write
, MSGF_ASYNC
);
22 writemsg
.nbyte
= nbyte
;
24 printf("write: error: %d\n", error
);
25 printf("write: ms_error: %d\n", writemsg
.usrmsg
.umsg
.ms_error
);
26 printf("write: ms_result: %d\n", writemsg
.usrmsg
.umsg
.u
.ms_result
);
27 FINISHMSGSYSCALL(write
, error
);
31 nanosleep_test(const struct timespec
* rqtp
, struct timespec
* rmtp
)
33 struct nanosleep_args nanosleepmsg
;
36 INITMSGSYSCALL(nanosleep
, MSGF_ASYNC
);
37 nanosleepmsg
.rqtp
= rqtp
;
38 nanosleepmsg
.rmtp
= rmtp
;
39 DOMSGSYSCALL(nanosleep
);
40 printf("nanosleep: error: %d\n", error
);
41 printf("nanosleep: ms_error: %d\n", nanosleepmsg
.usrmsg
.umsg
.ms_error
);
42 printf("nanosleep: ms_result: %d\n", nanosleepmsg
.usrmsg
.umsg
.u
.ms_result
);
43 FINISHMSGSYSCALL(nanosleep
, error
);
49 struct timespec ts
, ts2
;
52 printf("test synchronous syscall msg write 'hello!', with async hint\n");
53 printf("test ASynchronous syscall msg nanosleep for 1.5 seconds\n");
54 printf("WARNING! super-user only, do not ^C the test program!\n");
55 error
= write_test(1, "hello!\n", 7);
59 ts
.tv_nsec
= 500 * 1000000;
60 error
= nanosleep_test(&ts
, &ts2
);