2006-08-16 Joel Schopp <jschopp@austin.ibm.com>

* spu/jsre.h(JSRE_STAT): New define.
        (syscall_stat_t): New type.
        * spu/syscalls.c(stat): New syscall.
This commit is contained in:
Jeff Johnston 2006-08-16 21:45:53 +00:00
parent 734e841435
commit 1641d724b8
3 changed files with 57 additions and 12 deletions

View File

@ -1,17 +1,23 @@
2006-08-16 Joel Schopp <jschopp@austin.ibm.com>
* configure.in: Add spu support.
* configure: Regenerated.
* spu/Makefile.in: New file.
* spu/aclocal.m4: Ditto.
* spu/configure: Ditto.
* spu/configure.in: Ditto.
* spu/crt0.c: Ditto.
* spu/exit.c: Ditto.
* spu/init.c: Ditto.
* spu/jsre.h: Ditto.
* spu/sbrk.c: Ditto.
* spu/syscalls.c: Ditto.
* spu/jsre.h(JSRE_STAT): New define.
(syscall_stat_t): New type.
* spu/syscalls.c(stat): New syscall.
2006-08-16 Joel Schopp <jschopp@austin.ibm.com>
* configure.in: Add spu support.
* configure: Regenerated.
* spu/Makefile.in: New file.
* spu/aclocal.m4: Ditto.
* spu/configure: Ditto.
* spu/configure.in: Ditto.
* spu/crt0.c: Ditto.
* spu/exit.c: Ditto.
* spu/init.c: Ditto.
* spu/jsre.h: Ditto.
* spu/sbrk.c: Ditto.
* spu/syscalls.c: Ditto.
2006-07-05 Shaun Jackman <sjackman@gmail.com>

View File

@ -57,6 +57,7 @@ Author: Andreas Neukoetter (ti95neuk@de.ibm.com)
#define JSRE_LSEEK 9
#define JSRE_OPEN 15
#define JSRE_READ 16
#define JSRE_STAT 23
#define JSRE_UNLINK 24
#define JSRE_WRITE 27
@ -120,6 +121,13 @@ typedef struct
unsigned int pad1[ 3 ];
} syscall_fstat_t;
typedef struct
{
unsigned int pathname;
unsigned int pad0[ 3 ];
unsigned int ptr;
unsigned int pad1[ 3 ];
} syscall_stat_t;
typedef struct
{

View File

@ -242,6 +242,37 @@ fstat (int file, struct stat *pstat)
return( psys_out->rc );
}
int
stat (const char *pathname, struct stat *pstat)
{
syscall_stat_t sys;
syscall_out_t *psys_out = ( syscall_out_t* )&sys;
jsre_stat_t pjstat;
sys.pathname = pathname;
sys.ptr = ( unsigned int )&pjstat;
send_to_ppe_0x2101 (JSRE_STAT, &sys);
pstat->st_dev = pjstat.dev;
pstat->st_ino = pjstat.ino;
pstat->st_mode = pjstat.mode;
pstat->st_nlink = pjstat.nlink;
pstat->st_uid = pjstat.uid;
pstat->st_gid = pjstat.gid;
pstat->st_rdev = pjstat.rdev;
pstat->st_size = pjstat.size;
pstat->st_blksize = pjstat.blksize;
pstat->st_blocks = pjstat.blocks;
pstat->st_atime = pjstat.atime;
pstat->st_mtime = pjstat.mtime;
pstat->st_ctime = pjstat.ctime;
errno = psys_out->err;
return( psys_out->rc );
}
int
unlink (const char *pathname)
{