X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=AcessNative%2Fld-acess_src%2Fsyscalls.c;h=965cc4aedd0edac99aacb0112ac8ef3b51c1c09b;hb=63895b4261593e7891a28db441a54615d0374c8b;hp=98229728d9058cc3fbf90b738bf026912946ab5e;hpb=feb0895318d823867b858ec841589ca3ab81f510;p=tpg%2Facess2.git diff --git a/AcessNative/ld-acess_src/syscalls.c b/AcessNative/ld-acess_src/syscalls.c index 98229728..965cc4ae 100644 --- a/AcessNative/ld-acess_src/syscalls.c +++ b/AcessNative/ld-acess_src/syscalls.c @@ -290,18 +290,40 @@ uint64_t _Syscall(int SyscallID, const char *ArgTypes, ...) return retValue; } +int native_int_getfd(void) +{ + for(int ret = 0; ret < MAX_FPS; ret ++ ) + if( gaSyscall_LocalFPs[ret] == NULL ) + return ret; + return -1; +} int native_open(const char *Path, int Flags) { - int ret; - for(ret = 0; ret < MAX_FPS && gaSyscall_LocalFPs[ret]; ret ++ ) ; - if(ret == MAX_FPS) return -1; + int ret = native_int_getfd(); + if(ret == -1) return -1; // TODO: Handle directories - gaSyscall_LocalFPs[ret] = fopen(&Path[4], "r+"); + gaSyscall_LocalFPs[ret] = fopen(Path, "r+"); if(!gaSyscall_LocalFPs[ret]) return -1; return ret; } +int native_shm(const char *Tag, int Flags) +{ + // int ret = native_int_getfd(); + //if(ret == -1) return -1; + //if( strcmp(Tag, "anon") == 0 ) + // path = "/AcessNative/anon/RAND"; + // FD = shm_open(path, O_RDWD); + //shm_unlink(path); + //else + // path = "/Acessnative/named/"; + // int FD = shm_open(path, O_RDWD); + //shm_unlink(path); + //gaSyscall_LocalFPs[ret] = + return -1; +} + void native_close(int FD) { fclose( gaSyscall_LocalFPs[FD] );