rem: dprintf("get_sem_info: invalid sem_id %d\n", id);
add: dprintf("get_sem_info: invalid sem_id %ld\n", id);
context: int _get_sem_info(sem_id id, struct sem_info *info, size_t sz){	int state;	int slot;	if (sems_active == false)		return B_NO_MORE_SEMS;	if (id < 0)		return B_BAD_SEM_ID;	if (info == NULL)		return EINVAL;	slot = id % MAX_SEMS;	state = disable_interrupts();	GRAB_SEM_LOCK(sems[slot]);	if (sems[slot].id != id) {		RELEASE_SEM_LOCK(sems[slot]);		restore_interrupts(state);		dprintf("get_sem_info: invalid sem_id %d\n", id);		return B_BAD_SEM_ID;	}	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 correct	RELEASE_SEM_LOCK(sems[slot]);	restore_interrupts(state);	return B_NO_ERROR;}