xref: /minix3/minix/lib/libsys/taskcall.c (revision 433d6423c39e34ec4b79c950597bb2d236f886be)
1*433d6423SLionel Sambuc /* _taskcall() is the same as _syscall() except it returns negative error
2*433d6423SLionel Sambuc  * codes directly and not in errno.  This is a better interface for PM and
3*433d6423SLionel Sambuc  * VFS.
4*433d6423SLionel Sambuc  */
5*433d6423SLionel Sambuc 
6*433d6423SLionel Sambuc #include <lib.h>
7*433d6423SLionel Sambuc #include <minix/syslib.h>
8*433d6423SLionel Sambuc 
_taskcall(who,syscallnr,msgptr)9*433d6423SLionel Sambuc int _taskcall(who, syscallnr, msgptr)
10*433d6423SLionel Sambuc endpoint_t who;
11*433d6423SLionel Sambuc int syscallnr;
12*433d6423SLionel Sambuc register message *msgptr;
13*433d6423SLionel Sambuc {
14*433d6423SLionel Sambuc   int status;
15*433d6423SLionel Sambuc 
16*433d6423SLionel Sambuc   msgptr->m_type = syscallnr;
17*433d6423SLionel Sambuc   status = ipc_sendrec(who, msgptr);
18*433d6423SLionel Sambuc   if (status != 0) return(status);
19*433d6423SLionel Sambuc   return(msgptr->m_type);
20*433d6423SLionel Sambuc }
21