[Softpear-cvs] softpear/src/loader nativelib.cc,1.56,1.57
Status: Pre-Alpha
Brought to you by:
mist
From: <wha...@us...> - 2005-01-26 10:26:12
|
Update of /cvsroot/softpear/softpear/src/loader In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25460 Modified Files: nativelib.cc Log Message: Some more libSystem functions to help run /bin/[ and /bin/chmod Index: nativelib.cc =================================================================== RCS file: /cvsroot/softpear/softpear/src/loader/nativelib.cc,v retrieving revision 1.56 retrieving revision 1.57 diff -u -d -r1.56 -r1.57 --- nativelib.cc 26 Jan 2005 01:47:13 -0000 1.56 +++ nativelib.cc 26 Jan 2005 10:25:47 -0000 1.57 @@ -927,6 +927,54 @@ unsetenv((const char *)gCPU.gpr[3]); } +/* +long strtol (const char * restrict nptr, char ** restrict endptr, int base); +*/ +void my_strtol() { + char **endptr = (char **)gCPU.gpr[4]; + *endptr = (char *)BE32_toHost ((unsigned int)*endptr); + gCPU.gpr[3] = strtol ((const char *)gCPU.gpr[3], endptr, (int)gCPU.gpr[5]); + *endptr = (char *)Host_to_BE32 ((unsigned int)*endptr); +} + +/* +int setegid (uid_t euid); +*/ +void my_setegid() { + gCPU.gpr[3] = setegid ((uid_t)gCPU.gpr[3]); +} + +/* +gid_t getegid (void); +*/ +void my_getegid() { + gCPU.gpr[3] = (unsigned int)getegid(); +} + +/* +uid_t geteuid (void); +*/ +void my_geteuid() { + gCPU.gpr[3] = (unsigned int)geteuid(); +} + +/* +void strmode (mode_t mode, char *bp); +*/ +void my_strmode() { + strmode ((mode_t)gCPU.gpr[3], (char *)gCPU.gpr[4]); +} + +/* +void warnx (const char *fmt, ...); +*/ +void my_warnx() { + /* TODO: variadic */ + warnx ((const char *)gCPU.gpr[3], gCPU.gpr[4], gCPU.gpr[5], + gCPU.gpr[6], gCPU.gpr[7], gCPU.gpr[8], gCPU.gpr[9], + gCPU.gpr[10]); +} + /* This is a list with pointers to functions provided by the local environment */ /* Please do not forget to justify the #define NATIVELIBCOUNT in nativelib.h */ NativeLibEntry NativeLibs[] = { @@ -1044,6 +1092,12 @@ {"_snprintf", (NativeLibFuncPtr) my_snprintf }, {"_getcwd", (NativeLibFuncPtr) my_getcwd }, {"_unsetenv", (NativeLibFuncPtr) my_unsetenv }, + {"_strtol", (NativeLibFuncPtr) my_strtol }, + {"_setegid", (NativeLibFuncPtr) my_setegid }, + {"_getegid", (NativeLibFuncPtr) my_getegid }, + {"_geteuid", (NativeLibFuncPtr) my_geteuid }, + {"_strmode", (NativeLibFuncPtr) my_strmode }, + {"_warnx", (NativeLibFuncPtr) my_warnx }, }; const unsigned int kNativeLibCount = sizeof (NativeLibs) / sizeof (NativeLibEntry); |