rem: int _get_next_sem_info(team_id team, uint32 *cookie, struct sem_info *info, size_t sz)
add: status_t _get_next_sem_info(team_id team, int32 *cookie, struct sem_info *info, size_t sz)
context: int _get_next_sem_info(team_id team, uint32 *cookie, struct sem_info *info, size_t sz){	int state;	int slot;	if (sems_active == false)		return B_NO_MORE_SEMS;	if (cookie == NULL)		return EINVAL;	/* prevents sems[].owner == -1 >= means owned by a port */	if (team < 0)		return EINVAL; 	if (*cookie == NULL) {		// return first found		slot = 0;	}	else {		// start at index cookie, but check cookie against MAX_PORTS		slot = *cookie;		if (slot >= MAX_SEMS)			return B_BAD_SEM_ID;	}	// spinlock	state = disable_interrupts();	GRAB_SEM_LIST_LOCK();	while (slot < MAX_SEMS) {		GRAB_SEM_LOCK(sems[slot]);		if (sems[slot].id != -1)			if (sems[slot].owner == team) {				// found one!				info->sem			= sems[slot].id;				info->team			= sems[slot].owner;				strncpy(info->name, sems[slot].name, SYS_MAX_OS_NAME_LEN-1);				info->count			= sems[slot].count;				info->latest_holder	= sems[slot].q.head->id; // XXX not sure if this is the latest holder, or the next holder...				RELEASE_SEM_LOCK(sems[slot]);				slot++;				break;			}		RELEASE_SEM_LOCK(sems[slot]);		slot++;	}	RELEASE_SEM_LIST_LOCK();	restore_interrupts(state);	if (slot == MAX_SEMS)		return B_BAD_SEM_ID;	*cookie = slot;	return B_NO_ERROR;}