From: Rob Pike Date: Tue, 15 Jul 2008 15:27:50 +0000 (-0700) Subject: add linkage for writefile on darwin X-Git-Tag: weekly.2009-11-06~3494 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=cbdaa10f8cb0ed74a30e7133ec0ba768a4ba1ff4;p=gostls13.git add linkage for writefile on darwin SVN=127208 --- diff --git a/src/runtime/amd64_darwin.h b/src/runtime/amd64_darwin.h index 4bb906bd2d..18d1b605fc 100644 --- a/src/runtime/amd64_darwin.h +++ b/src/runtime/amd64_darwin.h @@ -41,3 +41,5 @@ struct stat { // really a stat64 uint32 st_gen; int64 st_qspare[2]; }; + +#define O_CREAT 0x0200 diff --git a/src/runtime/amd64_linux.h b/src/runtime/amd64_linux.h index 743289d9ca..9412954b4c 100644 --- a/src/runtime/amd64_linux.h +++ b/src/runtime/amd64_linux.h @@ -38,3 +38,5 @@ struct stat { struct timespec st_mtime; /* time of last modification */ struct timespec st_ctime; /* time of last status change */ }; + +#define O_CREAT 0100 diff --git a/src/runtime/sys_amd64_linux.s b/src/runtime/sys_amd64_linux.s index 37247a7399..e98ca52456 100644 --- a/src/runtime/sys_amd64_linux.s +++ b/src/runtime/sys_amd64_linux.s @@ -12,17 +12,10 @@ TEXT sys·exit(SB),1,$0-8 SYSCALL RET -TEXT sys·write(SB),1,$0-24 - MOVL 8(SP), DI - MOVQ 16(SP), SI - MOVL 24(SP), DX - MOVL $1, AX // syscall entry - SYSCALL - RET - TEXT open(SB),1,$0-16 MOVQ 8(SP), DI MOVL 16(SP), SI + MOVL 20(SP), DX MOVL $2, AX // syscall entry SYSCALL RET @@ -48,6 +41,22 @@ TEXT read(SB),1,$0-24 SYSCALL RET +TEXT write(SB),1,$0-24 + MOVL 8(SP), DI + MOVQ 16(SP), SI + MOVL 24(SP), DX + MOVL $1, AX // syscall entry + SYSCALL + RET + +TEXT sys·write(SB),1,$0-24 + MOVL 8(SP), DI + MOVQ 16(SP), SI + MOVL 24(SP), DX + MOVL $1, AX // syscall entry + SYSCALL + RET + TEXT sys·rt_sigaction(SB),1,$0-32 MOVL 8(SP), DI MOVQ 16(SP), SI diff --git a/src/runtime/sys_file.c b/src/runtime/sys_file.c index 70c7fb6521..1fc1e55e65 100644 --- a/src/runtime/sys_file.c +++ b/src/runtime/sys_file.c @@ -59,7 +59,7 @@ sys·writefile(string filein, string textin, bool okout) mcpy(namebuf, filein->str, filein->len); namebuf[filein->len] = '\0'; - fd = open(namebuf, 1|0x0200, 0644); // open for write, create if non-existant (sic) + fd = open(namebuf, 1|O_CREAT, 0644); // open for write, create if non-existant (sic) if(fd < 0) goto out;