Example #1
0
File: stat.c Project: mariuz/haiku
int
_fstat_current(int fd, struct stat* stat)
{
	int status = _kern_read_stat(fd, NULL, false, stat, sizeof(struct stat));

	RETURN_AND_SET_ERRNO(status);
}
Example #2
0
File: stat.c Project: mariuz/haiku
int
_lstat_current(const char* path, struct stat* stat)
{
	int status = _kern_read_stat(-1, path, false, stat, sizeof(struct stat));

	RETURN_AND_SET_ERRNO(status);
}
Example #3
0
int
msgsnd(int messageQueueID, const void *messagePointer, size_t messageSize,
	int messageFlags)
{
	RETURN_AND_SET_ERRNO(_kern_xsi_msgsnd(messageQueueID, messagePointer,
		messageSize, messageFlags));
}
Example #4
0
ssize_t
msgrcv(int messageQueueID, void *messagePointer, size_t messageSize,
	long messageType, int messageFlags)
{
	RETURN_AND_SET_ERRNO(_kern_xsi_msgrcv(messageQueueID, messagePointer,
		messageSize, messageType, messageFlags));
}
Example #5
0
File: read.c Project: mariuz/haiku
ssize_t
read(int fd, void* buffer, size_t bufferSize)
{
	ssize_t status = _kern_read(fd, -1, buffer, bufferSize);

	RETURN_AND_SET_ERRNO(status);
}
Example #6
0
pid_t
getsid(pid_t process)
{
	pid_t session = _kern_process_info(process, SESSION_ID);

	RETURN_AND_SET_ERRNO(session);
}
Example #7
0
int
fs_stat_dev(dev_t device, fs_info *info)
{
	status_t status = _kern_read_fs_info(device, info);

	RETURN_AND_SET_ERRNO(status);
}
Example #8
0
pid_t
getpgid(pid_t process)
{
	pid_t group = _kern_process_info(process, GROUP_ID);

	RETURN_AND_SET_ERRNO(group);
}
Example #9
0
int
fs_create_index(dev_t device, const char *name, uint32 type, uint32 flags)
{
	status_t status = _kern_create_index(device, name, type, flags);

	RETURN_AND_SET_ERRNO(status);
}
Example #10
0
pid_t
setsid(void)
{
	status_t status = _kern_setsid();

	RETURN_AND_SET_ERRNO(status);
}
int
socketpair(int family, int type, int protocol, int socketVector[2])
{
	SyscallFlagUnsetter _;
	RETURN_AND_SET_ERRNO(common_socketpair(family, type, protocol,
		socketVector, true));
}
int
getsockname(int socket, struct sockaddr *address, socklen_t *_addressLength)
{
	SyscallFlagUnsetter _;
	RETURN_AND_SET_ERRNO(common_getsockname(socket, address, _addressLength,
		true));
}
int
getsockopt(int socket, int level, int option, void *value, socklen_t *_length)
{
	SyscallFlagUnsetter _;
	RETURN_AND_SET_ERRNO(common_getsockopt(socket, level, option, value,
		_length, true));
}
Example #14
0
ssize_t
writev(int fd, const struct iovec *vecs, size_t count)
{
	ssize_t bytes = _kern_writev(fd, -1, vecs, count);

	RETURN_AND_SET_ERRNO(bytes);
}
Example #15
0
int
fs_remove_index(dev_t device, const char *name)
{
	status_t status = _kern_remove_index(device, name);

	RETURN_AND_SET_ERRNO(status);
}
ssize_t
sendto(int socket, const void *data, size_t length, int flags,
	const struct sockaddr *address, socklen_t addressLength)
{
	SyscallFlagUnsetter _;
	RETURN_AND_SET_ERRNO(common_sendto(socket, data, length, flags, address,
		addressLength, true));
}
Example #17
0
File: stat.c Project: mariuz/haiku
int
fstatat(int fd, const char *path, struct stat *st, int flag)
{
	int status = _kern_read_stat(fd, path, (flag & AT_SYMLINK_NOFOLLOW) == 0,
		st, sizeof(struct stat));

	RETURN_AND_SET_ERRNO(status);
}
ssize_t
recvfrom(int socket, void *data, size_t length, int flags,
	struct sockaddr *address, socklen_t *_addressLength)
{
	SyscallFlagUnsetter _;
	RETURN_AND_SET_ERRNO(common_recvfrom(socket, data, length, flags, address,
		_addressLength, true));
}
Example #19
0
int
setpgid(pid_t process, pid_t group)
{
	pid_t result = _kern_setpgid(process, group);
	if (result >= 0)
		return 0;

	RETURN_AND_SET_ERRNO(result);
}
Example #20
0
dev_t
dev_for_path(const char *path)
{
	struct stat stat;
	int status = _kern_read_stat(-1, path, true, &stat, sizeof(struct stat));
	if (status == B_OK)
		return stat.st_dev;

	RETURN_AND_SET_ERRNO(status);
}
Example #21
0
int
shm_open(const char* name, int openMode, mode_t permissions)
{
	char path[PATH_MAX];
	status_t error = shm_name_to_path(name, path, sizeof(path));
	if (error != B_OK)
		RETURN_AND_SET_ERRNO(error);

	return open(path, openMode, permissions);
}
Example #22
0
int
sigqueue(pid_t pid, int signal, const union sigval userValue)
{
	if (signal < 0)
		RETURN_AND_SET_ERRNO(EINVAL);

	if (pid <= 0)
		RETURN_AND_SET_ERRNO(ESRCH);

	status_t error = _kern_send_signal(pid, signal, &userValue,
		SIGNAL_FLAG_QUEUING_REQUIRED);
	if (error != B_OK) {
		// translate B_BAD_THREAD_ID/B_BAD_TEAM_ID to ESRCH
		if (error == B_BAD_THREAD_ID || error == B_BAD_TEAM_ID)
			error = ESRCH;
	}

	RETURN_AND_SET_ERRNO(error);
}
Example #23
0
int
shm_unlink(const char* name)
{
	char path[PATH_MAX];
	status_t error = shm_name_to_path(name, path, sizeof(path));
	if (error != B_OK)
		RETURN_AND_SET_ERRNO(error);

	return unlink(path);
}
Example #24
0
File: read.c Project: mariuz/haiku
ssize_t
pread(int fd, void* buffer, size_t bufferSize, off_t pos)
{
	ssize_t status;
	if (pos < 0) {
		errno = B_BAD_VALUE;
		return -1;
	}
	status = _kern_read(fd, pos, buffer, bufferSize);

	RETURN_AND_SET_ERRNO(status);
}
Example #25
0
ssize_t
writev_pos(int fd, off_t pos, const struct iovec *vecs, size_t count)
{
	ssize_t bytes;
	if (pos < 0) {
		__set_errno(B_BAD_VALUE);
		return -1;
	}
	bytes = _kern_writev(fd, pos, vecs, count);

	RETURN_AND_SET_ERRNO(bytes);
}
Example #26
0
File: chmod.c Project: mariuz/haiku
int
chmod(const char *path, mode_t mode)
{
	struct stat stat;
	status_t status;

	stat.st_mode = mode;
	status = _kern_write_stat(-1, path, true, &stat, sizeof(struct stat),
		B_STAT_MODE);

	RETURN_AND_SET_ERRNO(status);
}
Example #27
0
File: chmod.c Project: mariuz/haiku
int
fchmodat(int fd, const char* path, mode_t mode, int flag)
{
	struct stat stat;
	status_t status;

	stat.st_mode = mode;
	status = _kern_write_stat(fd, path, (flag & AT_SYMLINK_NOFOLLOW) == 0, &stat,
		sizeof(struct stat), B_STAT_MODE);

	RETURN_AND_SET_ERRNO(status);
}
Example #28
0
File: chmod.c Project: mariuz/haiku
int
fchmod(int fd, mode_t mode)
{
	struct stat stat;
	status_t status;

	stat.st_mode = mode;
	status = _kern_write_stat(fd, NULL, false, &stat, sizeof(struct stat),
		B_STAT_MODE);

	RETURN_AND_SET_ERRNO(status);
}
Example #29
0
int
closedir(DIR* dir)
{
	int status;

	if (dir == NULL) {
		__set_errno(B_BAD_VALUE);
		return -1;
	}

	status = _kern_close(dir->fd);

	free(dir);

	RETURN_AND_SET_ERRNO(status);
}
Example #30
0
File: env.cpp Project: mariuz/haiku
int
setenv(const char *name, const char *value, int overwrite)
{
	status_t status;

	if (name == NULL || name[0] == '\0' || strchr(name, '=') != NULL) {
		errno = B_BAD_VALUE;
		return -1;
	}

	lock_variables();
	status = update_variable(name, strlen(name), value, overwrite);
	unlock_variables();

	RETURN_AND_SET_ERRNO(status);
}