Patch title: Release 94 bulk changes
Abstract:
File: /pliant/language/os/linux_kernel.c
Key:
    Removed line
    Added line
// this has been extracted from various parts of GCC and Linux kernel headers
// then modifyed by Hubert Tonneau in order to get rid of errno variable,
// and simple types definitions and the beginning


typedef long int off_t;
typedef unsigned long int size_t;


/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
   located on an ext2 file system */
#define O_ACCMODE    0003
#define O_RDONLY      00
#define O_WRONLY      01
#define O_RDWR      02
#define O_CREAT    0100 /* not fcntl */
#define O_EXCL    0200 /* not fcntl */
#define O_NOCTTY    0400 /* not fcntl */
#define O_TRUNC   01000 /* not fcntl */
#define O_APPEND   02000
#define O_NONBLOCK   04000
#define O_NDELAY O_NONBLOCK
#define O_SYNC  010000
#define FASYNC  020000 /* fcntl, for BSD compatibility */
#define O_DIRECT  040000 /* direct disk access hint - currently ignored */
#define O_LARGEFILE 0100000
#define O_DIRECTORY 0200000 /* must be a directory */
#define O_NOFOLLOW 0400000 /* don't follow links */


#define PROT_READ 0x1 /* page can be read */
#define PROT_WRITE 0x2 /* page can be written */
#define PROT_EXEC 0x4 /* page can be executed */
#define PROT_NONE 0x0 /* page can not be accessed */

#define MAP_SHARED 0x01 /* Share changes */
#define MAP_PRIVATE 0x02 /* Changes are private */
#define MAP_TYPE 0x0f /* Mask for type of mapping */
#define MAP_FIXED 0x10 /* Interpret addr exactly */
#define MAP_ANONYMOUS 0x20 /* don't use a file */

#define MAP_GROWSDOWN 0x0100 /* stack-like segment */
#define MAP_DENYWRITE 0x0800 /* ETXTBSY */
#define MAP_EXECUTABLE 0x1000 /* mark it as an executable */
#define MAP_LOCKED 0x2000 /* pages are locked */
#define MAP_NORESERVE 0x4000 /* don't check for reservations */


/*
 * This file contains the system call numbers.
 */

#define __NR_exit   1
#define __NR_fork   2
#define __NR_read   3
#define __NR_write   4
#define __NR_open   5
#define __NR_close   6
#define __NR_waitpid   7
#define __NR_creat   8
#define __NR_link   9
#define __NR_unlink  10
#define __NR_execve  11
#define __NR_chdir  12
#define __NR_time  13
#define __NR_mknod  14
#define __NR_chmod  15
#define __NR_lchown  16
#define __NR_break  17
#define __NR_oldstat  18
#define __NR_lseek  19
#define __NR_getpid  20
#define __NR_mount  21
#define __NR_umount  22
#define __NR_setuid  23
#define __NR_getuid  24
#define __NR_stime  25
#define __NR_ptrace  26
#define __NR_alarm  27
#define __NR_oldfstat  28
#define __NR_pause  29
#define __NR_utime  30
#define __NR_stty  31
#define __NR_gtty  32
#define __NR_access  33
#define __NR_nice  34
#define __NR_ftime  35
#define __NR_sync  36
#define __NR_kill  37
#define __NR_rename  38
#define __NR_mkdir  39
#define __NR_rmdir  40
#define __NR_dup  41
#define __NR_pipe  42
#define __NR_times  43
#define __NR_prof  44
#define __NR_brk  45
#define __NR_setgid  46
#define __NR_getgid  47
#define __NR_signal  48
#define __NR_geteuid  49
#define __NR_getegid  50
#define __NR_acct  51
#define __NR_umount2  52
#define __NR_lock  53
#define __NR_ioctl  54
#define __NR_fcntl  55
#define __NR_mpx  56
#define __NR_setpgid  57
#define __NR_ulimit  58
#define __NR_oldolduname  59
#define __NR_umask  60
#define __NR_chroot  61
#define __NR_ustat  62
#define __NR_dup2  63
#define __NR_getppid  64
#define __NR_getpgrp  65
#define __NR_setsid  66
#define __NR_sigaction  67
#define __NR_sgetmask  68
#define __NR_ssetmask  69
#define __NR_setreuid  70
#define __NR_setregid  71
#define __NR_sigsuspend  72
#define __NR_sigpending  73
#define __NR_sethostname  74
#define __NR_setrlimit  75
#define __NR_getrlimit  76
#define __NR_getrusage  77
#define __NR_gettimeofday  78
#define __NR_settimeofday  79
#define __NR_getgroups  80
#define __NR_setgroups  81
#define __NR_select  82
#define __NR_symlink  83
#define __NR_oldlstat  84
#define __NR_readlink  85
#define __NR_uselib  86
#define __NR_swapon  87
#define __NR_reboot  88
#define __NR_readdir  89
#define __NR_mmap  90
#define __NR_munmap  91
#define __NR_truncate  92
#define __NR_ftruncate  93
#define __NR_fchmod  94
#define __NR_fchown  95
#define __NR_getpriority  96
#define __NR_setpriority  97
#define __NR_profil  98
#define __NR_statfs  99
#define __NR_fstatfs 100
#define __NR_ioperm 101
#define __NR_socketcall 102
#define __NR_syslog 103
#define __NR_setitimer 104
#define __NR_getitimer 105
#define __NR_stat 106
#define __NR_lstat 107
#define __NR_fstat 108
#define __NR_olduname 109
#define __NR_iopl 110
#define __NR_vhangup 111
#define __NR_idle 112
#define __NR_vm86old 113
#define __NR_wait4 114
#define __NR_swapoff 115
#define __NR_sysinfo 116
#define __NR_ipc 117
#define __NR_fsync 118
#define __NR_sigreturn 119
#define __NR_clone 120
#define __NR_setdomainname 121
#define __NR_uname 122
#define __NR_modify_ldt 123
#define __NR_adjtimex 124
#define __NR_mprotect 125
#define __NR_sigprocmask 126
#define __NR_build_module 127
#define __NR_init_module 128
#define __NR_delete_module 129
#define __NR_get_kernel_syms 130
#define __NR_quotactl 131
#define __NR_getpgid 132
#define __NR_fchdir 133
#define __NR_bdflush 134
#define __NR_sysfs 135
#define __NR_personality 136
#define __NR_afs_syscall 137 /* Syscall for Andrew File System */
#define __NR_setfsuid 138
#define __NR_setfsgid 139
#define __NR__llseek 140
#define __NR_getdents 141
#define __NR__newselect 142
#define __NR_flock 143
#define __NR_msync 144
#define __NR_readv 145
#define __NR_writev 146
#define __NR_getsid 147
#define __NR_fdatasync 148
#define __NR__sysctl 149
#define __NR_mlock 150
#define __NR_munlock 151
#define __NR_mlockall 152
#define __NR_munlockall 153
#define __NR_sched_setparam 154
#define __NR_sched_getparam 155
#define __NR_sched_setscheduler 156
#define __NR_sched_getscheduler 157
#define __NR_sched_yield 158
#define __NR_sched_get_priority_max 159
#define __NR_sched_get_priority_min 160
#define __NR_sched_rr_get_interval 161
#define __NR_nanosleep 162
#define __NR_mremap 163
#define __NR_setresuid 164
#define __NR_getresuid 165
#define __NR_vm86 166
#define __NR_query_module 167
#define __NR_poll 168
#define __NR_nfsservctl 169
#define __NR_setresgid 170
#define __NR_getresgid 171
#define __NR_prctl              172
#define __NR_rt_sigreturn 173
#define __NR_rt_sigaction 174
#define __NR_rt_sigprocmask 175
#define __NR_rt_sigpending 176
#define __NR_rt_sigtimedwait 177
#define __NR_rt_sigqueueinfo 178
#define __NR_rt_sigsuspend 179
#define __NR_pread 180
#define __NR_pwrite 181
#define __NR_chown 182
#define __NR_getcwd 183
#define __NR_capget 184
#define __NR_capset 185
#define __NR_sigaltstack 186
#define __NR_sendfile 187
#define __NR_getpmsg 188 /* some people actually want streams */
#define __NR_putpmsg 189 /* some people actually want streams */
#define __NR_vfork 190

#define __NR_pivot_root 217

/* user-visible error numbers are in the range -1 - -122: see <asm-i386/errno.h> */

#define __syscall_return(type, res) \
do { \
return (type) (res); \
} while (0)

/* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */
#define _syscall0(type,name) \
type name(void) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
: "=a" (__res) \
: "0" (__NR_##name)); \
__syscall_return(type,__res); \
}

#define _syscall1(type,name,type1,arg1) \
type name(type1 arg1) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
: "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1))); \
__syscall_return(type,__res); \
}

#define _syscall2(type,name,type1,arg1,type2,arg2) \
type name(type1 arg1,type2 arg2) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
: "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2))); \
__syscall_return(type,__res); \
}

#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
type name(type1 arg1,type2 arg2,type3 arg3) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
: "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \
  "d" ((long)(arg3))); \
__syscall_return(type,__res); \
}

#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
: "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \
  "d" ((long)(arg3)),"S" ((long)(arg4))); \
__syscall_return(type,__res); \


#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
  type5,arg5) \
type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
: "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \
  "d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5))); \
__syscall_return(type,__res); \
}