summaryrefslogtreecommitdiff
path: root/service/lib/posix.c
blob: a91297770db8804a8fe9c3f461ac6b799f561fc8 (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 %0, %%rdi\n"
		"movq %1, %%rsi\n"
		"movq %2, %%rdx\n"
		"movq $1, %%rax\n"
		"syscall"
		: "=a"(result)
		: "g"(fd), "g"(buffer), "g"(length)
		: "rdi", "rsi","rdx");

	return result;
}