OrionLibC
Barry Importing existing Orion LibC 03048a9 (3 years, 3 months ago)
#include <fcntl.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <errno.h>
/* Open a file */
int
open(const char *name, int flags, ...)
{
int ret;
if (flags & O_CREATE) {
asm volatile("int $0x80" : "=a" (ret) : "0" (SYSCALL_OPEN),
"c" (3), "S" (&name));
} else {
asm volatile("int $0x80" : "=a" (ret) : "0" (SYSCALL_OPEN),
"c" (2), "S" (&name));
}
if (ret >= 0)
return ret;
errno = -ret;
return -1;
}
/* Create a file */
int
create(const char *name, mode_t mode)
{
return open(name, O_CREATE | O_WRONLY | O_TRUNC, mode);
}