xref: /minix3/minix/lib/libsys/kernel_call.c (revision 9e6b1315c3aa89badd9faa3be96f699fdeee0b16)
1*9e6b1315SCristiano Giuffrida #define _SYSTEM 1
2*9e6b1315SCristiano Giuffrida 
3433d6423SLionel Sambuc #include <lib.h>
4433d6423SLionel Sambuc #include <minix/syslib.h>
5*9e6b1315SCristiano Giuffrida #include <minix/sysutil.h>
6433d6423SLionel Sambuc 
_kernel_call(int syscallnr,message * msgptr)7433d6423SLionel Sambuc int _kernel_call(int syscallnr, message *msgptr)
8433d6423SLionel Sambuc {
9*9e6b1315SCristiano Giuffrida   int t, r;
10*9e6b1315SCristiano Giuffrida   t = 1;
11*9e6b1315SCristiano Giuffrida   while(1) {
12433d6423SLionel Sambuc       msgptr->m_type = syscallnr;
13433d6423SLionel Sambuc       do_kernel_call(msgptr);
14*9e6b1315SCristiano Giuffrida       r = msgptr->m_type;
15*9e6b1315SCristiano Giuffrida       if(r != ENOTREADY) {
16*9e6b1315SCristiano Giuffrida           break;
17433d6423SLionel Sambuc       }
18*9e6b1315SCristiano Giuffrida       tickdelay(t++);
19*9e6b1315SCristiano Giuffrida   }
20*9e6b1315SCristiano Giuffrida   return r;
21*9e6b1315SCristiano Giuffrida }
22*9e6b1315SCristiano Giuffrida 
23