Example #1
0
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);	
}
Example #2
0
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);
}
Example #3
0
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);
}
Example #4
0
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);
}