int msysc(int who, int syscallnr,message* msgptr) { int status; msgptr->m_type = syscallnr; status = _sendrec(who, msgptr); if (status != 0) { msgptr->m_type = status; } if (msgptr->m_type < 0) { errno = -msgptr->m_type; return(-1); } return(msgptr->m_type); }
int mfork(void) { message msg; register message * ptr = &msg; int status; ptr->m_type = 2; status = _sendrec(0, &msg); if (status != 0) { ptr->m_type = status; } if (ptr->m_type < 0) { errno = -ptr->m_type; return(-1); } return(ptr->m_type); }
int _syscall(endpoint_t who, int syscallnr, message *msgptr) { int status; msgptr->m_type = syscallnr; status = _sendrec(who, msgptr); if (status != 0) { /* 'sendrec' itself failed. */ /* XXX - strerror doesn't know all the codes */ msgptr->m_type = status; } if (msgptr->m_type < 0) { errno = -msgptr->m_type; return(-1); } return(msgptr->m_type); }
int mgetppid(void){ message msg; register message * ptr = &msg; int status; ptr->m_type = 20; status = _sendrec(0, &msg); if (status != 0) { /* 'sendrec' itself failed. */ /* XXX - strerror doesn't know all the codes */ ptr->m_type = status; } if (ptr->m_type < 0) { errno = -ptr->m_type; return(-1); } if (ptr->m_type < 0) return ( (pid_t) -1); return( (pid.t) ptr->m2_i1); }