commit - fc9fc9c83154ff0fa5a56854ee1f023c78f66fd8
commit + cab935a0ba34797d8b75fe1cfb7624a33d25e671
blob - 7611dde14457bcd9631aea8456d76252e595b85b
blob + aa23d30645619afa3312e1e604b363e88467ec85
--- include/libc.h
+++ include/libc.h
extern long write(int, void*, long);
extern long writev(int, IOchunk*, int);
*/
+extern long p9write(int, void*, long);
/* extern int wstat(char*, uchar*, int); give up */
extern ulong rendezvous(ulong, ulong);
#define open p9open
#define pipe p9pipe
#define waitfor p9waitfor
+#define write p9write
#endif
extern Dir* dirstat(char*);
blob - ca615435012dae92e388b6597dfa0f7afbdf3385
blob + 782dd274169a6e375b368e9cee31b2c77929cef6
--- src/lib9/mkfile
+++ src/lib9/mkfile
unsharp.$O\
wait.$O\
waitpid.$O\
+ write.$O\
OFILES=\
$LIB9OFILES\
blob - /dev/null
blob + aa32db7f14232733d4b893f4ac4489dc7b048721 (mode 644)
--- /dev/null
+++ src/lib9/write.c
+#include <u.h>
+#define NOPLAN9DEFINES
+#include <libc.h>
+
+long
+p9write(int f, void *av, long n)
+{
+ char *a;
+ long m, t;
+
+ a = av;
+ t = 0;
+ while(t < n){
+ m = write(f, a+t, n-t);
+ if(m <= 0){
+ if(t == 0)
+ return m;
+ break;
+ }
+ t += m;
+ }
+ return t;
+}