rem: status_t status;
add: status_t status = B_NAME_NOT_FOUND;
context: _user_generic_syscall(const char *userSubsystem, uint32 function,	void *buffer, size_t bufferSize){	char subsystem[B_FILE_NAME_LENGTH];	generic_syscall *syscall;	status_t status;	if (!IS_USER_ADDRESS(userSubsystem)		|| user_strlcpy(subsystem, userSubsystem, sizeof(subsystem)) < B_OK)		return B_BAD_ADDRESS;	//dprintf("generic_syscall(subsystem = \"%s\", function = %lu)\n", subsystem, function);	mutex_lock(&sGenericSyscallLock);	syscall = find_generic_syscall(subsystem);	if (syscall == NULL) {		status = B_NAME_NOT_FOUND;		goto out;	}	if (function >= B_RESERVED_SYSCALL_BASE) {		if (function != B_SYSCALL_INFO) {			// this is all we know			status = B_NAME_NOT_FOUND;			goto out;		}		// special info syscall		if (bufferSize != sizeof(uint32))			status = B_BAD_VALUE;		else {			uint32 requestedVersion;			// retrieve old version			status = user_memcpy(&requestedVersion, buffer, sizeof(uint32));			if (status == B_OK && requestedVersion != 0 && requestedVersion < syscall->version)				status = B_BAD_TYPE;			// return current version			if (status == B_OK)				status = user_memcpy(buffer, &syscall->version, sizeof(uint32));		}	} else {		while (syscall != NULL) {			generic_syscall *next;			mutex_unlock(&sGenericSyscallLock);			status = syscall->hook(subsystem, function, buffer, bufferSize);			mutex_lock(&sGenericSyscallLock);			if (status != B_BAD_HANDLER)				break;			// the syscall may have been removed in the mean time			next = find_generic_syscall(subsystem);			if (next == syscall)				syscall = syscall->previous;			else				syscall = next;		}		if (syscall == NULL)			status = B_NAME_NOT_FOUND;	}out:	mutex_unlock(&sGenericSyscallLock);	return status;}