1/*
2 * Copyright 2002-2007, Axel D��rfler, axeld@pinc-software.de. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 *
5 * Copyright 2001, Manuel J. Petit. All rights reserved.
6 * Distributed under the terms of the NewOS License.
7 */
8
9
10#include <unistd.h>
11
12#include <errno.h>
13#include <pthread.h>
14
15#include <syscall_utils.h>
16
17#include <errno_private.h>
18#include <syscalls.h>
19
20
21ssize_t
22write(int fd, void const *buffer, size_t bufferSize)
23{
24	int status = _kern_write(fd, -1, buffer, bufferSize);
25
26	RETURN_AND_SET_ERRNO_TEST_CANCEL(status);
27}
28
29
30ssize_t
31write_pos(int fd, off_t pos, const void *buffer, size_t bufferSize)
32{
33	if (pos < 0)
34		RETURN_AND_SET_ERRNO_TEST_CANCEL(B_BAD_VALUE);
35
36	RETURN_AND_SET_ERRNO_TEST_CANCEL(_kern_write(fd, pos, buffer, bufferSize));
37}
38
39
40ssize_t
41pwrite(int fd, const void *buffer, size_t bufferSize, off_t pos)
42{
43	if (pos < 0)
44		RETURN_AND_SET_ERRNO_TEST_CANCEL(B_BAD_VALUE);
45
46	RETURN_AND_SET_ERRNO_TEST_CANCEL(_kern_write(fd, pos, buffer, bufferSize));
47}
48