URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/tags/gnu-src/newlib-1.18.0/newlib-1.18.0-or32-1.0rc1/newlib/libc/machine/spu/sys
- from Rev 207 to Rev 345
- ↔ Reverse comparison
Rev 207 → Rev 345
/custom_file.h
0,0 → 1,13
#ifndef __CUSTOM_FILE_H__ |
#define __CUSTOM_FILE_H__ 1 |
|
/* |
* Cell SPE support |
*/ |
struct __sFILE_spu { |
int _fp; /* pseudo FILE pointer on PPE */ |
}; |
typedef struct __sFILE_spu __FILE; |
|
#endif /* __CUSTOM_FILE_H__ */ |
|
custom_file.h
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: syscall.h
===================================================================
--- syscall.h (nonexistent)
+++ syscall.h (revision 345)
@@ -0,0 +1,10 @@
+#ifndef _SYS_SYSCALL_H
+#define _SYS_SYSCALL_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+int __send_to_ppe(unsigned int signalcode, unsigned int opcode, void *data);
+#ifdef __cplusplus
+}
+#endif
+#endif
syscall.h
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: linux_syscalls.h
===================================================================
--- linux_syscalls.h (nonexistent)
+++ linux_syscalls.h (revision 345)
@@ -0,0 +1,310 @@
+/*
+(C) Copyright IBM Corp. 2008
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+Author: Ken Werner
+*/
+
+#ifndef __LINUX_SYSCALLS_H
+#define __LINUX_SYSCALLS_H
+
+#include
+
+/* The system call numbers. See kernel source file
+ arch/powerpc/include/asm/unistd.h. */
+#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_chdir 12
+#define __NR_time 13
+#define __NR_mkdod 14
+#define __NR_chmod 15
+#define __NR_lchown 16
+
+#define __NR_lseek 19
+#define __NR_getpid 20
+
+#define __NR_setuid 23
+#define __NR_getuid 24
+#define __NR_stime 25
+
+#define __NR_alarm 27
+
+#define __NR_access 33
+#define __NR_nice 34
+
+#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_brk 45
+#define __NR_setgid 46
+#define __NR_getgid 47
+
+#define __NR_geteuid 49
+#define __NR_getegid 50
+
+#define __NR_ioctl 54
+#define __NR_fcntl 55
+
+#define __NR_setpgid 57
+
+#define __NR_umask 60
+#define __NR_chroot 61
+
+#define __NR_dup2 63
+#define __NR_getppid 64
+#define __NR_getpgrp 65
+#define __NR_setsid 66
+
+#define __NR_sgetmask 68
+#define __NR_ssetmask 69
+#define __NR_setreuid 70
+#define __NR_setregid 71
+
+#define __NR_sethostname 74
+#define __NR_setrlimit 75
+
+#define __NR_getrusage 77
+#define __NR_gettimeofday 78
+#define __NR_settimeofday 79
+#define __NR_getgroups 80
+#define __NR_setgroups 81
+
+#define __NR_symlink 83
+
+#define __NR_readlink 85
+
+#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_socketcall 102
+#define __NR_syslog 103
+#define __NR_setitimer 104
+#define __NR_getitimer 105
+#define __NR_newstat 106
+#define __NR_newlstat 107
+#define __NR_newfstat 108
+
+#define __NR_vhangup 111
+
+#define __NR_wait4 114
+
+#define __NR_sysinfo 116
+
+#define __NR_fsync 118
+
+#define __NR_setdomainname 121
+#define __NR_newuname 122
+
+#define __NR_adjtimex 124
+#define __NR_mprotect 125
+
+#define __NR_getpgid 132
+#define __NR_fchdir 133
+#define __NR_bdflush 134
+
+#define __NR_personality 136
+
+#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_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_poll 167
+
+#define __NR_setresgid 169
+#define __NR_getresgid 170
+#define __NR_prctl 171
+
+#define __NR_pread64 179
+#define __NR_pwrite64 180
+#define __NR_chown 181
+#define __NR_getcwd 182
+#define __NR_capget 183
+#define __NR_capset 184
+
+#define __NR_sendfile 185
+
+#define __NR_getrlimit 190
+#define __NR_readahead 191
+
+#define __NR_getdents64 202
+#define __NR_pivot_root 203
+
+#define __NR_madvise 205
+#define __NR_mincore 206
+#define __NR_gettid 207
+#define __NR_tkill 208
+#define __NR_setxattr 209
+#define __NR_lsetxattr 210
+#define __NR_fsetxattr 211
+#define __NR_getxattr 212
+#define __NR_lgetxattr 213
+#define __NR_fgetxattr 214
+#define __NR_listxattr 215
+#define __NR_llistxattr 216
+#define __NR_flistxattr 217
+#define __NR_removexattr 218
+#define __NR_lremovexattr 219
+#define __NR_fremovexattr 220
+#define __NR_futex 221
+#define __NR_sched_setaffinity 222
+#define __NR_sched_getaffinity 223
+
+#define __NR_io_setup 227
+#define __NR_io_destroy 228
+#define __NR_io_getevents 229
+#define __NR_io_submit 230
+#define __NR_io_cancel 231
+
+#define __NR_fadvise64 233
+
+#define __NR_epoll_create 236
+#define __NR_epoll_ctl 237
+#define __NR_epoll_wait 238
+#define __NR_remap_file_pages 239
+#define __NR_timer_create 240
+#define __NR_timer_settime 241
+#define __NR_timer_gettime 242
+#define __NR_timer_getoverrun 243
+#define __NR_timer_delete 244
+#define __NR_clock_settime 245
+#define __NR_clock_gettime 246
+#define __NR_clock_getres 247
+#define __NR_clock_nanosleep 248
+
+#define __NR_tgkill 250
+#define __NR_utimes 251
+#define __NR_statfs64 252
+#define __NR_fstatfs64 253
+
+#define __NR_rtas 255
+
+#define __NR_unshare 282
+#define __NR_splice 283
+#define __NR_tee 284
+#define __NR_vmsplice 285
+#define __NR_openat 286
+#define __NR_mkdirat 287
+#define __NR_mknodat 288
+#define __NR_fchownat 289
+#define __NR_futimesat 290
+#define __NR_fstatat64 291
+#define __NR_unlinkat 292
+#define __NR_renameat 293
+#define __NR_linkat 294
+#define __NR_symlinkat 295
+#define __NR_readlinkat 296
+#define __NR_fchmodat 297
+#define __NR_faccessat 298
+#define __NR_get_robust_list 299
+#define __NR_set_robust_list 300
+#define __NR_move_pages 301
+#define __NR_getcpu 302
+
+#define __NR_utimensat 304
+#define __NR_signalfd 305
+#define __NR_timerfd 306
+#define __NR_eventfd 307
+#define __NR_sync_file_range2 308
+#define __NR_fallocate 309
+#define __NR_subpage_prot 310
+#define __NR_timerfd_settime 311
+#define __NR_timerfd_gettime 312
+#define __NR_signalfd4 313
+#define __NR_eventfd2 314
+#define __NR_epoll_create1 315
+#define __NR_dup3 316
+#define __NR_pipe2 317
+#define __NR_inotify_init1 318
+
+/* System callbacks from the SPU. See kernel source file
+ arch/powerpc/include/asm/spu.h. */
+struct spu_syscall_block
+{
+ unsigned long long nr_ret; /* System call nr and return value. */
+ unsigned long long parm[6]; /* System call arguments. */
+};
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Issues a Linux system call. */
+int __linux_syscall (struct spu_syscall_block *s);
+
+/* Linux system calls. */
+pid_t linux_getpid(void);
+pid_t linux_gettid(void);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
linux_syscalls.h
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: uio.h
===================================================================
--- uio.h (nonexistent)
+++ uio.h (revision 345)
@@ -0,0 +1,26 @@
+#ifndef _SYS_UIO_H
+#define _SYS_UIO_H
+
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Per POSIX
+ */
+
+struct iovec {
+ void *iov_base;
+ size_t iov_len;
+};
+
+ssize_t readv(int, const struct iovec *, int);
+ssize_t writev(int, const struct iovec *, int);
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif
uio.h
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: fenv.h
===================================================================
--- fenv.h (nonexistent)
+++ fenv.h (revision 345)
@@ -0,0 +1,144 @@
+/*
+ (C) Copyright 2006, 2007
+ International Business Machines Corporation,
+ Sony Computer Entertainment, Incorporated,
+ Toshiba Corporation,
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the names of the copyright holders nor the names of their
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef _SYS_FENV_H
+#define _SYS_FENV_H
+
+/*
+ * The exception macros are such that the functions to pack/unpack them
+ * will map a 32 bit fenv_t from/to the 128 bit fpscr.
+ *
+ * Suffixes:
+ * _SNGL: single precision
+ * _DBL: double precision
+ * _N: element number, no suffix for element 0.
+ */
+
+#define FE_OVERFLOW_SNGL 0x08000000
+#define FE_UNDERFLOW_SNGL 0x04000000
+#define FE_DIFF_SNGL 0x02000000
+#define FE_DIVBYZERO_SNGL 0x00000040
+
+#define FE_OVERFLOW_SNGL_1 0x00040000
+#define FE_UNDERFLOW_SNGL_1 0x00020000
+#define FE_DIFF_SNGL_1 0x00010000
+#define FE_DIVBYZERO_SNGL_1 0x00000020
+
+#define FE_OVERFLOW_SNGL_2 0x00000200
+#define FE_UNDERFLOW_SNGL_2 0x00000100
+#define FE_DIFF_SNGL_2 0x00000080
+#define FE_DIVBYZERO_SNGL_2 0x00000010
+
+#define FE_OVERFLOW_SNGL_3 0x00000004
+#define FE_UNDERFLOW_SNGL_3 0x00000002
+#define FE_DIFF_SNGL_3 0x00000001
+#define FE_DIVBYZERO_SNGL_3 0x00000008
+
+#define FE_ALL_EXCEPT_SNGL (FE_OVERFLOW_SNGL | FE_UNDERFLOW_SNGL \
+ | FE_DIFF_SNGL | FE_DIVBYZERO_SNGL)
+#define FE_ALL_EXCEPT_SNGL_1 (FE_OVERFLOW_SNGL_1 | FE_UNDERFLOW_SNGL_1 \
+ | FE_DIFF_SNGL_1 | FE_DIVBYZERO_SNGL_1)
+#define FE_ALL_EXCEPT_SNGL_2 (FE_OVERFLOW_SNGL_2 | FE_UNDERFLOW_SNGL_2 \
+ | FE_DIFF_SNGL_2 | FE_DIVBYZERO_SNGL_2)
+#define FE_ALL_EXCEPT_SNGL_3 (FE_OVERFLOW_SNGL_3 | FE_UNDERFLOW_SNGL_3 \
+ | FE_DIFF_SNGL_3 | FE_DIVBYZERO_SNGL_3)
+
+#define FE_OVERFLOW_DBL 0x01000000
+#define FE_UNDERFLOW_DBL 0x00800000
+#define FE_INEXACT_DBL 0x00400000
+#define FE_INVALID_DBL 0x00200000
+#define FE_NC_NAN_DBL 0x00100000
+#define FE_NC_DENORM_DBL 0x00080000
+
+#define FE_OVERFLOW_DBL_1 0x00008000
+#define FE_UNDERFLOW_DBL_1 0x00004000
+#define FE_INEXACT_DBL_1 0x00002000
+#define FE_INVALID_DBL_1 0x00001000
+#define FE_NC_NAN_DBL_1 0x00000800
+#define FE_NC_DENORM_DBL_1 0x00000400
+
+#define FE_ALL_EXCEPT_DBL (FE_OVERFLOW_DBL | FE_UNDERFLOW_DBL | \
+ FE_INEXACT_DBL | FE_INVALID_DBL | \
+ FE_NC_NAN_DBL | FE_NC_DENORM_DBL)
+#define FE_ALL_EXCEPT_DBL_1 (FE_OVERFLOW_DBL_1 | FE_UNDERFLOW_DBL_1 | \
+ FE_INEXACT_DBL_1 | FE_INVALID_DBL_1 | \
+ FE_NC_NAN_DBL_1 | FE_NC_DENORM_DBL_1)
+
+#define FE_ALL_EXCEPT (FE_ALL_EXCEPT_SNGL | FE_ALL_EXCEPT_SNGL_1 | \
+ FE_ALL_EXCEPT_SNGL_2 | FE_ALL_EXCEPT_SNGL_3 | \
+ FE_ALL_EXCEPT_DBL | FE_ALL_EXCEPT_DBL_1)
+
+/*
+ * Warning: some of these are single and some double precision only,
+ * because of the hardware implementation.
+ */
+#define FE_DIVBYZERO (FE_DIVBYZERO_SNGL | FE_DIVBYZERO_SNGL_1 | \
+ FE_DIVBYZERO_SNGL_2 | FE_DIVBYZERO_SNGL_3)
+#define FE_INEXACT (FE_INEXACT_DBL | FE_INEXACT_DBL_1)
+#define FE_INVALID (FE_INVALID_DBL | FE_INVALID_DBL_1)
+#define FE_NC_NAN (FE_NC_NAN_DBL | FE_NC_NAN_DBL_1)
+#define FE_NC_DENORM (FE_NC_DENORM_DBL | FE_NC_DENORM_DBL_1)
+
+/*
+ * __FE_ROUND_ELE_n values are set so that they can easily be used as a
+ * mask when setting the fpscr. These tell us whether we are setting the
+ * round mode for a specific element (double precision floating point
+ * only, so there are only two elements).
+ */
+#define __FE_ROUND_ELE_0 0xc00
+#define __FE_ROUND_ELE_1 0x300
+
+/*
+ * The following map directly to round values in the fpscr.
+ */
+#define __FE_SPU_TONEAREST 0
+#define __FE_SPU_TOWARDZERO 1
+#define __FE_SPU_UPWARD 2
+#define __FE_SPU_DOWNWARD 3
+
+#define FE_TONEAREST (__FE_ROUND_ELE_0 | (__FE_SPU_TONEAREST << 2))
+#define FE_TOWARDZERO (__FE_ROUND_ELE_0 | (__FE_SPU_TOWARDZERO << 2))
+#define FE_UPWARD (__FE_ROUND_ELE_0 | (__FE_SPU_UPWARD << 2))
+#define FE_DOWNWARD (__FE_ROUND_ELE_0 | (__FE_SPU_DOWNWARD << 2))
+
+#define FE_TONEAREST_1 (__FE_ROUND_ELE_1 | __FE_SPU_TONEAREST)
+#define FE_TOWARDZERO_1 (__FE_ROUND_ELE_1 | __FE_SPU_TOWARDZERO)
+#define FE_UPWARD_1 (__FE_ROUND_ELE_1 | __FE_SPU_UPWARD)
+#define FE_DOWNWARD_1 (__FE_ROUND_ELE_1 | __FE_SPU_DOWNWARD)
+
+typedef unsigned int fexcept_t;
+typedef unsigned int fenv_t;
+
+extern const fenv_t __fe_dfl_env;
+#define FE_DFL_ENV (&__fe_dfl_env)
+
+#endif /* fenv.h */
fenv.h
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: utime.h
===================================================================
--- utime.h (nonexistent)
+++ utime.h (revision 345)
@@ -0,0 +1,23 @@
+#ifndef _SYS_UTIME_H
+#define _SYS_UTIME_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Per POSIX
+ */
+struct utimbuf
+{
+ time_t actime;
+ time_t modtime;
+};
+
+int utime(const char *, const struct utimbuf *);
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif
utime.h
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: dirent.h
===================================================================
--- dirent.h (nonexistent)
+++ dirent.h (revision 345)
@@ -0,0 +1,63 @@
+/*
+ Copyright 2007
+ International Business Machines Corporation,
+ Sony Computer Entertainment, Incorporated,
+ Toshiba Corporation,
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the names of the copyright holders nor the names of their
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+ OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef _SYS_DIRENT_H
+#define _SYS_DIRENT_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define MAXNAMLEN 255
+
+struct dirent {
+ ino_t d_ino;
+ char d_name[MAXNAMLEN + 1];
+};
+
+typedef struct {
+ unsigned long long ppc_dir;
+ /*
+ * Allow one readdir for each opendir, and store the data here.
+ */
+ struct dirent dirent;
+} DIR;
+
+DIR *opendir(const char *);
+int closedir(DIR *);
+struct dirent *readdir (DIR *);
+void rewinddir(DIR *);
+void seekdir(DIR *dir, off_t offset);
+off_t telldir(DIR *dir);
+#ifdef __cplusplus
+}
+#endif
+#endif
dirent.h
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: errno.h
===================================================================
--- errno.h (nonexistent)
+++ errno.h (revision 345)
@@ -0,0 +1,179 @@
+/*
+ * The SPU must have these values match those on the PPU linux side, so
+ * the assisted calls (system or library ones) that set errno will use the
+ * same values.
+ *
+ * This file is based on the CRIS file, with these modifications:
+ *
+ * EDEADLOCK - instead of EDEADLK (35) use 58 (for some reason ppc only does
+ * this, it is not used by ppc kernel code nor glibc code).
+ *
+ * ECANCELED value of 125 added, in linux and posix value of 125, in generic
+ * newlib errno.h, value of 140
+ *
+ * ENOTSUP as EOPNOTSUPP (95) added, in linux and posix value 95, in
+ * generic newlib errno.h, value of 134
+ */
+
+/* This file is to be kept in sync with newlib/libc/include/sys/errno.h
+ on which it is based, except values used or returned by syscalls must
+ be those of the Linux ppc. */
+
+#ifndef _SYS_ERRNO_H_
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define _SYS_ERRNO_H_
+
+#include
+
+extern struct _reent _impure_data;
+#define errno (_impure_data._errno)
+
+/* Please don't use these variables directly.
+ Use strerror instead. */
+extern _CONST char * _CONST _sys_errlist[];
+extern int _sys_nerr;
+
+#define __errno_r(ptr) ((ptr)->_errno)
+
+/* Adjusted to the linux asm/errno.h */
+#define EPERM 1 /* Operation not permitted */
+#define ENOENT 2 /* No such file or directory */
+#define ESRCH 3 /* No such process */
+#define EINTR 4 /* Interrupted system call */
+#define EIO 5 /* I/O error */
+#define ENXIO 6 /* No such device or address */
+#define E2BIG 7 /* Arg list too long */
+#define ENOEXEC 8 /* Exec format error */
+#define EBADF 9 /* Bad file number */
+#define ECHILD 10 /* No child processes */
+#define EAGAIN 11 /* Try again */
+#define ENOMEM 12 /* Out of memory */
+#define EACCES 13 /* Permission denied */
+#define EFAULT 14 /* Bad address */
+#define ENOTBLK 15 /* Block device required */
+#define EBUSY 16 /* Device or resource busy */
+#define EEXIST 17 /* File exists */
+#define EXDEV 18 /* Cross-device link */
+#define ENODEV 19 /* No such device */
+#define ENOTDIR 20 /* Not a directory */
+#define EISDIR 21 /* Is a directory */
+#define EINVAL 22 /* Invalid argument */
+#define ENFILE 23 /* File table overflow */
+#define EMFILE 24 /* Too many open files */
+#define ENOTTY 25 /* Not a typewriter */
+#define ETXTBSY 26 /* Text file busy */
+#define EFBIG 27 /* File too large */
+#define ENOSPC 28 /* No space left on device */
+#define ESPIPE 29 /* Illegal seek */
+#define EROFS 30 /* Read-only file system */
+#define EMLINK 31 /* Too many links */
+#define EPIPE 32 /* Broken pipe */
+#define EDOM 33 /* Math argument out of domain of func */
+#define ERANGE 34 /* Math result not representable */
+#define EDEADLK 35 /* Resource deadlock would occur */
+#define ENAMETOOLONG 36 /* File name too long */
+#define ENOLCK 37 /* No record locks available */
+#define ENOSYS 38 /* Function not implemented */
+#define ENOTEMPTY 39 /* Directory not empty */
+#define ELOOP 40 /* Too many symbolic links encountered */
+#define EWOULDBLOCK EAGAIN /* Operation would block */
+#define ENOMSG 42 /* No message of desired type */
+#define EIDRM 43 /* Identifier removed */
+#define ECHRNG 44 /* Channel number out of range */
+#define EL2NSYNC 45 /* Level 2 not synchronized */
+#define EL3HLT 46 /* Level 3 halted */
+#define EL3RST 47 /* Level 3 reset */
+#define ELNRNG 48 /* Link number out of range */
+#define EUNATCH 49 /* Protocol driver not attached */
+#define ENOCSI 50 /* No CSI structure available */
+#define EL2HLT 51 /* Level 2 halted */
+#define EBADE 52 /* Invalid exchange */
+#define EBADR 53 /* Invalid request descriptor */
+#define EXFULL 54 /* Exchange full */
+#define ENOANO 55 /* No anode */
+#define EBADRQC 56 /* Invalid request code */
+#define EBADSLT 57 /* Invalid slot */
+
+#define EDEADLOCK 58
+
+#define EBFONT 59 /* Bad font file format */
+/* This is only used internally in newlib; not returned by the kernel.
+ EBFONT seems the closest match for a "bad file format" error. */
+#define EFTYPE EBFONT /* Inappropriate file type or format */
+#define ENOSTR 60 /* Device not a stream */
+#define ENODATA 61 /* No data available */
+#define ETIME 62 /* Timer expired */
+#define ENOSR 63 /* Out of streams resources */
+#define ENONET 64 /* Machine is not on the network */
+#define ENOPKG 65 /* Package not installed */
+#define EREMOTE 66 /* Object is remote */
+#define ENOLINK 67 /* Link has been severed */
+#define EADV 68 /* Advertise error */
+#define ESRMNT 69 /* Srmount error */
+#define ECOMM 70 /* Communication error on send */
+#define EPROTO 71 /* Protocol error */
+#define EMULTIHOP 72 /* Multihop attempted */
+#define EDOTDOT 73 /* RFS specific error */
+#define EBADMSG 74 /* Not a data message */
+#define EOVERFLOW 75 /* Value too large for defined data type */
+#define ENOTUNIQ 76 /* Name not unique on network */
+#define EBADFD 77 /* File descriptor in bad state */
+#define EREMCHG 78 /* Remote address changed */
+#define ELIBACC 79 /* Can not access a needed shared library */
+#define ELIBBAD 80 /* Accessing a corrupted shared library */
+#define ELIBSCN 81 /* .lib section in a.out corrupted */
+#define ELIBMAX 82 /* Attempting to link in too many shared libraries */
+#define ELIBEXEC 83 /* Cannot exec a shared library directly */
+#define EILSEQ 84 /* Illegal byte sequence */
+#define ERESTART 85 /* Interrupted system call should be restarted */
+#define ESTRPIPE 86 /* Streams pipe error */
+#define EUSERS 87 /* Too many users */
+#define ENOTSOCK 88 /* Socket operation on non-socket */
+#define EDESTADDRREQ 89 /* Destination address required */
+#define EMSGSIZE 90 /* Message too long */
+#define EPROTOTYPE 91 /* Protocol wrong type for socket */
+#define ENOPROTOOPT 92 /* Protocol not available */
+#define EPROTONOSUPPORT 93 /* Protocol not supported */
+#define ESOCKTNOSUPPORT 94 /* Socket type not supported */
+#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */
+#define ENOTSUP EOPNOTSUPP
+#define EPFNOSUPPORT 96 /* Protocol family not supported */
+#define EAFNOSUPPORT 97 /* Address family not supported by protocol */
+#define EADDRINUSE 98 /* Address already in use */
+#define EADDRNOTAVAIL 99 /* Cannot assign requested address */
+#define ENETDOWN 100 /* Network is down */
+#define ENETUNREACH 101 /* Network is unreachable */
+#define ENETRESET 102 /* Network dropped connection because of reset */
+#define ECONNABORTED 103 /* Software caused connection abort */
+#define ECONNRESET 104 /* Connection reset by peer */
+#define ENOBUFS 105 /* No buffer space available */
+#define EISCONN 106 /* Transport endpoint is already connected */
+#define ENOTCONN 107 /* Transport endpoint is not connected */
+#define ESHUTDOWN 108 /* Cannot send after transport endpoint shutdown */
+#define ETOOMANYREFS 109 /* Too many references: cannot splice */
+#define ETIMEDOUT 110 /* Connection timed out */
+#define ECONNREFUSED 111 /* Connection refused */
+#define EHOSTDOWN 112 /* Host is down */
+#define EHOSTUNREACH 113 /* No route to host */
+#define EALREADY 114 /* Operation already in progress */
+#define EINPROGRESS 115 /* Operation now in progress */
+#define ESTALE 116 /* Stale NFS file handle */
+#define EUCLEAN 117 /* Structure needs cleaning */
+#define ENOTNAM 118 /* Not a XENIX named type file */
+#define ENAVAIL 119 /* No XENIX semaphores available */
+#define EISNAM 120 /* Is a named type file */
+#define EREMOTEIO 121 /* Remote I/O error */
+#define EDQUOT 122 /* Quota exceeded */
+
+#define ENOMEDIUM 123 /* No medium found */
+#define EMEDIUMTYPE 124 /* Wrong medium type */
+#define ECANCELED 125 /* Operation Canceled */
+
+#define __ELASTERROR 2000 /* Users can add values starting here */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* _SYS_ERRNO_H */
errno.h
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sched.h
===================================================================
--- sched.h (nonexistent)
+++ sched.h (revision 345)
@@ -0,0 +1,12 @@
+#ifndef _SYS_SCHED_H
+#define _SYS_SCHED_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int sched_yield(void);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
sched.h
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: mman.h
===================================================================
--- mman.h (nonexistent)
+++ mman.h (revision 345)
@@ -0,0 +1,85 @@
+/*
+(C) Copyright IBM Corp. 2007
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+*/
+
+#ifndef _MMAN_H_
+#define _MMAN_H_
+
+#include
+
+/*
+ * Prots to 'mmap'.
+ */
+#define PROT_READ 0x1
+#define PROT_WRITE 0x2
+#define PROT_EXEC 0x4
+#define PROT_NONE 0x0
+/*
+ * Flags to 'mmap'.
+ */
+#define MAP_SHARED 0x001
+#define MAP_PRIVATE 0x002
+#define MAP_FIXED 0x010
+#define MAP_FILE 0x000
+#define MAP_ANONYMOUS 0x020
+#define MAP_ANON MAP_ANONYMOUS
+#define MAP_GROWSDOWN 0x0100
+#define MAP_DENYWRITE 0x0800
+#define MAP_EXECUTABLE 0x1000
+#define MAP_LOCKED 0x0080
+#define MAP_NORESERVE 0x0040
+/*
+ * Failed flag from 'mmap'.
+ */
+#define MAP_FAILED_EADDR ((unsigned long long) (-1LL))
+/*
+ * Flags to 'mremap'.
+ */
+#define MREMAP_MAYMOVE 1
+/*
+ * Flags to 'msync'.
+ */
+#define MS_ASYNC 1
+#define MS_SYNC 4
+#define MS_INVALIDATE 2
+
+
+extern int shm_open(const char *name, int oflag, mode_t mode);
+extern int shm_unlink(const char * name);
+
+unsigned long long mmap_eaddr(unsigned long long start, size_t length, int
+ prot, int flags, int fd, off_t offset);
+unsigned long long mremap_eaddr(unsigned long long old_addr, size_t
+ old_size, size_t new_size, int flags);
+unsigned long long msync_eaddr(unsigned long long start, size_t length,
+ int flags);
+unsigned long long munmap_eaddr(unsigned long long start, size_t length);
+
+#endif /* _MMAN_H_ */
mman.h
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property