klamer@mi.eltn.utwente.nl (Klamer Schutte) (04/08/91)
Here come two files, read.c and write.c to allow anyone who uses a compiler with longer ints than the kernel compiler has to issue read(2) and write(2) calls. define INTIS32 if you want this. If you don't want this, you get the minix-st 1.5.10#3 version. Klamer echo x - read.c sed '/^X/s///' > read.c << '/' X/* X * read.c X * X * original: minix-st 1.5.10 #3 X * changed for long ints KS 2/4/91 X */ X X#include <lib.h> X X#define IO_BLK 0x4000 /* smaller than 32k */ X XPUBLIC int read(fd, buffer, nbytes) Xint fd; Xchar *buffer; Xunsigned nbytes; X{ X#ifdef INTIS32 X int ret_val, call_val; X X for(ret_val = 0;nbytes > IO_BLK;nbytes -= IO_BLK) X { X call_val = callm1(FS, READ, fd, IO_BLK, 0, buffer, NIL_PTR, NIL_PTR); X ret_val += call_val; X if (call_val != IO_BLK) /* whole request cannot be satisfied */ X if (call_val >= 0) /* is there an error? */ X return ret_val; X else X return call_val; X buffer += call_val; X } X X return(ret_val + callm1(FS, READ, fd, nbytes, 0, buffer, NIL_PTR, NIL_PTR)); X#else X return(callm1(FS, READ, fd, nbytes, 0, buffer, NIL_PTR, NIL_PTR)); X#endif X} / echo x - read.uue sed '/^X/s///' > read.uue << '/' Xtable X !"#$%&'()*+,-./0123456789:;<=>? X@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ Xbegin 644 read.c.Z XM'YV-+U0H *$B@9PR8<BX&#-0(,$$;^2D.9/&31@V.D"TJ9@&3XLY=$#$<%'#z XM10P8($;,:)A@#)HP;LZ4(0/"3$00;-[$!%&1SAP02Z: D/&"QHL<,1J^4*!@y XM1,4Q;.J0*0."!YLT8ER@\<%TQ%0S%<LD2/+DBQ F2Q+ P$,#AML$"0*"F-/Fx XM(ILR<D#0>>D&Q P9:P@N50"ERMDD0WBZ"7DP(0HS9%B $%/'C!F\DMV(R4.Gw XMS)P4"GK6)+-#@<LP>550MHRW=!TW<R:ZF0E",V?/I?<T30.YC!D029Q023+Ev XM[T#%= R6H?/%SD7)8^PVOUCZN$TY* XR=\X&1 \0,';8[OS3!_"R9Y>(WTP>u XM1(OO9,VB!0T"A.Z6TKE[!Q&=#9LV,:!@Q!2225%$$$1(!IED\:4G&0R2K7:9t XM')(YD0037T!!A1057ICAABF4IMQV%X&PPG?]L3$=&R+R!@(**:X(0@CPH3<?s XM7'+=@<8;=X%P4!QU>!92=&ZX\49(8E U1QATI#$'6+2IL!1<+L*87XD^? =#r XM"G&IP--/>^%%%4P@X"5'1#\(I@!<(]8A1U_:K2AB F6P,4<9:\*EG9M]Q<B=q XMB!+B92**5[)X7!]K'K?GF]DM)^,*_-D%H( $@F @@@I&5AM[GCT88643=HBAp XMAAR"8.&H((;85)UW*KH<GU;Z-^F !1Z8X&B9<3J'IY.!BIFI'I(JZH=2I*#Jo X)"&6X009O"B *n X m Xend / echo x - write.c sed '/^X/s///' > write.c << '/' X/* X * write.c X * X * original: minix-st 1.5.10 #3 X * changed for long ints KS 2/4/91 X */ X X#include <lib.h> X X#define IO_BLK 0x4000 /* smaller than 32k */ X XPUBLIC int write(fd, buffer, nbytes) Xint fd; Xchar *buffer; Xunsigned nbytes; X{ X#ifdef INTIS32 X int ret_val, call_val; X X for(ret_val = 0;nbytes > IO_BLK;nbytes -= IO_BLK) X { X call_val = callm1(FS, WRITE, fd, IO_BLK, 0, buffer, NIL_PTR, NIL_PTR); X ret_val += call_val; X if (call_val != IO_BLK) /* whole request cannot be satisfied */ X if (call_val >= 0) /* is there an error? */ X return ret_val; X else X return call_val; X buffer += call_val; X } X X return(ret_val + callm1(FS, WRITE, fd, nbytes, 0, buffer, NIL_PTR, NIL_PTR)); X#else X return(callm1(FS, WRITE, fd, nbytes, 0, buffer, NIL_PTR, NIL_PTR)); X#endif X} / echo x - write.uue sed '/^X/s///' > write.uue << '/' Xtable X !"#$%&'()*+,-./0123456789:;<=>? X@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ Xbegin 644 write.c.Z XM'YV-+U0H *$BP1TY:>B4<3%FH$"""=X@/)/&31@V.D"TJ9@&3XLY=$#$<%'#z XM10P8($;,<)A@#)HP;LZ4(0/"C$00;-[$!%&1SAP02Z: D/&"QHL<,1R^4*!@y XM1,4Q;.J0*0."!YLT8ER@\<%TQ%0S%<LD2/+DBQ F2Q+ P$,#AML$"0*"F-/Fx XM(ILR<D#0>>D&Q P9:P@N50"ERMDD0WBZ"7DP81D49LBP "&FCADS>">[$9-'w XMX9P4"GK6)+-#@<LP>554OHRW=!TW<]*<<3,3Q.;.9>:4WM,T3>0R9D D<4(Ev XMR92_ Q7322"G#)TO=BY.'F,7^L72R6W*0='\>70V('J @+'CMF<0/H27/;NDu XM/.?S+<23-8L6- @0O%M6_QX>!'4V;+01 PI&3#'9%5(D0441DT4VV7SL30;#t XM9*MA)L=D3B3!Q!=04"$%AAIRZ&$*I3'GG'7@K2#>?VR@6*)O(*# (HH@A"#?s XM>O7!)=<=:+QQ%PC-Q5%';B%1YX8;;X0D!E5SA$%'&G. 59L*2\$%HXS[782>r XM>#"D$)<*//VT%UY4P00"7G)(](-@"L!E(AUUR-%7=RZVF4 9;,Q1AIUOQMG7q XMC-^56"%>(*CH7Y9LE'9?'VTFUYV?W)W(WPJ' B@@@0:"@*""#(ZFV7NY24BAp XM91:"N&&''X*0X:DCDM@4GGHZZARD+%Y:X($)+MB@9+:!.H>HE)&:F:HAHFJJo X.B%*DX.H(9;A!AF\*, H4n X m Xend / -- Klamer Schutte Faculty of electrical engineering -- University of Twente, The Netherlands klamer@mi.eltn.utwente.nl {backbone}!mcsun!mi.eltn.utwente.nl!klamer