!LConfig
!makefile
!live_debug.sh
-!kernel.mk
+!*.mk
*.[od]
*.ld
# error "SYSCALL missing pointer type"
#endif
-SYSCALL 0
-SYSCALL __lxsys_fork /* 1 */
-SYSCALL __lxsys_yield
-SYSCALL __lxsys_sbrk
-SYSCALL __lxsys_brk
-SYSCALL __lxsys_getpid /* 5 */
-SYSCALL __lxsys_getppid
-SYSCALL __lxsys_sleep
-SYSCALL __lxsys_exit
-SYSCALL __lxsys_wait
-SYSCALL __lxsys_waitpid /* 10 */
-SYSCALL __lxsys_sigreturn
-SYSCALL __lxsys_sigprocmask
-SYSCALL __lxsys_sys_sigaction
-SYSCALL __lxsys_pause
-SYSCALL __lxsys_kill /* 15 */
-SYSCALL __lxsys_alarm
-SYSCALL __lxsys_sigpending
-SYSCALL __lxsys_sigsuspend
-SYSCALL __lxsys_open
-SYSCALL __lxsys_close /* 20 */
-SYSCALL __lxsys_read
-SYSCALL __lxsys_write
-SYSCALL __lxsys_sys_readdir
-SYSCALL __lxsys_mkdir
-SYSCALL __lxsys_lseek /* 25 */
-SYSCALL __lxsys_geterrno
-SYSCALL __lxsys_readlink
-SYSCALL __lxsys_readlinkat
-SYSCALL __lxsys_rmdir
-SYSCALL __lxsys_unlink /* 30 */
-SYSCALL __lxsys_unlinkat
-SYSCALL __lxsys_link
-SYSCALL __lxsys_fsync
-SYSCALL __lxsys_dup
-SYSCALL __lxsys_dup2 /* 35 */
-SYSCALL __lxsys_realpathat
-SYSCALL __lxsys_symlink
-SYSCALL __lxsys_chdir
-SYSCALL __lxsys_fchdir
-SYSCALL __lxsys_getcwd /* 40 */
-SYSCALL __lxsys_rename
-SYSCALL __lxsys_mount
-SYSCALL __lxsys_unmount
-SYSCALL __lxsys_getxattr
-SYSCALL __lxsys_setxattr /* 45 */
-SYSCALL __lxsys_fgetxattr
-SYSCALL __lxsys_fsetxattr
-SYSCALL __lxsys_ioctl
-SYSCALL __lxsys_getpgid
-SYSCALL __lxsys_setpgid /* 50 */
-SYSCALL __lxsys_syslog
-SYSCALL __lxsys_sys_mmap
-SYSCALL __lxsys_munmap
-SYSCALL __lxsys_execve
-SYSCALL __lxsys_fstat /* 55 */
-SYSCALL __lxsys_pollctl
-SYSCALL __lxsys_th_create
-SYSCALL __lxsys_th_self
-SYSCALL __lxsys_th_exit
-SYSCALL __lxsys_th_join /* 60 */
-SYSCALL __lxsys_th_kill
-SYSCALL __lxsys_th_detach
-SYSCALL __lxsys_th_sigmask
-SYSCALL __lxsys_getuid
-SYSCALL __lxsys_getgid
-SYSCALL __lxsys_geteuid
-SYSCALL __lxsys_getegid
-SYSCALL __lxsys_getgroups
-SYSCALL __lxsys_setuid
-SYSCALL __lxsys_setgid
-SYSCALL __lxsys_seteuid
-SYSCALL __lxsys_setegid
-SYSCALL __lxsys_setgroups
-SYSCALL __lxsys_chroot
-SYSCALL __lxsys_fchmodat
-SYSCALL __lxsys_fchownat
-SYSCALL __lxsys_faccessat
\ No newline at end of file
+SYSCALL(0)
+SYSCALL(__lxsys_fork)
+SYSCALL(__lxsys_yield)
+SYSCALL(__lxsys_sbrk)
+SYSCALL(__lxsys_brk)
+SYSCALL(__lxsys_getpid)
+SYSCALL(__lxsys_getppid)
+SYSCALL(__lxsys_sleep)
+SYSCALL(__lxsys_exit)
+SYSCALL(__lxsys_wait)
+SYSCALL(__lxsys_waitpid)
+SYSCALL(__lxsys_sigreturn)
+SYSCALL(__lxsys_sigprocmask)
+SYSCALL(__lxsys_sys_sigaction)
+SYSCALL(__lxsys_pause)
+SYSCALL(__lxsys_kill)
+SYSCALL(__lxsys_alarm)
+SYSCALL(__lxsys_sigpending)
+SYSCALL(__lxsys_sigsuspend)
+SYSCALL(__lxsys_open)
+SYSCALL(__lxsys_close)
+SYSCALL(__lxsys_read)
+SYSCALL(__lxsys_write)
+SYSCALL(__lxsys_sys_readdir)
+SYSCALL(__lxsys_mkdir)
+SYSCALL(__lxsys_lseek)
+SYSCALL(__lxsys_geterrno)
+SYSCALL(__lxsys_readlink)
+SYSCALL(__lxsys_readlinkat)
+SYSCALL(__lxsys_rmdir)
+SYSCALL(__lxsys_unlink)
+SYSCALL(__lxsys_unlinkat)
+SYSCALL(__lxsys_link)
+SYSCALL(__lxsys_fsync)
+SYSCALL(__lxsys_dup)
+SYSCALL(__lxsys_dup2)
+SYSCALL(__lxsys_realpathat)
+SYSCALL(__lxsys_symlink)
+SYSCALL(__lxsys_chdir)
+SYSCALL(__lxsys_fchdir)
+SYSCALL(__lxsys_getcwd)
+SYSCALL(__lxsys_rename)
+SYSCALL(__lxsys_mount)
+SYSCALL(__lxsys_unmount)
+SYSCALL(__lxsys_getxattr)
+SYSCALL(__lxsys_setxattr)
+SYSCALL(__lxsys_fgetxattr)
+SYSCALL(__lxsys_fsetxattr)
+SYSCALL(__lxsys_ioctl)
+SYSCALL(__lxsys_getpgid)
+SYSCALL(__lxsys_setpgid)
+SYSCALL(__lxsys_syslog)
+SYSCALL(__lxsys_sys_mmap)
+SYSCALL(__lxsys_munmap)
+SYSCALL(__lxsys_execve)
+SYSCALL(__lxsys_fstat)
+SYSCALL(__lxsys_pollctl)
+SYSCALL(__lxsys_th_create)
+SYSCALL(__lxsys_th_self)
+SYSCALL(__lxsys_th_exit)
+SYSCALL(__lxsys_th_join)
+SYSCALL(__lxsys_th_kill)
+SYSCALL(__lxsys_th_detach)
+SYSCALL(__lxsys_th_sigmask)
+SYSCALL(__lxsys_getuid)
+SYSCALL(__lxsys_getgid)
+SYSCALL(__lxsys_geteuid)
+SYSCALL(__lxsys_getegid)
+SYSCALL(__lxsys_getgroups)
+SYSCALL(__lxsys_setuid)
+SYSCALL(__lxsys_setgid)
+SYSCALL(__lxsys_seteuid)
+SYSCALL(__lxsys_setegid)
+SYSCALL(__lxsys_setgroups)
+SYSCALL(__lxsys_chroot)
+SYSCALL(__lxsys_fchmodat)
+SYSCALL(__lxsys_fchownat)
+SYSCALL(__lxsys_faccessat)
#include <lunaix/syscall.h>
#ifdef CONFIG_ARCH_X86_64
-# define SYSCALL .8byte
+# define SYSCALL(x) .8byte x
# define SIZE 8
#else
+# define SYSCALL(x) .4byte x
# define SIZE 4
-# define SYSCALL .4byte
#endif
.section .data
.global __syscall_table
__syscall_table:
1:
- #include "syscall_nr.inc"
+ #include <asm/syscall_nr.inc>
2:
.rept __SYSCALL_MAX - (2b - 1b) / SIZE
.long 0
#include <lunaix/status.h>
#include <lunaix/syslog.h>
-#include <usr/lunaix/ioctl_defs.h>
+#include <usr/lunaix/ioctl.h>
LOG_MODULE("term");
#include <lunaix/device.h>
#include <lunaix/ds/rbuffer.h>
#include <lunaix/ds/waitq.h>
-#include <lunaix/signal_defs.h>
+#include <usr/lunaix/signal.h>
#include <usr/lunaix/term.h>
struct term;
#ifndef __LUNAIX_FOPTIONS_H
#define __LUNAIX_FOPTIONS_H
-#include <usr/lunaix/fcntl_defs.h>
+#include <usr/lunaix/fcntl.h>
#endif /* __LUNAIX_FOPTIONS_H */
#define __LUNAIX_FSAPI_H
#include <lunaix/fs.h>
-#include <lunaix/fcntl_defs.h>
#include <lunaix/blkbuf.h>
#include <klibc/string.h>
-#include <usr/lunaix/dirent_defs.h>
+#include <usr/lunaix/fcntl.h>
+#include <usr/lunaix/dirent.h>
struct fsapi_vsb_ops
{
#ifndef __LUNAIX_IOCTL_H
#define __LUNAIX_IOCTL_H
-#include <usr/lunaix/ioctl_defs.h>
+#include <usr/lunaix/ioctl.h>
#endif /* __LUNAIX_IOCTL_H */
#include <asm/pagetable.h>
-#include <usr/lunaix/mann_flags.h>
+#include <usr/lunaix/mman.h>
/**
* @brief 私有区域,该区域中的页无法进行任何形式的共享。
#include <lunaix/hart_state.h>
#include <lunaix/usrscope.h>
+#include <usr/lunaix/wait.h>
+
#include <stdint.h>
#define __LUNAIX_SIGNAL_H
#include <lunaix/types.h>
-#include <usr/lunaix/signal_defs.h>
+#include <usr/lunaix/signal.h>
#define _SIG_NUM 16
#ifndef __LUNAIX_SYSCALL_H
#define __LUNAIX_SYSCALL_H
-#include <usr/lunaix/syscallid.h>
+#define __SYSCALL_MAX 1024
#ifndef __ASM__
#ifndef __LUNAIX_TYPES_H
#define __LUNAIX_TYPES_H
+#include <stdarg.h>
#include <lunaix/compiler.h>
#include <lunaix/limits.h>
-#include <stdarg.h>
#include <usr/lunaix/types.h>
-// TODO: WTERMSIG
-
-// TODO: replace the integer type with these. To make thing more portable.
+#undef NULL
+#define NULL (void*)0
-typedef unsigned char u8_t;
-typedef unsigned short u16_t;
-typedef unsigned int u32_t;
-typedef unsigned long ptr_t;
-typedef unsigned long reg_t;
+typedef unsigned char u8_t;
+typedef unsigned short u16_t;
+typedef unsigned int u32_t;
#ifndef CONFIG_ARCH_BITS_64
-typedef unsigned long long u64_t;
+typedef unsigned long long u64_t;
#else
-typedef unsigned long u64_t;
+typedef unsigned long u64_t;
#endif
-typedef int pid_t;
-typedef signed long ssize_t;
+typedef __lunaix_pid_t pid_t;
+typedef __lunaix_tid_t tid_t;
+typedef __lunaix_uid_t uid_t;
+typedef __lunaix_gid_t gid_t;
+typedef __lunaix_size_t size_t;
+typedef __lunaix_ssize_t ssize_t;
+typedef __lunaix_size_t off_t;
+typedef __lunaix_ino_t ino_t;
-typedef unsigned int cpu_t;
+typedef unsigned long ptr_t;
+typedef unsigned long reg_t;
+typedef unsigned int cpu_t;
+typedef u64_t lba_t;
-typedef u64_t lba_t;
+typedef __lunaix_dev_t dev_t;
#define true 1
#define false 0
--- /dev/null
+lunaix/fstypes.h
+lunaix/status.h
+lunaix/fcntl.h
+lunaix/signal.h
+lunaix/term.h
+lunaix/mman.h
+lunaix/dirent.h
+lunaix/poll.h
+lunaix/types.h
+lunaix/serial.h
+lunaix/device.h
+lunaix/ioctl.h
+lunaix/threads.h
+lunaix/gfx.h
+lunaix/wait.h
--- /dev/null
+lunaix/syscallid.h
\ No newline at end of file
-#ifndef __LUNAIX_UDEVICE_H
-#define __LUNAIX_UDEVICE_H
+#ifndef _LUNAIX_UHDR_UDEVICE_H
+#define _LUNAIX_UHDR_UDEVICE_H
-#include "ioctl_defs.h"
+#include "ioctl.h"
struct dev_info
{
} dev_name;
};
-#endif /* __LUNAIX_UDEVICE_H */
+#endif /* _LUNAIX_UHDR_UDEVICE_H */
-#ifndef __LUNAIX_SYS_DIRENT_DEFS_H
-#define __LUNAIX_SYS_DIRENT_DEFS_H
+#ifndef _LUNAIX_UHDR_SYS_DIRENT_DEFS_H
+#define _LUNAIX_UHDR_SYS_DIRENT_DEFS_H
#define DIRENT_NAME_MAX_LEN 256
char d_name[DIRENT_NAME_MAX_LEN];
};
-#endif /* __LUNAIX_DIRENT_DEFS_H */
+#endif /* _LUNAIX_UHDR_DIRENT_DEFS_H */
--- /dev/null
+#ifndef _LUNAIX_UHDR_SYS_FCNTL_DEFS_H
+#define _LUNAIX_UHDR_SYS_FCNTL_DEFS_H
+
+#include "fstypes.h"
+#include "types.h"
+
+#define FO_CREATE 0x1
+#define FO_APPEND 0x2
+#define FO_DIRECT 0x4
+#define FO_WRONLY 0x8
+#define FO_RDONLY 0x10
+#define FO_RDWR 0x20
+#define FO_TRUNC 0x40
+
+#define FO_NOFOLLOW 0x10000
+
+#define FSEEK_SET 0x1
+#define FSEEK_CUR 0x2
+#define FSEEK_END 0x3
+
+#define O_CREAT FO_CREATE
+#define O_APPEND FO_APPEND
+#define O_DIRECT FO_DIRECT
+#define O_WRONLY FO_WRONLY
+#define O_RDONLY FO_RDONLY
+#define O_RDWR FO_RDWR
+#define O_TRUNC FO_TRUNC
+
+#define AT_SYMLINK_FOLLOW 0b0000
+#define AT_SYMLINK_NOFOLLOW 0b0001
+#define AT_FDCWD 0b0010
+#define AT_EACCESS 0b0100
+
+#define R_OK 0b100100100
+#define W_OK 0b010010010
+#define X_OK 0b001001001
+#define F_OK 0b111111111
+
+/* Mount with read-only flag */
+#define MNT_RO (1 << 0)
+
+/* Mount with block-cache-disabled flag */
+#define MNT_NC (1 << 1)
+
+typedef unsigned int mode_t;
+typedef unsigned int nlink_t;
+
+struct file_stat
+{
+ __lunaix_dev_t st_dev;
+ __lunaix_ino_t st_ino;
+ mode_t st_mode;
+ nlink_t st_nlink;
+ __lunaix_uid_t st_uid;
+ __lunaix_gid_t st_gid;
+ __lunaix_dev_t st_rdev;
+ __lunaix_size_t st_size;
+ __lunaix_size_t st_blksize;
+ __lunaix_size_t st_blocks;
+
+ unsigned long st_atim;
+ unsigned long st_ctim;
+ unsigned long st_mtim;
+
+ __lunaix_size_t st_ioblksize;
+};
+
+#endif /* _LUNAIX_UHDR_FNCTL_DEFS_H */
+++ /dev/null
-#ifndef __LUNAIX_SYS_FCNTL_DEFS_H
-#define __LUNAIX_SYS_FCNTL_DEFS_H
-
-#include "fstypes.h"
-#include "types.h"
-
-#define FO_CREATE 0x1
-#define FO_APPEND 0x2
-#define FO_DIRECT 0x4
-#define FO_WRONLY 0x8
-#define FO_RDONLY 0x10
-#define FO_RDWR 0x20
-#define FO_TRUNC 0x40
-
-#define FO_NOFOLLOW 0x10000
-
-#define FSEEK_SET 0x1
-#define FSEEK_CUR 0x2
-#define FSEEK_END 0x3
-
-#define O_CREAT FO_CREATE
-#define O_APPEND FO_APPEND
-#define O_DIRECT FO_DIRECT
-#define O_WRONLY FO_WRONLY
-#define O_RDONLY FO_RDONLY
-#define O_RDWR FO_RDWR
-#define O_TRUNC FO_TRUNC
-
-#define AT_SYMLINK_FOLLOW 0b0000
-#define AT_SYMLINK_NOFOLLOW 0b0001
-#define AT_FDCWD 0b0010
-#define AT_EACCESS 0b0100
-
-#define R_OK 0b100100100
-#define W_OK 0b010010010
-#define X_OK 0b001001001
-#define F_OK 0b111111111
-
-/* Mount with read-only flag */
-#define MNT_RO (1 << 0)
-
-/* Mount with block-cache-disabled flag */
-#define MNT_NC (1 << 1)
-
-typedef unsigned int mode_t;
-typedef unsigned int nlink_t;
-
-struct file_stat
-{
- dev_t st_dev;
- ino_t st_ino;
- mode_t st_mode;
- nlink_t st_nlink;
- uid_t st_uid;
- gid_t st_gid;
- dev_t st_rdev;
- off_t st_size;
- size_t st_blksize;
- size_t st_blocks;
-
- unsigned long st_atim;
- unsigned long st_ctim;
- unsigned long st_mtim;
-
- size_t st_ioblksize;
-};
-
-#endif /* __LUNAIX_FNCTL_DEFS_H */
-#ifndef __LUNAIX_FSTYPES_H
-#define __LUNAIX_FSTYPES_H
+#ifndef _LUNAIX_UHDR_FSTYPES_H
+#define _LUNAIX_UHDR_FSTYPES_H
/*
7 6 5 4 3 2 1 0
#define F_PIPE 0b00010000
#define F_SYMLINK 0b00100000
-#endif /* __LUNAIX_FSTYPES_H */
+#endif /* _LUNAIX_UHDR_FSTYPES_H */
-#ifndef __LUNAIX_UGFX_H
-#define __LUNAIX_UGFX_H
+#ifndef _LUNAIX_UHDR_UGFX_H
+#define _LUNAIX_UHDR_UGFX_H
#define GFX_CMDA(type, cmd_id) (((type) << 8) | ((cmd_id) & 0xf))
size_t len;
};
-#endif /* __LUNAIX_UGFX_H */
+#endif /* _LUNAIX_UHDR_UGFX_H */
-#ifndef __LUNAIX_SYS_IOCTL_DEFS_H
-#define __LUNAIX_SYS_IOCTL_DEFS_H
+#ifndef _LUNAIX_UHDR_SYS_IOCTL_H
+#define _LUNAIX_UHDR_SYS_IOCTL_H
#define IOREQ(cmd, arg_num) ((((cmd) & 0xffff) << 8) | ((arg_num) & 0xff))
#define TIMERIO_GETINFO IOREQ(1, 0)
-#endif /* __LUNAIX_IOCTL_DEFS_H */
+#endif /* _LUNAIX_UHDR_IOCTL_H */
+++ /dev/null
-#ifndef __LUNAIX_SYS_LXDIRENT_H
-#define __LUNAIX_SYS_LXDIRENT_H
-
-#include <lunaix/dirent_defs.h>
-
-int sys_readdir(int fd, struct lx_dirent* dirent);
-
-#endif /* __LUNAIX_DIRENT_H */
-#ifndef __LUNAIX_SYS_MANN_FLAGS_H
-#define __LUNAIX_SYS_MANN_FLAGS_H
+#ifndef _LUNAIX_UHDR_SYS_MMAN_H
+#define _LUNAIX_UHDR_SYS_MMAN_H
// POSIX compliant.
unsigned long offset;
};
-#endif /* __LUNAIX_MANN_FLAGS_H */
+#endif /* _LUNAIX_UHDR_MMAN_H */
-#ifndef __LUNAIX_UPOLL_H
-#define __LUNAIX_UPOLL_H
+#ifndef _LUNAIX_UHDR_UPOLL_H
+#define _LUNAIX_UHDR_UPOLL_H
struct poll_info
{
#define _POLLEE_ALWAYS 1
#define _POLLEE_RM_ON_ERR (1 << 1)
-#endif /* __LUNAIX_UPOLL_H */
+#endif /* _LUNAIX_UHDR_UPOLL_H */
-#ifndef __LUNAIX_USERIAL_H
-#define __LUNAIX_USERIAL_H
+#ifndef _LUNAIX_UHDR_USERIAL_H
+#define _LUNAIX_UHDR_USERIAL_H
-#include "ioctl_defs.h"
+#include "ioctl.h"
#define SERIO_RXEN IOREQ(1, 0)
#define SERIO_RXDA IOREQ(2, 0)
#define SERIO_SETCNTRLMODE IOREQ(6, 0)
#define SERIO_SETBRDBASE IOREQ(7, 0)
-#endif /* __LUNAIX_USERIAL_H */
+#endif /* _LUNAIX_UHDR_USERIAL_H */
-#ifndef __LUNAIX_SYS_SIGNAL_DEFS_H
-#define __LUNAIX_SYS_SIGNAL_DEFS_H
+#ifndef _LUNAIX_UHDR_SYS_SIGNAL_DEFS_H
+#define _LUNAIX_UHDR_SYS_SIGNAL_DEFS_H
#define SIGALRM 1
#define SIGCHLD 2
// TODO
};
-#endif /* __LUNAIX_SIGNAL_DEFS_H */
+#endif /* _LUNAIX_UHDR_SIGNAL_DEFS_H */
-#ifndef __LUNAIX_STATUS_H
-#define __LUNAIX_STATUS_H
+#ifndef _LUNAIX_UHDR_STATUS_H
+#define _LUNAIX_UHDR_STATUS_H
-#define LXPROCFULL -(1)
-#define LXHEAPFULL -(2)
-#define LXINVLDPTR -(2)
-#define LXOUTOFMEM -(3)
-#define LXSEGFAULT -(5)
-#define EINVAL -(6)
+#define ENOMEM -3
+#define EINVAL -6
+#define EINTR -7
+#define EMFILE -8
+#define ENOENT -9
+#define ENAMETOOLONG -10
+#define ENOTDIR -11
+#define EEXIST -12
+#define EBADF -13
+#define ENOTSUP -14
+#define EIO -15
+#define ELOOP -16
+#define ENOTEMPTY -17
+#define EROFS -18
+#define EISDIR -19
+#define EBUSY -20
+#define EXDEV -21
+#define ENODEV -22
+#define ERANGE -23
+#define ENOTDEV -24
+#define EOVERFLOW -25
+#define ENOTBLK -26
+#define ENOEXEC -27
+#define E2BIG -28
+#define ELIBBAD -29
+#define EAGAIN -30
+#define EDEADLK -31
+#define EDQUOT -32
+#define EPERM -33
+#define EACCESS -34
-#define EINTR -(7)
-
-#define EMFILE -8
-#define ENOENT -9
-#define ENAMETOOLONG -10
-#define ENOTDIR -11
-#define EEXIST -12
-#define EBADF -13
-#define ENOTSUP -14
-#define EIO -15
-#define ELOOP -16
-#define ENOTEMPTY -17
-#define EROFS -18
-#define EISDIR -19
-#define EBUSY -20
-#define EXDEV -21
-#define ENODEV -22
-#define ERANGE -23
-#define ENOMEM LXOUTOFMEM
-#define ENOTDEV -24
-#define EOVERFLOW -25
-#define ENOTBLK -26
-#define ENOEXEC -27
-#define E2BIG -28
-#define ELIBBAD -29
-#define EAGAIN -30
-#define EDEADLK -31
-#define EDQUOT -32
-#define EPERM -33
-#define EACCESS -34
-
-#endif /* __LUNAIX_STATUS_H */
+#endif /* _LUNAIX_UHDR_STATUS_H */
+++ /dev/null
-#ifndef __LUNAIX_SYSCALLID_H
-#define __LUNAIX_SYSCALLID_H
-
-#define __SYSCALL_fork 1
-#define __SYSCALL_yield 2
-#define __SYSCALL_sbrk 3
-#define __SYSCALL_brk 4
-#define __SYSCALL_getpid 5
-#define __SYSCALL_getppid 6
-#define __SYSCALL_sleep 7
-#define __SYSCALL__exit 8
-#define __SYSCALL_wait 9
-#define __SYSCALL_waitpid 10
-
-#define __SYSCALL_sigreturn 11
-#define __SYSCALL_sigprocmask 12
-#define __SYSCALL_sys_sigaction 13
-#define __SYSCALL_pause 14
-#define __SYSCALL_kill 15
-#define __SYSCALL_alarm 16
-#define __SYSCALL_sigpending 17
-#define __SYSCALL_sigsuspend 18
-#define __SYSCALL_open 19
-#define __SYSCALL_close 20
-
-#define __SYSCALL_read 21
-#define __SYSCALL_write 22
-#define __SYSCALL_sys_readdir 23
-#define __SYSCALL_mkdir 24
-#define __SYSCALL_lseek 25
-#define __SYSCALL_geterrno 26
-#define __SYSCALL_readlink 27
-#define __SYSCALL_readlinkat 28
-#define __SYSCALL_rmdir 29
-
-#define __SYSCALL_unlink 30
-#define __SYSCALL_unlinkat 31
-#define __SYSCALL_link 32
-#define __SYSCALL_fsync 33
-#define __SYSCALL_dup 34
-#define __SYSCALL_dup2 35
-#define __SYSCALL_realpathat 36
-#define __SYSCALL_symlink 37
-#define __SYSCALL_chdir 38
-#define __SYSCALL_fchdir 39
-#define __SYSCALL_getcwd 40
-#define __SYSCALL_rename 41
-#define __SYSCALL_mount 42
-#define __SYSCALL_unmount 43
-#define __SYSCALL_getxattr 44
-#define __SYSCALL_setxattr 45
-#define __SYSCALL_fgetxattr 46
-#define __SYSCALL_fsetxattr 47
-
-#define __SYSCALL_ioctl 48
-#define __SYSCALL_getpgid 49
-#define __SYSCALL_setpgid 50
-
-#define __SYSCALL_syslog 51
-
-#define __SYSCALL_sys_mmap 52
-#define __SYSCALL_munmap 53
-
-#define __SYSCALL_execve 54
-
-#define __SYSCALL_fstat 55
-#define __SYSCALL_pollctl 56
-
-#define __SYSCALL_th_create 57
-#define __SYSCALL_th_self 58
-#define __SYSCALL_th_exit 59
-#define __SYSCALL_th_join 60
-#define __SYSCALL_th_kill 61
-#define __SYSCALL_th_detach 62
-#define __SYSCALL_th_sigmask 63
-
-#define __SYSCALL_MAX 0x200
-
-#endif /* __LUNAIX_SYSCALLID_H */
-#ifndef __LUNAIX_UTERM_H
-#define __LUNAIX_UTERM_H
+#ifndef _LUNAIX_UHDR_UTERM_H
+#define _LUNAIX_UHDR_UTERM_H
#define _BRKINT (1)
#define _ICRNL (1 << 1)
speed_t c_baud;
};
-#endif /* __LUNAIX_UTERM_H */
+#endif /* _LUNAIX_UHDR_UTERM_H */
-#ifndef __LUNAIX_USR_THREADS_H
-#define __LUNAIX_USR_THREADS_H
+#ifndef _LUNAIX_UHDR_USR_THREADS_H
+#define _LUNAIX_UHDR_USR_THREADS_H
#include "types.h"
-struct uthread_param {
+struct uthread_param
+{
void* th_handler;
void* arg1;
};
-#endif /* __LUNAIX_USR_THREADS_H */
+#endif /* _LUNAIX_UHDR_USR_THREADS_H */
-#ifndef __LUNAIX_SYS_TYPES_H
-#define __LUNAIX_SYS_TYPES_H
-
-#undef NULL
-#define NULL (void*)0
-#define NULLPTR 0
-
-#define PEXITTERM 0x100
-#define PEXITSTOP 0x200
-#define PEXITSIG 0x400
-
-#define PEXITNUM(flag, code) (flag | (code & 0xff))
-
-#define WNOHANG 1
-#define WUNTRACED 2
-#define WEXITSTATUS(wstatus) ((wstatus & 0xff))
-#define WIFSTOPPED(wstatus) ((wstatus & PEXITSTOP))
-#define WIFEXITED(wstatus) \
- ((wstatus & PEXITTERM) && ((char)WEXITSTATUS(wstatus) >= 0))
-
-#define WIFSIGNALED(wstatus) ((wstatus & PEXITSIG))
-
-typedef signed long ssize_t;
-
-typedef int pid_t;
-typedef int tid_t;
-typedef int uid_t;
-typedef int gid_t;
-
-typedef __SIZE_TYPE__ size_t;
-
-typedef __SIZE_TYPE__ off_t;
-
-typedef unsigned int ino_t;
-
-typedef struct dev_t
+#ifndef _LUNAIX_UHDR_SYS_TYPES_H
+#define _LUNAIX_UHDR_SYS_TYPES_H
+
+typedef int __lunaix_pid_t;
+typedef int __lunaix_tid_t;
+typedef int __lunaix_uid_t;
+typedef int __lunaix_gid_t;
+typedef unsigned long __lunaix_size_t;
+typedef signed long __lunaix_ssize_t;
+typedef unsigned int __lunaix_ino_t;
+
+typedef struct
{
unsigned int meta;
unsigned int unique;
unsigned int index;
-} dev_t;
+} __lunaix_dev_t;
-#endif /* __LUNAIX_TYPES_H */
+#endif /* _LUNAIX_UHDR_TYPES_H */
--- /dev/null
+#ifndef _LUNAIX_UHDR_WAIT_H
+#define _LUNAIX_UHDR_WAIT_H
+
+#define PEXITTERM 0x100
+#define PEXITSTOP 0x200
+#define PEXITSIG 0x400
+
+#define WNOHANG 1
+#define WUNTRACED 2
+
+#define PEXITNUM(flag, code) (flag | (code & 0xff))
+#define WEXITSTATUS(wstatus) ((wstatus & 0xff))
+#define WIFSTOPPED(wstatus) ((wstatus & PEXITSTOP))
+#define WIFSIGNALED(wstatus) ((wstatus & PEXITSIG))
+
+#define WIFEXITED(wstatus) \
+ ((wstatus & PEXITTERM) && ((char)WEXITSTATUS(wstatus) >= 0))
+
+#endif /* _LUNAIX_UHDR_WAIT_H */
--- /dev/null
+include kbuild_deps.mkinc
+
+ifndef PREFIX
+ $(error "Must specify PREFIX to header install location")
+endif
+
+USR_HEADER := includes/usr
+
+HEADERS := $(shell cat $(USR_HEADER)/headers)
+HEADERS += $(shell cat $(USR_HEADER)/headers_autogen)
+
+INSTALL := $(addprefix $(PREFIX)/,$(HEADERS))
+
+export CFLAGS=$(kcflags)
+$(PREFIX)/lunaix/syscallid.h:
+ @scripts/gen-syscall-header "$@"
+
+.SECONDEXPANSION:
+.PRECIOUS: $(PREFIX)/%/
+
+$(PREFIX)/%/:
+ @mkdir -p $@
+
+$(PREFIX)/%.h : $(USR_HEADER)/%.h $$(dir $$@)
+ $(call status,INSTALL,$@)
+ @cp $< $@
+
+all: $(INSTALL)
\ No newline at end of file
-include toolchain.mkinc
-include lunabuild.mkinc
-
-include $(lbuild_mkinc)
+include kbuild_deps.mkinc
kbin_dir := $(BUILD_DIR)
kbin := $(BUILD_NAME)
-ksrc_objs := $(addsuffix .o,$(_LBUILD_SRCS))
-ksrc_deps := $(addsuffix .d,$(_LBUILD_SRCS))
-khdr_opts := $(addprefix -include ,$(_LBUILD_HDRS))
-kinc_opts := $(addprefix -I,$(_LBUILD_INCS))
-config_h += -include $(lbuild_config_h)
-
tmp_kbin := $(BUILD_DIR)/tmpk.bin
klinking := link/lunaix.ld
-CFLAGS += $(khdr_opts) $(kinc_opts) $(config_h) -MMD -MP
-
--include $(ksrc_deps)
+CFLAGS += $(kcflags) -MMD -MP
all_linkable = $(filter-out $(klinking),$(1))
%.S.o: %.S $(khdr_files) kernel.mk
- $(call status_,AS,$<)
+ $(call status,AS,$<)
@$(CC) $(CFLAGS) -c $< -o $@
%.c.o: %.c kernel.mk
- $(call status_,CC,$<)
+ $(call status,CC,$<)
@$(CC) $(CFLAGS) -c $< -o $@
$(klinking): link/lunaix.ldx
- $(call status_,PP,$<)
+ $(call status,PP,$<)
@$(CC) $(CFLAGS) -x c -E -P $< -o $@
$(tmp_kbin): $(klinking) $(ksrc_objs)
- $(call status_,LD,$@)
+ $(call status,LD,$@)
@$(CC) -T $(klinking) $(config_h) $(LDFLAGS) -o $@ \
$(call all_linkable,$^)
kautogen := $(ksecsmap) $(ksymtable)
$(ksymtable): $(tmp_kbin)
- $(call status_,KSYM,$@)
+ $(call status,KSYM,$@)
@ARCH=$(ARCH) scripts/gen-ksymtable DdRrTtAGg $< > lunaix_ksymtable.S
@$(CC) $(CFLAGS) -c lunaix_ksymtable.S -o $@
$(ksecsmap): $(tmp_kbin)
- $(call status_,KGEN,$@)
+ $(call status,KGEN,$@)
@scripts/elftool.tool -p -i $< > lunaix_ksecsmap.S
@$(CC) $(CFLAGS) -c lunaix_ksecsmap.S -o $@
.PHONY: __do_relink
__do_relink: $(klinking) $(ksrc_objs) $(kautogen)
- $(call status_,LD,$(kbin))
+ $(call status,LD,$(kbin))
@$(CC) -T $(klinking) $(config_h) $(LDFLAGS) -o $(kbin) \
$(call all_linkable,$^)
#include <lunaix/fs/devfs.h>
#include <lunaix/spike.h>
-#include <usr/lunaix/dirent_defs.h>
+#include <usr/lunaix/dirent.h>
extern struct v_inode_ops devfs_inode_ops;
extern struct v_file_ops devfs_file_ops;
#include <klibc/string.h>
-#include <usr/lunaix/dirent_defs.h>
+#include <usr/lunaix/dirent.h>
extern struct cake_pile* drec_cache_pile;
#include <lunaix/process.h>
#include <lunaix/spike.h>
-#include <usr/lunaix/fcntl_defs.h>
+#include <usr/lunaix/fcntl.h>
#include <klibc/string.h>
#include <lunaix/fs/twifs.h>
-#include <usr/lunaix/dirent_defs.h>
+#include <usr/lunaix/dirent.h>
#define INODE_ACCESSED 0
#define INODE_MODIFY 1
#include <asm/mm_defs.h>
-#include <usr/lunaix/mann_flags.h>
+#include <usr/lunaix/mman.h>
// any size beyond this is bullshit
#define BS_SIZE (KERNEL_RESIDENT - USR_MMAP)
#include <klibc/strfmt.h>
#include <klibc/string.h>
-#include <usr/lunaix/dirent_defs.h>
+#include <usr/lunaix/dirent.h>
#define COUNTER_MASK ((1 << 16) - 1)
@mkdir -p $(os_img_dir)/usr
.PHONY: kernel
+.PHONY: rootfs all clean-user clean tool
+
export BUILD_DIR=$(kbin_dir)
export BUILD_NAME=$(kbin)
kernel: $(lbuild_mkinc)
@$(MAKE) $(MKFLAGS) -I $(mkinc_dir) -f kernel.mk all
-.PHONY: rootfs all clean-user clean tool
-
-tool:
- $(call status,TASK,$@)
- @$(MAKE) $(MKFLAGS) -C scripts all -I $(mkinc_dir)
-
.NOTPARALLEL:
export LBUILD ARCH MODE
all: $(kbuild_dir) tool kernel
-rootfs: usr/build
- $(call status,TASK,$(notdir $@))
- @./scripts/mkrootfs
+# --- begin stock user --- #
-usr/build: user
-
-prepare: $(os_img_dir)
+export PREFIX=usr/includes
+usr/includes: install-header
export LBUILD ARCH MODE
-user:
+user: usr/includes
$(call status,TASK,$@)
@$(MAKE) $(MKFLAGS) -C usr all -I $(mkinc_dir)
clean-user:
@$(MAKE) -C usr clean -I $(mkinc_dir)
+rootfs: usr/build
+ $(call status,TASK,$(notdir $@))
+ @./scripts/mkrootfs
+
+usr/build: user
+
+# --- end stock user --- #
+
+
clean:
@$(MAKE) $(MKFLAGS) -C usr clean -I $(mkinc_dir)
@$(MAKE) $(MKFLAGS) -C scripts clean -I $(mkinc_dir)
@rm -rf $(kbuild_dir) || exit 1
@rm -rf .builder || exit 1
+
+# --- begin misc --- #
+
export CFLAGS=-include $(lbuild_config_h)
unit-test: $(lbuild_config_h)
- @$(MAKE) $(MKFLAGS) -C tests/units run
\ No newline at end of file
+ @$(MAKE) $(MKFLAGS) -C tests/units run
+
+tool:
+ $(call status,TASK,$@)
+ @$(MAKE) $(MKFLAGS) -C scripts all -I $(mkinc_dir)
+
+install-header:
+ @$(MAKE) $(MKFLAGS) -I $(mkinc_dir) -f install_headers.mk all
+
+# --- end misc --- #
\ No newline at end of file
--- /dev/null
+include toolchain.mkinc
+include lunabuild.mkinc
+include utils.mkinc
+
+include $(lbuild_mkinc)
+
+ksrc_objs := $(addsuffix .o,$(_LBUILD_SRCS))
+ksrc_deps := $(addsuffix .d,$(_LBUILD_SRCS))
+khdr_opts := $(addprefix -include ,$(_LBUILD_HDRS))
+kinc_opts := $(addprefix -I,$(_LBUILD_INCS))
+config_h += -include $(lbuild_config_h)
+
+kcflags := $(khdr_opts) $(kinc_opts) $(config_h)
+
+-include $(ksrc_deps)
\ No newline at end of file
--- /dev/null
+#!/bin/bash
+
+outfile="$1"
+
+read -d '' payload <<EOF
+#define SYSCALL(x) __NR##x __COUNTER__
+#include <asm/syscall_nr.inc>
+EOF
+
+body=$(echo "$payload" \
+ | gcc $CFLAGS -x none -E - -o- -nostdlib -P \
+ | sed -e 's/^__NR__/#define __NR__/' \
+ | sed -e '/#define/!d')
+
+cat <<EOF > "$outfile"
+#ifndef __LUNAIX_SYSCALL_H
+#define __LUNAIX_SYSCALL_H
+
+$body
+
+#endif
+EOF
\ No newline at end of file
build/
.vscode/
-uexec.ld
\ No newline at end of file
+uexec.ld
+
+includes/**
\ No newline at end of file
"maze",
"mkdir",
"rm",
- "testfork",
"fragfile",
])
+++ /dev/null
-../includes/usr
\ No newline at end of file
#include <errno.h>
#include <fcntl.h>
-#include <lunaix/lunaix.h>
-#include <lunaix/mount.h>
+#include <sys/wait.h>
+#include <sys/mount.h>
#include <termios.h>
#include <stdio.h>
#include <unistd.h>
+#include <sys/lunaix.h>
+
#define must_mount(src, target, fs, opts) \
do { \
int err = 0; \
1:
movl %eax, %ebx
- movl $__SYSCALL__exit, %eax
+ movl $__NR__lxsys_exit, %eax
int $33
ud2 // should not reach
\ No newline at end of file
addl $12, %esp
- movl $__SYSCALL_sigreturn, %eax
+ movl $__NR__lxsys_sigreturn, %eax
popl %ebx
int $33
calll *%eax
movl %eax, %ebx
- movl $__SYSCALL_th_exit, %eax
+ movl $__NR__lxsys_th_exit, %eax
int $33
\ No newline at end of file
1:
movq %rax, %rbx
- movq $__SYSCALL__exit, %rax
+ movq $__NR__lxsys_exit, %rax
int $33
ud2 // should not reach
\ No newline at end of file
leaq 4(%rax), %rdx // (struct siguctx*)&sigact
call sig_dohandling
- movq $__SYSCALL_sigreturn, %rax
+ movq $__NR__lxsys_sigreturn, %rax
popq %rbx
int $33
callq *%rax
movq %rax, %rbx
- movq $__SYSCALL_th_exit, %rax
+ movq $__NR__lxsys_th_exit, %rax
int $33
\ No newline at end of file
-#ifndef __LUNAIX_SYS_DIRENT_H
-#define __LUNAIX_SYS_DIRENT_H
+#ifndef __LUNALIBC_SYS_DIRENT_H
+#define __LUNALIBC_SYS_DIRENT_H
-#include <lunaix/dirent_defs.h>
+#include <lunaix/dirent.h>
typedef struct
{
extern int
sys_readdir(int fd, struct lx_dirent* dirent);
-#endif /* __LUNAIX_DIRENT_H */
+#endif /* __LUNALIBC_DIRENT_H */
-#ifndef __LUNAIX_SYS_ERRNO_H
-#define __LUNAIX_SYS_ERRNO_H
+#ifndef __LUNALIBC_SYS_ERRNO_H
+#define __LUNALIBC_SYS_ERRNO_H
#include <lunaix/status.h>
#define errno (geterrno())
-#endif /* __LUNAIX_ERRNO_H */
+#endif /* __LUNALIBC_ERRNO_H */
-#ifndef __LUNAIX_SYS_FCNTL_H
-#define __LUNAIX_SYS_FCNTL_H
+#ifndef __LUNALIBC_SYS_FCNTL_H
+#define __LUNALIBC_SYS_FCNTL_H
-#include <lunaix/fcntl_defs.h>
-#include <lunaix/types.h>
+#include <lunaix/fcntl.h>
+#include <sys/types.h>
extern int
open(const char* path, int flags);
extern int
fstat(int fd, struct file_stat* stat);
-#endif /* __LUNAIX_FCNTL_H */
+#endif /* __LUNALIBC_FCNTL_H */
+++ /dev/null
-#ifndef __LUNAIX_SYS_IOCTL_H
-#define __LUNAIX_SYS_IOCTL_H
-
-#include <lunaix/ioctl_defs.h>
-
-int ioctl(int fd, int req, ...);
-
-#endif /* __LUNAIX_IOCTL_H */
+++ /dev/null
-#ifndef __LUNAIX_SYS_LUNAIX_H
-#define __LUNAIX_SYS_LUNAIX_H
-
-#include <lunaix/types.h>
-#include <stddef.h>
-
-void
-yield();
-
-pid_t
-wait(int* status);
-
-pid_t
-waitpid(pid_t pid, int* status, int flags);
-
-void
-syslog(int level, const char* fmt, ...);
-
-int
-realpathat(int fd, char* buf, size_t size);
-
-#endif /* __LUNAIX_LUNAIX_H */
+++ /dev/null
-#ifndef __LUNAIX_OSDEPS_SYSCALL_H
-#define __LUNAIX_OSDEPS_SYSCALL_H
-
-#include <lunaix/syscallid.h>
-
-extern unsigned long
-do_lunaix_syscall(unsigned long call_id, ...);
-
-#endif /* __LUNAIX_OSDEPS_SYSCALL_H */
-#ifndef __LUNAIX_PTHREAD_H
-#define __LUNAIX_PTHREAD_H
+#ifndef __LUNALIBC_PTHREAD_H
+#define __LUNALIBC_PTHREAD_H
#include <lunaix/threads.h>
-#endif /* __LUNAIX_PTHREAD_H */
+#endif /* __LUNALIBC_PTHREAD_H */
-#ifndef __LUNAIX_SYS_SIGNAL_H
-#define __LUNAIX_SYS_SIGNAL_H
+#ifndef __LUNALIBC_SYS_SIGNAL_H
+#define __LUNALIBC_SYS_SIGNAL_H
-#include <lunaix/signal_defs.h>
-#include <lunaix/types.h>
+#include <lunaix/signal.h>
+#include <sys/types.h>
extern sighandler_t
signal(int signum, sighandler_t handler);
pthread_sigmask(int how, const sigset_t *restrict set,
sigset_t *restrict oset);
-#endif /* __LUNAIX_SIGNAL_H */
+#endif /* __LUNALIBC_SIGNAL_H */
-#ifndef __LUNAIX_USTDIO_H
-#define __LUNAIX_USTDIO_H
+#ifndef __LUNALIBC_USTDIO_H
+#define __LUNALIBC_USTDIO_H
#include <stdarg.h>
int
snprintf(char* buffer, unsigned int size, const char* fmt, ...);
-#endif /* __LUNAIX_USTDIO_H */
+#endif /* __LUNALIBC_USTDIO_H */
-#ifndef __LUNAIX_STDLIB_H
-#define __LUNAIX_STDLIB_H
+#ifndef __LUNALIBC_STDLIB_H
+#define __LUNALIBC_STDLIB_H
extern char* itoa(int value, char* str, int base);
-#endif /* __LUNAIX_STDLIB_H */
+#endif /* __LUNALIBC_STDLIB_H */
-#ifndef __LUNAIX_STRING_H
-#define __LUNAIX_STRING_H
+#ifndef __LUNALIBC_STRING_H
+#define __LUNALIBC_STRING_H
#include <stddef.h>
extern int strcmp(const char* s1, const char* s2);
-#endif /* __LUNAIX_STRING_H */
+#endif /* __LUNALIBC_STRING_H */
--- /dev/null
+#ifndef __LUNALIBC_SYS_IOCTL_H
+#define __LUNALIBC_SYS_IOCTL_H
+
+#include <lunaix/ioctl.h>
+
+int ioctl(int fd, int req, ...);
+
+#endif /* __LUNALIBC_IOCTL_H */
--- /dev/null
+#ifndef __LUNALIBC_SYS_LUNAIX_H
+#define __LUNALIBC_SYS_LUNAIX_H
+
+#include <sys/types.h>
+#include <stddef.h>
+
+void
+yield();
+
+void
+syslog(int level, const char* fmt, ...);
+
+int
+realpathat(int fd, char* buf, size_t size);
+
+#endif /* __LUNALIBC_LUNAIX_H */
-#ifndef __LUNAIX_SYS_MANN_H
-#define __LUNAIX_SYS_MANN_H
+#ifndef __LUNALIBC_SYS_MANN_H
+#define __LUNALIBC_SYS_MANN_H
#include <stddef.h>
-#include <lunaix/mann_flags.h>
-#include <lunaix/types.h>
+#include <lunaix/mman.h>
+#include <sys/types.h>
void* mmap(void* addr, size_t length, int proct, int flags, int fd, off_t offset);
int munmap(void* addr, size_t length);
-#endif /* __LUNAIX_MANN_H */
+#endif /* __LUNALIBC_MANN_H */
-#ifndef __LUNAIX_SYS_MOUNT_H
-#define __LUNAIX_SYS_MOUNT_H
+#ifndef __LUNALIBC_SYS_MOUNT_H
+#define __LUNALIBC_SYS_MOUNT_H
-#include <lunaix/types.h>
+#include <sys/types.h>
extern int mount(const char* source, const char* target, const char* fstype, int flags);
{
return unmount(target);
}
-#endif /* __LUNAIX_MOUNT_H */
+#endif /* __LUNALIBC_MOUNT_H */
--- /dev/null
+#ifndef __LUNAIX_TYPES_H
+#define __LUNAIX_TYPES_H
+
+#include <lunaix/types.h>
+
+typedef __lunaix_pid_t pid_t;
+typedef __lunaix_tid_t tid_t;
+typedef __lunaix_uid_t uid_t;
+typedef __lunaix_gid_t gid_t;
+typedef __lunaix_size_t size_t;
+typedef __lunaix_ssize_t ssize_t;
+typedef __lunaix_size_t off_t;
+typedef __lunaix_ino_t ino_t;
+
+typedef __lunaix_dev_t dev_t;
+
+#endif /* __LUNAIX_TYPES_H */
--- /dev/null
+#ifndef __LUNAIX_WAIT_H
+#define __LUNAIX_WAIT_H
+
+#include <lunaix/wait.h>
+#include <sys/types.h>
+
+pid_t
+wait(int* status);
+
+pid_t
+waitpid(pid_t pid, int* status, int flags);
+
+#endif /* __LUNAIX_WAIT_H */
--- /dev/null
+#ifndef __LUNALIBC_SYSCALL_H
+#define __LUNALIBC_SYSCALL_H
+
+#include <lunaix/syscallid.h>
+
+unsigned long do_lunaix_syscall(int num, ...);
+
+#endif /* __LUNALIBC_SYSCALL_H */
-#ifndef __LUNAIX_TERMIOS_H
-#define __LUNAIX_TERMIOS_H
+#ifndef __LUNALIBC_TERMIOS_H
+#define __LUNALIBC_TERMIOS_H
#include <lunaix/term.h>
int tcsendbreak(int, int);
int tcsetattr(int, int, const struct termios *);
-#endif /* __LUNAIX_TERMIOS_H */
+#endif /* __LUNALIBC_TERMIOS_H */
-#ifndef __LUNAIX_SYS_UNISTD_H
-#define __LUNAIX_SYS_UNISTD_H
+#ifndef __LUNALIBC_SYS_UNISTD_H
+#define __LUNALIBC_SYS_UNISTD_H
-#include <lunaix/types.h>
+#include <sys/types.h>
#include <stddef.h>
extern const char** environ;
extern int
execve(const char* filename, const char* argv[], const char* envp[]);
-#endif /* __LUNAIX_UNISTD_H */
+#endif /* __LUNALIBC_UNISTD_H */
-#include <lunaix/syscall.h>
-#include <lunaix/dirent_defs.h>
+#include <syscall.h>
+#include <lunaix/dirent.h>
int
sys_readdir(int fd, struct lx_dirent* dirent)
{
- return do_lunaix_syscall(__SYSCALL_sys_readdir, fd, dirent);
+ return do_lunaix_syscall(__NR__lxsys_sys_readdir, fd, dirent);
}
\ No newline at end of file
-#include <lunaix/syscall.h>
+#include <syscall.h>
#include <errno.h>
int
geterrno()
{
- return do_lunaix_syscall(__SYSCALL_geterrno);
+ return do_lunaix_syscall(__NR__lxsys_geterrno);
}
\ No newline at end of file
-#include <lunaix/syscall.h>
+#include <syscall.h>
#include <fcntl.h>
int
open(const char* path, int options)
{
- return do_lunaix_syscall(__SYSCALL_open, path, options);
+ return do_lunaix_syscall(__NR__lxsys_open, path, options);
}
int
fstat(int fd, struct file_stat* stat)
{
- return do_lunaix_syscall(__SYSCALL_fstat, fd, stat);
+ return do_lunaix_syscall(__NR__lxsys_fstat, fd, stat);
}
\ No newline at end of file
-#include <lunaix/syscall.h>
-#include <lunaix/ioctl.h>
+#include <syscall.h>
+#include <sys/ioctl.h>
#include <stdarg.h>
int __attribute__((noinline))
va_list ap;
va_start(ap, req);
- int ret = do_lunaix_syscall(__SYSCALL_ioctl, fd, req, &ap);
+ int ret = do_lunaix_syscall(__NR__lxsys_ioctl, fd, req, &ap);
va_end(ap);
return ret;
-#include <lunaix/syscall.h>
-#include <lunaix/types.h>
+#include <syscall.h>
+#include <sys/types.h>
#include <stdio.h>
void
yield()
{
- do_lunaix_syscall(__SYSCALL_yield);
+ do_lunaix_syscall(__NR__lxsys_yield);
}
pid_t
wait(int* status)
{
- return do_lunaix_syscall(__SYSCALL_wait, status);
+ return do_lunaix_syscall(__NR__lxsys_wait, status);
}
pid_t
waitpid(pid_t pid, int* status, int options)
{
- return do_lunaix_syscall(__SYSCALL_waitpid, pid, status, options);
+ return do_lunaix_syscall(__NR__lxsys_waitpid, pid, status, options);
}
void
va_start(ap, fmt);
unsigned int size = vsnprintf(buf, 1024, fmt, ap);
- do_lunaix_syscall(__SYSCALL_syslog, level, buf, size);
+ do_lunaix_syscall(__NR__lxsys_syslog, level, buf, size);
va_end(ap);
}
int
realpathat(int fd, char* buf, size_t size)
{
- return do_lunaix_syscall(__SYSCALL_realpathat, fd, buf, size);
+ return do_lunaix_syscall(__NR__lxsys_realpathat, fd, buf, size);
}
\ No newline at end of file
-#include <lunaix/syscall.h>
-#include <lunaix/mann.h>
-#include <lunaix/types.h>
+#include <syscall.h>
+#include <sys/mman.h>
+#include <sys/types.h>
void*
mmap(void* addr, size_t length, int proct, int flags, int fd, off_t offset)
.offset = offset
};
- return (void*)do_lunaix_syscall(__SYSCALL_sys_mmap, &mparam);
+ return (void*)do_lunaix_syscall(__NR__lxsys_sys_mmap, &mparam);
}
int
munmap(void* addr, size_t length)
{
- return do_lunaix_syscall(__SYSCALL_munmap, addr, length);
+ return do_lunaix_syscall(__NR__lxsys_munmap, addr, length);
}
-#include <lunaix/syscall.h>
+#include <syscall.h>
int
mount(const char* source, const char* target,
const char* fstype, int options)
{
- return do_lunaix_syscall(__SYSCALL_mount, source, target, fstype, options);
+ return do_lunaix_syscall(__NR__lxsys_mount, source, target, fstype, options);
}
int
unmount(const char* target)
{
- return do_lunaix_syscall(__SYSCALL_unmount, target);
+ return do_lunaix_syscall(__NR__lxsys_unmount, target);
}
\ No newline at end of file
-#include <lunaix/syscall.h>
-#include <lunaix/signal_defs.h>
-#include <lunaix/types.h>
+#include <syscall.h>
+#include <lunaix/signal.h>
+#include <sys/types.h>
int
sigpending(sigset_t *set)
{
- return do_lunaix_syscall(__SYSCALL_sigpending, set);
+ return do_lunaix_syscall(__NR__lxsys_sigpending, set);
}
int
sigsuspend(const sigset_t *mask)
{
- return do_lunaix_syscall(__SYSCALL_sigsuspend, mask);
+ return do_lunaix_syscall(__NR__lxsys_sigsuspend, mask);
}
int
sigprocmask(int how, const sigset_t *set, sigset_t *oldset)
{
- return do_lunaix_syscall(__SYSCALL_sigprocmask, how, set, oldset);
+ return do_lunaix_syscall(__NR__lxsys_sigprocmask, how, set, oldset);
}
int
sys_sigaction(int signum, struct sigaction* action)
{
- return do_lunaix_syscall(__SYSCALL_sys_sigaction, signum, action);
+ return do_lunaix_syscall(__NR__lxsys_sys_sigaction, signum, action);
}
int
kill(pid_t pid, int signum)
{
- return do_lunaix_syscall(__SYSCALL_kill, pid, signum);
+ return do_lunaix_syscall(__NR__lxsys_kill, pid, signum);
}
extern void
-#include <lunaix/syscall.h>
-#include <lunaix/types.h>
+#include <syscall.h>
+#include <sys/types.h>
pid_t
fork()
{
- return do_lunaix_syscall(__SYSCALL_fork);
+ return do_lunaix_syscall(__NR__lxsys_fork);
}
int
brk(void* addr)
{
- return do_lunaix_syscall(__SYSCALL_brk, addr);
+ return do_lunaix_syscall(__NR__lxsys_brk, addr);
}
void*
sbrk(ssize_t size)
{
- return (void*)do_lunaix_syscall(__SYSCALL_sbrk, size);
+ return (void*)do_lunaix_syscall(__NR__lxsys_sbrk, size);
}
pid_t
getpid()
{
- return do_lunaix_syscall(__SYSCALL_getpid);
+ return do_lunaix_syscall(__NR__lxsys_getpid);
}
pid_t
getppid()
{
- return do_lunaix_syscall(__SYSCALL_getppid);
+ return do_lunaix_syscall(__NR__lxsys_getppid);
}
pid_t
getpgid()
{
- return do_lunaix_syscall(__SYSCALL_getpgid);
+ return do_lunaix_syscall(__NR__lxsys_getpgid);
}
pid_t
setpgid(pid_t pid, pid_t pgid)
{
- return do_lunaix_syscall(__SYSCALL_setpgid, pid, pgid);
+ return do_lunaix_syscall(__NR__lxsys_setpgid, pid, pgid);
}
void
_exit(int status)
{
- do_lunaix_syscall(__SYSCALL__exit, status);
+ do_lunaix_syscall(__NR__lxsys_exit, status);
}
unsigned int
sleep(unsigned int seconds)
{
- return do_lunaix_syscall(__SYSCALL_sleep, seconds);
+ return do_lunaix_syscall(__NR__lxsys_sleep, seconds);
}
int
pause()
{
- return do_lunaix_syscall(__SYSCALL_pause);
+ return do_lunaix_syscall(__NR__lxsys_pause);
}
unsigned int
alarm(unsigned int seconds)
{
- return do_lunaix_syscall(__SYSCALL_alarm, seconds);
+ return do_lunaix_syscall(__NR__lxsys_alarm, seconds);
}
int
link(const char* oldpath, const char* newpath)
{
- return do_lunaix_syscall(__SYSCALL_link, oldpath, newpath);
+ return do_lunaix_syscall(__NR__lxsys_link, oldpath, newpath);
}
int
rmdir(const char* pathname)
{
- return do_lunaix_syscall(__SYSCALL_rmdir, pathname);
+ return do_lunaix_syscall(__NR__lxsys_rmdir, pathname);
}
int
read(int fd, void* buf, size_t count)
{
- return do_lunaix_syscall(__SYSCALL_read, fd, buf, count);
+ return do_lunaix_syscall(__NR__lxsys_read, fd, buf, count);
}
int
write(int fd, void* buf, size_t count)
{
- return do_lunaix_syscall(__SYSCALL_write, fd, buf, count);
+ return do_lunaix_syscall(__NR__lxsys_write, fd, buf, count);
}
int
readlink(const char* path, char* buf, size_t size)
{
- return do_lunaix_syscall(__SYSCALL_readlink, path, buf, size);
+ return do_lunaix_syscall(__NR__lxsys_readlink, path, buf, size);
}
int
lseek(int fd, off_t offset, int options)
{
- return do_lunaix_syscall(__SYSCALL_lseek, fd, offset, options);
+ return do_lunaix_syscall(__NR__lxsys_lseek, fd, offset, options);
}
int
unlink(const char* pathname)
{
- return do_lunaix_syscall(__SYSCALL_unlink, pathname);
+ return do_lunaix_syscall(__NR__lxsys_unlink, pathname);
}
int
close(int fd)
{
- return do_lunaix_syscall(__SYSCALL_close, fd);
+ return do_lunaix_syscall(__NR__lxsys_close, fd);
}
int
dup2(int oldfd, int newfd)
{
- return do_lunaix_syscall(__SYSCALL_dup2, oldfd, newfd);
+ return do_lunaix_syscall(__NR__lxsys_dup2, oldfd, newfd);
}
int
dup(int oldfd)
{
- return do_lunaix_syscall(__SYSCALL_dup, oldfd);
+ return do_lunaix_syscall(__NR__lxsys_dup, oldfd);
}
int
fsync(int fildes)
{
- return do_lunaix_syscall(__SYSCALL_fsync, fildes);
+ return do_lunaix_syscall(__NR__lxsys_fsync, fildes);
}
int
symlink(const char* pathname, const char* link_target)
{
- return do_lunaix_syscall(__SYSCALL_symlink, pathname, link_target);
+ return do_lunaix_syscall(__NR__lxsys_symlink, pathname, link_target);
}
int
chdir(const char* path)
{
- return do_lunaix_syscall(__SYSCALL_chdir, path);
+ return do_lunaix_syscall(__NR__lxsys_chdir, path);
}
int
fchdir(int fd)
{
- return do_lunaix_syscall(__SYSCALL_fchdir, fd);
+ return do_lunaix_syscall(__NR__lxsys_fchdir, fd);
}
char*
getcwd(char* buf, size_t size)
{
- return (char*)do_lunaix_syscall(__SYSCALL_getcwd, buf, size);
+ return (char*)do_lunaix_syscall(__NR__lxsys_getcwd, buf, size);
}
int
rename(const char* oldpath, const char* newpath)
{
- return do_lunaix_syscall(__SYSCALL_rename, oldpath, newpath);
+ return do_lunaix_syscall(__NR__lxsys_rename, oldpath, newpath);
}
int
getxattr(const char* path, const char* name, void* value, size_t len)
{
- return do_lunaix_syscall(__SYSCALL_getxattr, path, name, value, len);
+ return do_lunaix_syscall(__NR__lxsys_getxattr, path, name, value, len);
}
int
setxattr(const char* path, const char* name, void* value, size_t len)
{
- return do_lunaix_syscall(__SYSCALL_setxattr, path, name, value, len);
+ return do_lunaix_syscall(__NR__lxsys_setxattr, path, name, value, len);
}
int
fgetxattr(int fd, const char* name, void* value, size_t len)
{
- return do_lunaix_syscall(__SYSCALL_fgetxattr, fd, name, value, len);
+ return do_lunaix_syscall(__NR__lxsys_fgetxattr, fd, name, value, len);
}
int
fsetxattr(int fd, const char* name, void* value, size_t len)
{
- return do_lunaix_syscall(__SYSCALL_fsetxattr, fd, name, value, len);
+ return do_lunaix_syscall(__NR__lxsys_fsetxattr, fd, name, value, len);
}
int
readlinkat(int dirfd, const char* pathname, char* buf, size_t size)
{
- return do_lunaix_syscall(__SYSCALL_readlinkat, dirfd, pathname, buf, size);
+ return do_lunaix_syscall(__NR__lxsys_readlinkat, dirfd, pathname, buf, size);
}
int
unlinkat(int fd, const char* pathname)
{
- return do_lunaix_syscall(__SYSCALL_unlinkat, fd, pathname);
+ return do_lunaix_syscall(__NR__lxsys_unlinkat, fd, pathname);
}
int
mkdir(const char* path)
{
- return do_lunaix_syscall(__SYSCALL_mkdir, path);
+ return do_lunaix_syscall(__NR__lxsys_mkdir, path);
}
int
execve(const char* filename, const char** argv, const char** envp)
{
- return do_lunaix_syscall(__SYSCALL_execve, filename, argv, envp);
+ return do_lunaix_syscall(__NR__lxsys_execve, filename, argv, envp);
}
-#include <lunaix/syscall.h>
+#include <syscall.h>
#include <pthread.h>
int
th_param.arg1 = arg;
extern void th_trampoline();
- ret = do_lunaix_syscall(__SYSCALL_th_create, thread,
+ ret = do_lunaix_syscall(__NR__lxsys_th_create, thread,
&th_param, th_trampoline);
return ret;
}
int
pthread_detach(pthread_t thread)
{
- return do_lunaix_syscall(__SYSCALL_th_detach, thread);
+ return do_lunaix_syscall(__NR__lxsys_th_detach, thread);
}
void
pthread_exit(void *value_ptr)
{
- do_lunaix_syscall(__SYSCALL_th_exit, value_ptr);
+ do_lunaix_syscall(__NR__lxsys_th_exit, value_ptr);
}
int
pthread_join(pthread_t thread, void **value_ptr)
{
- return do_lunaix_syscall(__SYSCALL_th_join, thread, value_ptr);
+ return do_lunaix_syscall(__NR__lxsys_th_join, thread, value_ptr);
}
int
pthread_kill(pthread_t thread, int sig)
{
- return do_lunaix_syscall(__SYSCALL_th_kill, thread, sig);
+ return do_lunaix_syscall(__NR__lxsys_th_kill, thread, sig);
}
pthread_t
pthread_self(void)
{
- return do_lunaix_syscall(__SYSCALL_th_self);
+ return do_lunaix_syscall(__NR__lxsys_th_self);
}
#include <termios.h>
-#include <lunaix/ioctl.h>
+#include <sys/ioctl.h>
int
tcgetattr(int fd, struct termios* termios_p)
#include <errno.h>
#include <fcntl.h>
-#include <lunaix/lunaix.h>
+#include <sys/lunaix.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
-#include <lunaix/ioctl.h>
-#include <lunaix/lunaix.h>
+#include <sys/ioctl.h>
+#include <sys/wait.h>
#include <signal.h>
#include <stdio.h>
#include <string.h>
-#include <lunaix/lunaix.h>
+#include <sys/wait.h>
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
+#include <sys/types.h>
static char buf[256];
#include <errno.h>
#include <fcntl.h>
-#include <lunaix/lunaix.h>
+#include <sys/wait.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>