OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [newlib-1.18.0/] [newlib-1.18.0-or32-1.0rc1/] [libgloss/] [cris/] [linunistd.h] - Diff between revs 207 and 345

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 207 Rev 345
/* Support for syscalls for cris*-axis-linux-gnu and simulators
/* Support for syscalls for cris*-axis-linux-gnu and simulators
   Copyright (C) 1998-2005 Axis Communications.
   Copyright (C) 1998-2005 Axis Communications.
   All rights reserved.
   All rights reserved.
 
 
   Redistribution and use in source and binary forms, with or without
   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions
   modification, are permitted provided that the following conditions
   are met:
   are met:
 
 
   1. Redistributions of source code must retain the above copyright
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
      notice, this list of conditions and the following disclaimer.
 
 
   2. Neither the name of Axis Communications nor the names of its
   2. Neither the name of Axis Communications nor the names of its
      contributors may be used to endorse or promote products derived
      contributors may be used to endorse or promote products derived
      from this software without specific prior written permission.
      from this software without specific prior written permission.
 
 
   THIS SOFTWARE IS PROVIDED BY AXIS COMMUNICATIONS AND ITS CONTRIBUTORS
   THIS SOFTWARE IS PROVIDED BY AXIS COMMUNICATIONS AND ITS CONTRIBUTORS
   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL AXIS
   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL AXIS
   COMMUNICATIONS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
   COMMUNICATIONS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
   INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
   IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   POSSIBILITY OF SUCH DAMAGE.  */
   POSSIBILITY OF SUCH DAMAGE.  */
 
 
/* Derived from asm-etrax100/unistd.h with minor modifications to fit as
/* Derived from asm-etrax100/unistd.h with minor modifications to fit as
   LOSS for newlib.  */
   LOSS for newlib.  */
 
 
#ifndef _ASM_ELINUX_UNISTD_H_
#ifndef _ASM_ELINUX_UNISTD_H_
#define _ASM_ELINUX_UNISTD_H_
#define _ASM_ELINUX_UNISTD_H_
 
 
/* Our callers might want to use link_warning, so provide it from here.  */
/* Our callers might want to use link_warning, so provide it from here.  */
#include "../libnosys/config.h"
#include "../libnosys/config.h"
#include "libnosys/warning.h"
#include "libnosys/warning.h"
 
 
#include <errno.h>
#include <errno.h>
 
 
/*
/*
 * This file contains the system call numbers, and stub macros for libc.
 * This file contains the system call numbers, and stub macros for libc.
 */
 */
 
 
#define __NR_setup                0     /* used only by init, to get system going */
#define __NR_setup                0     /* used only by init, to get system going */
#define __NR_exit                 1
#define __NR_exit                 1
#define __NR_fork                 2
#define __NR_fork                 2
#define __NR_read                 3
#define __NR_read                 3
#define __NR_write                4
#define __NR_write                4
#define __NR_open                 5
#define __NR_open                 5
#define __NR_close                6
#define __NR_close                6
#define __NR_waitpid              7
#define __NR_waitpid              7
#define __NR_creat                8
#define __NR_creat                8
#define __NR_link                 9
#define __NR_link                 9
#define __NR_unlink              10
#define __NR_unlink              10
#define __NR_execve              11
#define __NR_execve              11
#define __NR_chdir               12
#define __NR_chdir               12
#define __NR_time                13
#define __NR_time                13
#define __NR_mknod               14
#define __NR_mknod               14
#define __NR_chmod               15
#define __NR_chmod               15
#define __NR_chown               16
#define __NR_chown               16
#define __NR_break               17
#define __NR_break               17
#define __NR_oldstat             18
#define __NR_oldstat             18
#define __NR_lseek               19
#define __NR_lseek               19
#define __NR_getpid              20
#define __NR_getpid              20
#define __NR_mount               21
#define __NR_mount               21
#define __NR_umount              22
#define __NR_umount              22
#define __NR_setuid              23
#define __NR_setuid              23
#define __NR_getuid              24
#define __NR_getuid              24
#define __NR_stime               25
#define __NR_stime               25
#define __NR_ptrace              26
#define __NR_ptrace              26
#define __NR_alarm               27
#define __NR_alarm               27
#define __NR_oldfstat            28
#define __NR_oldfstat            28
#define __NR_pause               29
#define __NR_pause               29
#define __NR_utime               30
#define __NR_utime               30
#define __NR_stty                31
#define __NR_stty                31
#define __NR_gtty                32
#define __NR_gtty                32
#define __NR_access              33
#define __NR_access              33
#define __NR_nice                34
#define __NR_nice                34
#define __NR_ftime               35
#define __NR_ftime               35
#define __NR_sync                36
#define __NR_sync                36
#define __NR_kill                37
#define __NR_kill                37
#define __NR_rename              38
#define __NR_rename              38
#define __NR_mkdir               39
#define __NR_mkdir               39
#define __NR_rmdir               40
#define __NR_rmdir               40
#define __NR_dup                 41
#define __NR_dup                 41
#define __NR_pipe                42
#define __NR_pipe                42
#define __NR_times               43
#define __NR_times               43
#define __NR_prof                44
#define __NR_prof                44
#define __NR_brk                 45
#define __NR_brk                 45
#define __NR_setgid              46
#define __NR_setgid              46
#define __NR_getgid              47
#define __NR_getgid              47
#define __NR_signal              48
#define __NR_signal              48
#define __NR_geteuid             49
#define __NR_geteuid             49
#define __NR_getegid             50
#define __NR_getegid             50
#define __NR_acct                51
#define __NR_acct                51
#define __NR_phys                52
#define __NR_phys                52
#define __NR_lock                53
#define __NR_lock                53
#define __NR_ioctl               54
#define __NR_ioctl               54
#define __NR_fcntl               55
#define __NR_fcntl               55
#define __NR_mpx                 56
#define __NR_mpx                 56
#define __NR_setpgid             57
#define __NR_setpgid             57
#define __NR_ulimit              58
#define __NR_ulimit              58
#define __NR_oldolduname         59
#define __NR_oldolduname         59
#define __NR_umask               60
#define __NR_umask               60
#define __NR_chroot              61
#define __NR_chroot              61
#define __NR_ustat               62
#define __NR_ustat               62
#define __NR_dup2                63
#define __NR_dup2                63
#define __NR_getppid             64
#define __NR_getppid             64
#define __NR_getpgrp             65
#define __NR_getpgrp             65
#define __NR_setsid              66
#define __NR_setsid              66
#define __NR_sigaction           67
#define __NR_sigaction           67
#define __NR_sgetmask            68
#define __NR_sgetmask            68
#define __NR_ssetmask            69
#define __NR_ssetmask            69
#define __NR_setreuid            70
#define __NR_setreuid            70
#define __NR_setregid            71
#define __NR_setregid            71
#define __NR_sigsuspend          72
#define __NR_sigsuspend          72
#define __NR_sigpending          73
#define __NR_sigpending          73
#define __NR_sethostname         74
#define __NR_sethostname         74
#define __NR_setrlimit           75
#define __NR_setrlimit           75
#define __NR_getrlimit           76
#define __NR_getrlimit           76
#define __NR_getrusage           77
#define __NR_getrusage           77
#define __NR_gettimeofday        78
#define __NR_gettimeofday        78
#define __NR_settimeofday        79
#define __NR_settimeofday        79
#define __NR_getgroups           80
#define __NR_getgroups           80
#define __NR_setgroups           81
#define __NR_setgroups           81
#define __NR_select              82
#define __NR_select              82
#define __NR_symlink             83
#define __NR_symlink             83
#define __NR_oldlstat            84
#define __NR_oldlstat            84
#define __NR_readlink            85
#define __NR_readlink            85
#define __NR_uselib              86
#define __NR_uselib              86
#define __NR_swapon              87
#define __NR_swapon              87
#define __NR_reboot              88
#define __NR_reboot              88
#define __NR_readdir             89
#define __NR_readdir             89
#define __NR_mmap                90
#define __NR_mmap                90
#define __NR_munmap              91
#define __NR_munmap              91
#define __NR_truncate            92
#define __NR_truncate            92
#define __NR_ftruncate           93
#define __NR_ftruncate           93
#define __NR_fchmod              94
#define __NR_fchmod              94
#define __NR_fchown              95
#define __NR_fchown              95
#define __NR_getpriority         96
#define __NR_getpriority         96
#define __NR_setpriority         97
#define __NR_setpriority         97
#define __NR_profil              98
#define __NR_profil              98
#define __NR_statfs              99
#define __NR_statfs              99
#define __NR_fstatfs            100
#define __NR_fstatfs            100
#define __NR_ioperm             101
#define __NR_ioperm             101
#define __NR_socketcall         102
#define __NR_socketcall         102
#define __NR_syslog             103
#define __NR_syslog             103
#define __NR_setitimer          104
#define __NR_setitimer          104
#define __NR_getitimer          105
#define __NR_getitimer          105
#define __NR_stat               106
#define __NR_stat               106
#define __NR_lstat              107
#define __NR_lstat              107
#define __NR_fstat              108
#define __NR_fstat              108
#define __NR_olduname           109
#define __NR_olduname           109
#define __NR_iopl               110
#define __NR_iopl               110
#define __NR_vhangup            111
#define __NR_vhangup            111
#define __NR_idle               112
#define __NR_idle               112
#define __NR_vm86               113
#define __NR_vm86               113
#define __NR_wait4              114
#define __NR_wait4              114
#define __NR_swapoff            115
#define __NR_swapoff            115
#define __NR_sysinfo            116
#define __NR_sysinfo            116
#define __NR_ipc                117
#define __NR_ipc                117
#define __NR_fsync              118
#define __NR_fsync              118
#define __NR_sigreturn          119
#define __NR_sigreturn          119
#define __NR_clone              120
#define __NR_clone              120
#define __NR_setdomainname      121
#define __NR_setdomainname      121
#define __NR_uname              122
#define __NR_uname              122
#define __NR_modify_ldt         123
#define __NR_modify_ldt         123
#define __NR_adjtimex           124
#define __NR_adjtimex           124
#define __NR_mprotect           125
#define __NR_mprotect           125
#define __NR_sigprocmask        126
#define __NR_sigprocmask        126
#define __NR_create_module      127
#define __NR_create_module      127
#define __NR_init_module        128
#define __NR_init_module        128
#define __NR_delete_module      129
#define __NR_delete_module      129
#define __NR_get_kernel_syms    130
#define __NR_get_kernel_syms    130
#define __NR_quotactl           131
#define __NR_quotactl           131
#define __NR_getpgid            132
#define __NR_getpgid            132
#define __NR_fchdir             133
#define __NR_fchdir             133
#define __NR_bdflush            134
#define __NR_bdflush            134
#define __NR_sysfs              135
#define __NR_sysfs              135
#define __NR_personality        136
#define __NR_personality        136
#define __NR_afs_syscall        137 /* Syscall for Andrew File System */
#define __NR_afs_syscall        137 /* Syscall for Andrew File System */
#define __NR_setfsuid           138
#define __NR_setfsuid           138
#define __NR_setfsgid           139
#define __NR_setfsgid           139
#define __NR__llseek            140
#define __NR__llseek            140
#define __NR_getdents           141
#define __NR_getdents           141
#define __NR__newselect         142
#define __NR__newselect         142
#define __NR_flock              143
#define __NR_flock              143
#define __NR_msync              144
#define __NR_msync              144
#define __NR_readv              145
#define __NR_readv              145
#define __NR_writev             146
#define __NR_writev             146
#define __NR_getsid             147
#define __NR_getsid             147
#define __NR_fdatasync          148
#define __NR_fdatasync          148
#define __NR__sysctl            149
#define __NR__sysctl            149
#define __NR_mlock              150
#define __NR_mlock              150
#define __NR_munlock            151
#define __NR_munlock            151
#define __NR_mlockall           152
#define __NR_mlockall           152
#define __NR_munlockall         153
#define __NR_munlockall         153
#define __NR_sched_setparam             154
#define __NR_sched_setparam             154
#define __NR_sched_getparam             155
#define __NR_sched_getparam             155
#define __NR_sched_setscheduler         156
#define __NR_sched_setscheduler         156
#define __NR_sched_getscheduler         157
#define __NR_sched_getscheduler         157
#define __NR_sched_yield                158
#define __NR_sched_yield                158
#define __NR_sched_get_priority_max     159
#define __NR_sched_get_priority_max     159
#define __NR_sched_get_priority_min     160
#define __NR_sched_get_priority_min     160
#define __NR_sched_rr_get_interval      161
#define __NR_sched_rr_get_interval      161
#define __NR_nanosleep          162
#define __NR_nanosleep          162
#define __NR_mremap             163
#define __NR_mremap             163
 
 
#define __NR_mmap2              192
#define __NR_mmap2              192
 
 
#define PASTE(x,y) x##y
#define PASTE(x,y) x##y
#define XSTR(x) # x
#define XSTR(x) # x
#define STR(x) XSTR (x)
#define STR(x) XSTR (x)
 
 
#ifdef __elinux__
#ifdef __elinux__
# define CRIS_SYSCALL "jir .$System.call"
# define CRIS_SYSCALL "jir .$System.call"
# define CALLNO_REG r1
# define CALLNO_REG r1
# define ARG5_REG r0
# define ARG5_REG r0
# define MOVE_ARG5 "move.d"
# define MOVE_ARG5 "move.d"
# define COLON_ARG5_CLOBBER : "r0"
# define COLON_ARG5_CLOBBER : "r0"
#else
#else
# define CRIS_SYSCALL "break 13"
# define CRIS_SYSCALL "break 13"
# define CALLNO_REG r9
# define CALLNO_REG r9
# define ARG5_REG srp
# define ARG5_REG srp
# define MOVE_ARG5 "move"
# define MOVE_ARG5 "move"
# define COLON_ARG5_CLOBBER
# define COLON_ARG5_CLOBBER
#endif
#endif
 
 
/* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */
/* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */
#define _syscall0(type,name) \
#define _syscall0(type,name) \
type PASTE(_Sys_,name) (void) \
type PASTE(_Sys_,name) (void) \
{ \
{ \
  register long __a __asm__ ("r10"); \
  register long __a __asm__ ("r10"); \
  register long __n_ __asm__ (STR (CALLNO_REG)) = (__NR_##name); \
  register long __n_ __asm__ (STR (CALLNO_REG)) = (__NR_##name); \
  __asm__ __volatile__ (CRIS_SYSCALL \
  __asm__ __volatile__ (CRIS_SYSCALL \
                        : "=r" (__a) \
                        : "=r" (__a) \
                        : "r" (__n_)); \
                        : "r" (__n_)); \
  if (__a >= 0) \
  if (__a >= 0) \
     return (type) __a; \
     return (type) __a; \
  errno = -__a; \
  errno = -__a; \
  return -1; \
  return -1; \
}
}
 
 
#define _syscall1(type,name,type1,arg1) \
#define _syscall1(type,name,type1,arg1) \
type PASTE(_Sys_,name) (type1 arg1) \
type PASTE(_Sys_,name) (type1 arg1) \
{ \
{ \
  register long __a __asm__ ("r10") = (long) arg1; \
  register long __a __asm__ ("r10") = (long) arg1; \
  register long __n_ __asm__ (STR (CALLNO_REG)) = (__NR_##name); \
  register long __n_ __asm__ (STR (CALLNO_REG)) = (__NR_##name); \
  __asm__ __volatile__ (CRIS_SYSCALL \
  __asm__ __volatile__ (CRIS_SYSCALL \
                        : "=r" (__a) \
                        : "=r" (__a) \
                        : "r" (__n_), "0" (__a)); \
                        : "r" (__n_), "0" (__a)); \
  if (__a >= 0) \
  if (__a >= 0) \
     return (type) __a; \
     return (type) __a; \
  errno = -__a; \
  errno = -__a; \
  return -1; \
  return -1; \
}
}
 
 
#define _syscall2(type,name,type1,arg1,type2,arg2) \
#define _syscall2(type,name,type1,arg1,type2,arg2) \
type PASTE(_Sys_,name) (type1 arg1,type2 arg2) \
type PASTE(_Sys_,name) (type1 arg1,type2 arg2) \
{ \
{ \
  register long __a __asm__ ("r10") = (long) arg1; \
  register long __a __asm__ ("r10") = (long) arg1; \
  register long __b __asm__ ("r11") = (long) arg2; \
  register long __b __asm__ ("r11") = (long) arg2; \
  register long __n_ __asm__ (STR (CALLNO_REG)) = (__NR_##name); \
  register long __n_ __asm__ (STR (CALLNO_REG)) = (__NR_##name); \
  __asm__ __volatile__ (CRIS_SYSCALL \
  __asm__ __volatile__ (CRIS_SYSCALL \
                        : "=r" (__a) \
                        : "=r" (__a) \
                        : "r" (__n_), "0" (__a), "r" (__b)); \
                        : "r" (__n_), "0" (__a), "r" (__b)); \
  if (__a >= 0) \
  if (__a >= 0) \
     return (type) __a; \
     return (type) __a; \
  errno = -__a; \
  errno = -__a; \
  return -1; \
  return -1; \
}
}
 
 
#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
type PASTE(_Sys_,name) (type1 arg1,type2 arg2,type3 arg3) \
type PASTE(_Sys_,name) (type1 arg1,type2 arg2,type3 arg3) \
{ \
{ \
  register long __a __asm__ ("r10") = (long) arg1; \
  register long __a __asm__ ("r10") = (long) arg1; \
  register long __b __asm__ ("r11") = (long) arg2; \
  register long __b __asm__ ("r11") = (long) arg2; \
  register long __c __asm__ ("r12") = (long) arg3; \
  register long __c __asm__ ("r12") = (long) arg3; \
  register long __n_ __asm__ (STR (CALLNO_REG)) = (__NR_##name); \
  register long __n_ __asm__ (STR (CALLNO_REG)) = (__NR_##name); \
  __asm__ __volatile__ (CRIS_SYSCALL \
  __asm__ __volatile__ (CRIS_SYSCALL \
                        : "=r" (__a) \
                        : "=r" (__a) \
                        : "r" (__n_), "0" (__a), "r" (__b), "r" (__c)); \
                        : "r" (__n_), "0" (__a), "r" (__b), "r" (__c)); \
  if (__a >= 0) \
  if (__a >= 0) \
     return (type) __a; \
     return (type) __a; \
  errno = -__a; \
  errno = -__a; \
  return -1; \
  return -1; \
}
}
 
 
#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
type PASTE(_Sys_,name) (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
type PASTE(_Sys_,name) (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
{ \
{ \
  register long __a __asm__ ("r10") = (long) arg1; \
  register long __a __asm__ ("r10") = (long) arg1; \
  register long __b __asm__ ("r11") = (long) arg2; \
  register long __b __asm__ ("r11") = (long) arg2; \
  register long __c __asm__ ("r12") = (long) arg3; \
  register long __c __asm__ ("r12") = (long) arg3; \
  register long __d __asm__ ("r13") = (long) arg4; \
  register long __d __asm__ ("r13") = (long) arg4; \
  register long __n_ __asm__ (STR (CALLNO_REG)) = (__NR_##name); \
  register long __n_ __asm__ (STR (CALLNO_REG)) = (__NR_##name); \
  __asm__ __volatile__ (CRIS_SYSCALL \
  __asm__ __volatile__ (CRIS_SYSCALL \
                        : "=r" (__a) \
                        : "=r" (__a) \
                        : "r" (__n_), "0" (__a), "r" (__b), \
                        : "r" (__n_), "0" (__a), "r" (__b), \
                          "r" (__c), "r" (__d)); \
                          "r" (__c), "r" (__d)); \
  if (__a >= 0) \
  if (__a >= 0) \
     return (type) __a; \
     return (type) __a; \
  errno = -__a; \
  errno = -__a; \
  return -1; \
  return -1; \
}
}
 
 
#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
          type5,arg5) \
          type5,arg5) \
type PASTE(_Sys_,name) (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
type PASTE(_Sys_,name) (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
{ \
{ \
  register long __a __asm__ ("r10") = (long) arg1; \
  register long __a __asm__ ("r10") = (long) arg1; \
  register long __b __asm__ ("r11") = (long) arg2; \
  register long __b __asm__ ("r11") = (long) arg2; \
  register long __c __asm__ ("r12") = (long) arg3; \
  register long __c __asm__ ("r12") = (long) arg3; \
  register long __d __asm__ ("r13") = (long) arg4; \
  register long __d __asm__ ("r13") = (long) arg4; \
  register long __n_ __asm__ (STR (CALLNO_REG)) = (__NR_##name); \
  register long __n_ __asm__ (STR (CALLNO_REG)) = (__NR_##name); \
  __asm__ __volatile__ (MOVE_ARG5 " %6,$" STR (ARG5_REG) "\n\t" \
  __asm__ __volatile__ (MOVE_ARG5 " %6,$" STR (ARG5_REG) "\n\t" \
                        CRIS_SYSCALL \
                        CRIS_SYSCALL \
                        : "=r" (__a) \
                        : "=r" (__a) \
                        : "r" (__n_), "0" (__a), "r" (__b), \
                        : "r" (__n_), "0" (__a), "r" (__b), \
                          "r" (__c), "r" (__d), "g" (arg5) \
                          "r" (__c), "r" (__d), "g" (arg5) \
                        COLON_ARG5_CLOBBER); \
                        COLON_ARG5_CLOBBER); \
  if (__a >= 0) \
  if (__a >= 0) \
     return (type) __a; \
     return (type) __a; \
  errno = -__a; \
  errno = -__a; \
  return -1; \
  return -1; \
}
}
 
 
#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
          type5,arg5,type6,arg6) \
          type5,arg5,type6,arg6) \
type PASTE(_Sys_,name) (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5, type6 arg6) \
type PASTE(_Sys_,name) (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5, type6 arg6) \
{ \
{ \
  register long __a __asm__ ("r10") = (long) arg1; \
  register long __a __asm__ ("r10") = (long) arg1; \
  register long __b __asm__ ("r11") = (long) arg2; \
  register long __b __asm__ ("r11") = (long) arg2; \
  register long __c __asm__ ("r12") = (long) arg3; \
  register long __c __asm__ ("r12") = (long) arg3; \
  register long __d __asm__ ("r13") = (long) arg4; \
  register long __d __asm__ ("r13") = (long) arg4; \
  register long __n_ __asm__ (STR (CALLNO_REG)) = (__NR_##name); \
  register long __n_ __asm__ (STR (CALLNO_REG)) = (__NR_##name); \
  __asm__ __volatile__ (MOVE_ARG5 " %6,$" STR (ARG5_REG) "\n\t" \
  __asm__ __volatile__ (MOVE_ARG5 " %6,$" STR (ARG5_REG) "\n\t" \
                        "move %7,$mof\n\t" \
                        "move %7,$mof\n\t" \
                        CRIS_SYSCALL \
                        CRIS_SYSCALL \
                        : "=r" (__a) \
                        : "=r" (__a) \
                        : "r" (__n_), "0" (__a), "r" (__b), \
                        : "r" (__n_), "0" (__a), "r" (__b), \
                          "r" (__c), "r" (__d), "g" (arg5), "g" (arg6) \
                          "r" (__c), "r" (__d), "g" (arg5), "g" (arg6) \
                        COLON_ARG5_CLOBBER); \
                        COLON_ARG5_CLOBBER); \
  if (__a >= 0) \
  if (__a >= 0) \
     return (type) __a; \
     return (type) __a; \
  errno = -__a; \
  errno = -__a; \
  return -1; \
  return -1; \
}
}
 
 
#define __NR__exit __NR_exit
#define __NR__exit __NR_exit
static inline _syscall0(int,idle)
static inline _syscall0(int,idle)
static inline _syscall0(int,fork)
static inline _syscall0(int,fork)
static inline _syscall2(int,clone,unsigned long,flags,char *,esp)
static inline _syscall2(int,clone,unsigned long,flags,char *,esp)
static inline _syscall0(int,pause)
static inline _syscall0(int,pause)
static inline _syscall0(int,setup)
static inline _syscall0(int,setup)
static inline _syscall0(int,sync)
static inline _syscall0(int,sync)
static inline _syscall3(int,write,int,fd,const char *,buf,unsigned,count)
static inline _syscall3(int,write,int,fd,const char *,buf,unsigned,count)
static inline _syscall1(int,dup,int,fd)
static inline _syscall1(int,dup,int,fd)
static inline _syscall3(int,execve,const char *,file,char **,argv,char **,envp)
static inline _syscall3(int,execve,const char *,file,char **,argv,char **,envp)
static inline _syscall3(int,open,const char *,file,int,flag,int,mode)
static inline _syscall3(int,open,const char *,file,int,flag,int,mode)
static inline _syscall1(int,close,int,fd)
static inline _syscall1(int,close,int,fd)
static inline _syscall1(int,_exit,int,exitcode)
static inline _syscall1(int,_exit,int,exitcode)
static inline _syscall1(int,exit,int,exitcode)
static inline _syscall1(int,exit,int,exitcode)
static inline _syscall3(int,waitpid,int,pid,int *,wait_stat,int,options)
static inline _syscall3(int,waitpid,int,pid,int *,wait_stat,int,options)
static inline _syscall3(int,read,int,fd,char *,buf,unsigned,count)
static inline _syscall3(int,read,int,fd,char *,buf,unsigned,count)
static inline _syscall2(int,socketcall,int,call,unsigned long *,args)
static inline _syscall2(int,socketcall,int,call,unsigned long *,args)
static inline _syscall3(int,ioctl,unsigned int,fd,unsigned int,cmd,unsigned long,arg)
static inline _syscall3(int,ioctl,unsigned int,fd,unsigned int,cmd,unsigned long,arg)
static inline _syscall3(int,fcntl,unsigned int,fd,unsigned int,cmd,unsigned long,arg)
static inline _syscall3(int,fcntl,unsigned int,fd,unsigned int,cmd,unsigned long,arg)
static inline _syscall5(int,mount,const char *,a,const char *,b,const char *,c,unsigned long,rwflag,const void *,data)
static inline _syscall5(int,mount,const char *,a,const char *,b,const char *,c,unsigned long,rwflag,const void *,data)
static inline _syscall2(int,rename,const char *,a,const char*,b)
static inline _syscall2(int,rename,const char *,a,const char*,b)
 
 
#ifndef __elinux__
#ifndef __elinux__
/* Make sure these are only used where they are supported.  */
/* Make sure these are only used where they are supported.  */
static inline _syscall6(int,mmap2,unsigned long, addr, unsigned long, len,
static inline _syscall6(int,mmap2,unsigned long, addr, unsigned long, len,
                        unsigned long, prot, unsigned long, flags,
                        unsigned long, prot, unsigned long, flags,
                        unsigned long, fd, unsigned long, pgoff)
                        unsigned long, fd, unsigned long, pgoff)
static inline _syscall1(long,brk,long,addr)
static inline _syscall1(long,brk,long,addr)
#endif
#endif
 
 
/* This structure is ripped from asm-etrax100/stat.h: beware of updates.  */
/* This structure is ripped from asm-etrax100/stat.h: beware of updates.  */
struct new_stat {
struct new_stat {
        unsigned short st_dev;
        unsigned short st_dev;
        unsigned short __pad1;
        unsigned short __pad1;
        unsigned long st_ino;
        unsigned long st_ino;
        unsigned short st_mode;
        unsigned short st_mode;
        unsigned short st_nlink;
        unsigned short st_nlink;
        unsigned short st_uid;
        unsigned short st_uid;
        unsigned short st_gid;
        unsigned short st_gid;
        unsigned short st_rdev;
        unsigned short st_rdev;
        unsigned short __pad2;
        unsigned short __pad2;
        unsigned long  st_size;
        unsigned long  st_size;
        unsigned long  st_blksize;
        unsigned long  st_blksize;
        unsigned long  st_blocks;
        unsigned long  st_blocks;
        unsigned long  st_atime;
        unsigned long  st_atime;
        unsigned long  __unused1;
        unsigned long  __unused1;
        unsigned long  st_mtime;
        unsigned long  st_mtime;
        unsigned long  __unused2;
        unsigned long  __unused2;
        unsigned long  st_ctime;
        unsigned long  st_ctime;
        unsigned long  __unused3;
        unsigned long  __unused3;
        unsigned long  __unused4;
        unsigned long  __unused4;
        unsigned long  __unused5;
        unsigned long  __unused5;
};
};
 
 
static inline _syscall2(int,stat,const char *,path,struct new_stat *,statbuf)
static inline _syscall2(int,stat,const char *,path,struct new_stat *,statbuf)
static inline _syscall2(int,fstat,int,fd,struct new_stat *,statbuf)
static inline _syscall2(int,fstat,int,fd,struct new_stat *,statbuf)
static inline _syscall0(int,getpid)
static inline _syscall0(int,getpid)
static inline _syscall2(int,kill,int,pid,int,sig)
static inline _syscall2(int,kill,int,pid,int,sig)
static inline _syscall3(int,lseek,int,fd,int,offset,int,whence)
static inline _syscall3(int,lseek,int,fd,int,offset,int,whence)
struct tms;
struct tms;
static inline _syscall1(long,times,struct tms *,tbuf)
static inline _syscall1(long,times,struct tms *,tbuf)
static inline _syscall1(long,mmap,long *, buf)
static inline _syscall1(long,mmap,long *, buf)
struct timeval;
struct timeval;
struct timezone;
struct timezone;
static inline _syscall2(int,gettimeofday,struct timeval *,tp,
static inline _syscall2(int,gettimeofday,struct timeval *,tp,
                        void *, tzp)
                        void *, tzp)
static inline _syscall2(int,link,const char *,old,const char *,new)
static inline _syscall2(int,link,const char *,old,const char *,new)
static inline _syscall1(int,unlink,const char *, f)
static inline _syscall1(int,unlink,const char *, f)
struct rusage;
struct rusage;
static inline _syscall4(int,wait4,int,pid,int *,sa,int,op,struct rusage *,ru)
static inline _syscall4(int,wait4,int,pid,int *,sa,int,op,struct rusage *,ru)
#endif /* _ASM_ELINUX_UNISTD_H_ */
#endif /* _ASM_ELINUX_UNISTD_H_ */
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.