diff options
Diffstat (limited to 'libgloss/spu/jsre.h')
-rw-r--r-- | libgloss/spu/jsre.h | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/libgloss/spu/jsre.h b/libgloss/spu/jsre.h new file mode 100644 index 000000000..ab7ba17e2 --- /dev/null +++ b/libgloss/spu/jsre.h @@ -0,0 +1,148 @@ +/* +(C) Copyright IBM Corp. 2005, 2006 + +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: Andreas Neukoetter (ti95neuk@de.ibm.com) +*/ + +/* this file provides the mappings for the JSRE defined interface for PE assisted libary calls */ + +#ifndef __JSRE_H +#define __JSRE_H + +#define JSRE_SEEK_SET 0 +#define JSRE_SEEK_CUR 1 +#define JSRE_SEEK_END 2 + +#define JSRE_O_RDONLY 0 +#define JSRE_O_WRONLY 1 +#define JSRE_O_RDWR 2 + +#define JSRE_O_CREAT 64 +#define JSRE_O_EXCL 128 +#define JSRE_O_NOCTTY 256 +#define JSRE_O_TRUNC 512 +#define JSRE_O_APPEND 1024 +#define JSRE_O_NDELAY 2048 +#define JSRE_O_SYNC 4096 +#define JSRE_O_ASYNC 8192 + +#define JSRE_CLOSE 2 +#define JSRE_FSTAT 4 +#define JSRE_LSEEK 9 +#define JSRE_OPEN 15 +#define JSRE_READ 16 +#define JSRE_UNLINK 24 +#define JSRE_WRITE 27 + +typedef struct +{ + unsigned int pathname; + unsigned int pad0[ 3 ]; + unsigned int flags; + unsigned int pad1[ 3 ]; + unsigned int mode; + unsigned int pad2[ 3 ]; +} syscall_open_t; + +typedef struct +{ + unsigned int file; + unsigned int pad0[ 3 ]; + unsigned int ptr; + unsigned int pad1[ 3 ]; + unsigned int len; + unsigned int pad2[ 3 ]; +} syscall_write_t; + +typedef struct +{ + unsigned int file; + unsigned int pad0[ 3 ]; + unsigned int ptr; + unsigned int pad1[ 3 ]; + unsigned int len; + unsigned int pad2[ 3 ]; +} syscall_read_t; + +typedef struct +{ + unsigned int file; + unsigned int pad0[ 3 ]; +} syscall_close_t; + +typedef struct +{ + unsigned int file; + unsigned int pad0[ 3 ]; + unsigned int offset; + unsigned int pad1[ 3 ]; + unsigned int whence; + unsigned int pad2[ 3 ]; +} syscall_lseek_t; + +typedef struct +{ + unsigned int pathname; + unsigned int pad0[ 3 ]; +} syscall_unlink_t; + +typedef struct +{ + unsigned int file; + unsigned int pad0[ 3 ]; + unsigned int ptr; + unsigned int pad1[ 3 ]; +} syscall_fstat_t; + + +typedef struct +{ + unsigned int rc; + unsigned int pad0[ 2 ]; + unsigned int err; +} syscall_out_t; + +typedef struct { + unsigned int dev; + unsigned int ino; + unsigned int mode; + unsigned int nlink; + unsigned int uid; + unsigned int gid; + unsigned int rdev; + unsigned int size; + unsigned int blksize; + unsigned int blocks; + unsigned int atime; + unsigned int mtime; + unsigned int ctime; +} jsre_stat_t; + + +#endif |