Fixed getcwd to better match
This commit is contained in:
parent
f77e0ed6cb
commit
308b201fd4
|
@ -19,7 +19,7 @@
|
||||||
//CONSTANT PATH_MAX 4096
|
//CONSTANT PATH_MAX 4096
|
||||||
#define 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"
|
asm("LOAD_EFFECTIVE_ADDRESS_rdi %16"
|
||||||
"LOAD_INTEGER_rdi"
|
"LOAD_INTEGER_rdi"
|
||||||
|
@ -29,6 +29,13 @@ char* getcwd(char* buf, size_t size)
|
||||||
"SYSCALL");
|
"SYSCALL");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char* getcwd(char* buf, size_t size)
|
||||||
|
{
|
||||||
|
int c = _getcwd(buf, size);
|
||||||
|
if(0 == c) return NULL;
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
char* getwd(char* buf)
|
char* getwd(char* buf)
|
||||||
{
|
{
|
||||||
return getcwd(buf, PATH_MAX);
|
return getcwd(buf, PATH_MAX);
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
//CONSTANT PATH_MAX 4096
|
//CONSTANT PATH_MAX 4096
|
||||||
#define 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"
|
asm("!4 R0 SUB R12 ARITH_ALWAYS"
|
||||||
"!0 R0 LOAD32 R0 MEMORY"
|
"!0 R0 LOAD32 R0 MEMORY"
|
||||||
|
@ -29,6 +29,13 @@ char* getcwd(char* buf, size_t size)
|
||||||
"SYSCALL_ALWAYS");
|
"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)
|
char* getwd(char* buf)
|
||||||
{
|
{
|
||||||
return getcwd(buf, PATH_MAX);
|
return getcwd(buf, PATH_MAX);
|
||||||
|
|
|
@ -19,13 +19,20 @@
|
||||||
//CONSTANT PATH_MAX 4096
|
//CONSTANT PATH_MAX 4096
|
||||||
#define 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"
|
asm("LOAD R0 R14 0"
|
||||||
"LOAD R1 R14 4"
|
"LOAD R1 R14 4"
|
||||||
"GETCWD");
|
"GETCWD");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char* getcwd(char* buf, size_t size)
|
||||||
|
{
|
||||||
|
int c = _getcwd(buf, size);
|
||||||
|
if(0 == c) return NULL;
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
char* getwd(char* buf)
|
char* getwd(char* buf)
|
||||||
{
|
{
|
||||||
return getcwd(buf, PATH_MAX);
|
return getcwd(buf, PATH_MAX);
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
//CONSTANT PATH_MAX 4096
|
//CONSTANT PATH_MAX 4096
|
||||||
#define 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"
|
asm("LOAD_EFFECTIVE_ADDRESS_ebx %8"
|
||||||
"LOAD_INTEGER_ebx"
|
"LOAD_INTEGER_ebx"
|
||||||
|
@ -29,6 +29,13 @@ char* getcwd(char* buf, size_t size)
|
||||||
"INT_80");
|
"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)
|
char* getwd(char* buf)
|
||||||
{
|
{
|
||||||
return getcwd(buf, PATH_MAX);
|
return getcwd(buf, PATH_MAX);
|
||||||
|
|
Loading…
Reference in New Issue