diff --git a/test/common_amd64/functions/getcwd.c b/test/common_amd64/functions/getcwd.c index d2cf1a3..fd5320c 100644 --- a/test/common_amd64/functions/getcwd.c +++ b/test/common_amd64/functions/getcwd.c @@ -19,7 +19,7 @@ //CONSTANT PATH_MAX 4096 #define PATH_MAX 4096 -char* getcwd(char* buf, size_t size) +int _getcwd(char* buf, size_t size) { asm("LOAD_EFFECTIVE_ADDRESS_rdi %16" "LOAD_INTEGER_rdi" @@ -29,6 +29,13 @@ char* getcwd(char* buf, size_t size) "SYSCALL"); } +char* getcwd(char* buf, size_t size) +{ + int c = _getcwd(buf, size); + if(0 == c) return NULL; + return buf; +} + char* getwd(char* buf) { return getcwd(buf, PATH_MAX); diff --git a/test/common_armv7l/functions/getcwd.c b/test/common_armv7l/functions/getcwd.c index 672d93e..ef079a0 100644 --- a/test/common_armv7l/functions/getcwd.c +++ b/test/common_armv7l/functions/getcwd.c @@ -19,7 +19,7 @@ //CONSTANT PATH_MAX 4096 #define PATH_MAX 4096 -char* getcwd(char* buf, size_t size) +int _getcwd(char* buf, size_t size) { asm("!4 R0 SUB R12 ARITH_ALWAYS" "!0 R0 LOAD32 R0 MEMORY" @@ -29,6 +29,13 @@ char* getcwd(char* buf, size_t size) "SYSCALL_ALWAYS"); } +char* getcwd(char* buf, size_t size) +{ + int c = _getcwd(buf, size); + if(0 == c) return NULL; + return buf; +} + char* getwd(char* buf) { return getcwd(buf, PATH_MAX); diff --git a/test/common_knight/functions/getcwd.c b/test/common_knight/functions/getcwd.c index 7f1b596..c5244bd 100644 --- a/test/common_knight/functions/getcwd.c +++ b/test/common_knight/functions/getcwd.c @@ -19,13 +19,20 @@ //CONSTANT PATH_MAX 4096 #define PATH_MAX 4096 -char* getcwd(char* buf, size_t size) +int _getcwd(char* buf, size_t size) { asm("LOAD R0 R14 0" "LOAD R1 R14 4" "GETCWD"); } +char* getcwd(char* buf, size_t size) +{ + int c = _getcwd(buf, size); + if(0 == c) return NULL; + return buf; +} + char* getwd(char* buf) { return getcwd(buf, PATH_MAX); diff --git a/test/common_x86/functions/getcwd.c b/test/common_x86/functions/getcwd.c index 4c30795..95ae9b1 100644 --- a/test/common_x86/functions/getcwd.c +++ b/test/common_x86/functions/getcwd.c @@ -19,7 +19,7 @@ //CONSTANT PATH_MAX 4096 #define PATH_MAX 4096 -char* getcwd(char* buf, size_t size) +int _getcwd(char* buf, size_t size) { asm("LOAD_EFFECTIVE_ADDRESS_ebx %8" "LOAD_INTEGER_ebx" @@ -29,6 +29,13 @@ char* getcwd(char* buf, size_t size) "INT_80"); } +char* getcwd(char* buf, size_t size) +{ + int c = _getcwd(buf, size); + if(0 == c) return NULL; + return buf; +} + char* getwd(char* buf) { return getcwd(buf, PATH_MAX);