123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #include "Userspace.h"
- #include "Syscall.h"
- #include "StdLib.h"
- namespace Userspace {
- int strlen(const char* str)
- {
- int len = 0;
- while (*(str++))
- ++len;
- return len;
- }
- int open(const char* path)
- {
- return DO_SYSCALL_A2(Syscall::PosixOpen, path, strlen(path));
- }
- int close(int fd)
- {
- return DO_SYSCALL_A1(Syscall::PosixClose, fd);
- }
- int read(int fd, void* outbuf, size_t nread)
- {
- return DO_SYSCALL_A3(Syscall::PosixRead, fd, outbuf, nread);
- }
- int seek(int fd, int offset)
- {
- return DO_SYSCALL_A2(Syscall::PosixRead, fd, offset);
- }
- int kill(pid_t pid, int sig)
- {
- return DO_SYSCALL_A2(Syscall::PosixKill, pid, sig);
- }
- uid_t getuid()
- {
- return DO_SYSCALL_A0(Syscall::PosixGetuid);
- }
- void sleep(DWORD ticks)
- {
- DO_SYSCALL_A1(Syscall::Sleep, ticks);
- }
- void yield()
- {
- DO_SYSCALL_A0(Syscall::Yield);
- }
- void putch(char ch)
- {
- DO_SYSCALL_A1(Syscall::PutCharacter, ch);
- }
- }
|