summaryrefslogtreecommitdiff
path: root/service/lib/posix.c
blob: 9a3e70fabbb931cb4d5b439a5d7b484180e50429 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <unistd.h>

ssize_t write(int fd, const void *buffer, size_t length)
{
	ssize_t result;

	__asm__ (
		"movq %1, %%rdi\n"
		"movq %2, %%rsi\n"
		"movq %3, %%rdx\n"
		"movq %0, %%rax\n"
		"syscall"
		: "=a"(result)
		: "g"(fd), "g"(buffer), "g"(length)
		: "rdi", "rsi","rdx");

	return result;
}