Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!ucsd!pacbell.com!ames!uhccux!munnari.oz.au!bruce!cechew From: cechew@bruce.cs.monash.OZ.AU (Earl Chew) Newsgroups: comp.os.minix Subject: Patches for mknod Message-ID: <2735@bruce.cs.monash.OZ.AU> Date: 24 Jul 90 23:30:14 GMT Organization: Monash Uni. Computer Science, Australia Lines: 248 This patch fixes mknod and mknod4 in the Minix library. The problems are: o mknod() Requires an extra (surprising) argument for block specials which specifies the size of the device. This causes headaches when porting programs (and even for Minix specific ones!) because the extra argument is left off causing funny errors --- and even system crashes. This version of mknod() accepts the more usual three arguments and (silently) forces the size to be zero. o mknod4() This is the original four argument mknod() suitably renamed. o cpdir.c Copied block and character specials but didn't copy the size information! Compile with _MINIX and _POSIX_SOURCE. o tar.c What a mess! I hope it gets cleaned up during Posixfication. Anyway, I've hacked it to record the size information for block and character specials and to resurrect the sizes too. This behaviour appears to be Posix conformant. Compile with _MINIX and _POSIX_SOURCE. o mknod.c Changed to use mknod4(). Compile with _MINIX and _POSIX_SOURCE. o fs/open.c Check the size of the block special. Those running Bruce Evans' 386 patches will notice that test8 will now fail gracefully. I think test8 might even work if you recompile with the more robust mknod() included in this set of patches. Bruce has already fiddled unistd.h to have mknod and mknod4 prototypes. There was some discussion in comp.std.c that extras such as these should go in another header file rather than overloading existing ones. Earl ------------------------------------------------------------------------------- begin 600 mknod.shar.Z M'YV-(T*`>"$FC9L7<]`H&`&""IHT2.G#`B6$]D8+,/B)IHR;D#4<0,GS)@U"R72@9G' M8A@[!E^F66J0SAN*(,RD86,SC!LR-_/`B0I"1,*L6\N("-GPZLDR*[I@& MY<0Q;]K`X4J')X@\C9/>V:IQSF6?-F=F?#.==ILR<^:$.=-U*4`B+!B,95K#@4F.P\888,D84; M"%R(4&>!!X)HQ@FE*H"1=:YV!"D:H@E8!!YTH#A&7K25>NJ=JK(J*!4+#-ZI']5(1S[Y$JI+4;,(6G+Y>NP'SEYU MO"47;S+Q*C`9)`M*MNXR[>R]B8)G_$Y?%$L]F>"9X#P,J;A(["5@!K]AL(&" M")"Y<<)2Y"TU*O5T;!D?<"7,(4)/R"`(1AE2$,; M]H=7.G2B#Z<2Q$5RL)$7?*0#(]E$'D+Q,5+49>ZN"#[V:%$.I?3B(>.82D0B MSWC/$YG%8H"#E&%D94I3ZS:4J_H%`[]`0&W/,>"'H)/@_)00XT.=],R2`"C8+/06X8 MWV?R.`2O7.HQ->$7(#TT!G-J9%3U=5PGK2=^ZPJ/+\J#WQV:4V[--3_?QG0.\W4()"=*<];2@( M'HI2B2XTEQ;%*$NQ9@:M@8!K7@,;3!TKDHYZ\WP*9)M-^LD&"!D2!9IR20HJ MR\&UM6VSC?M*B&":`-/.$[5-".E(Q6I2G3)RI3ML*0C0JEPWPN&F7["M34H` M`B$PX0E#6,(7II`$+11!DG7<*`@2`%6IEN]\];.(:B42D:M6I`T_RLMR;#)( MZV)7N]SU[ECQMUF12(]R>$-!31][W)P2F(,]-6YM5?L"^V9WN]TM0E"!.M1M MP@6IR!3!4IOZU_&6%X_GJZH;KCJ&K#;'KEW%:UK8N=]4FM6E)X-F-%$F@VJV M%6//@S'MCC9*$+)PF:A4)4M*>$D;[>J2_+IDASLBFI;ECYDJ$#(:.DQ4*+X@ M>4@`C6%PHTY:+44T-E'A'$)"DOC)P0T1@8%$@#,J^'H&)C8)9QHPXX*7J94& M*KL8-F$&5]JA=7@#6@XI30GD,#9SE3#UC)&7`C\GTV')RW*R"ULF92H?3217 M!D&6O[+EM'0YR6`&@9C)7`8SHWE(:T:GFY<2D\?0=2D_,6TA# M%Q)TV1E>DH@3Y>TO+8EM;;M@GR(ME`8+N,_OC3.M6PW>2O M15@H"N^!/9E.`AU.L!DV9)4,33$(=D2]R9N$`6TV44&VDG>'QZ4U9D'*,[+> M>K1[QQO8AQGVO8TMQ&3WF]ET?/8:HBV1:5=;O`FX]B;GD.UM3S3=EX1NN&$^ M[@26>]OH]K9GH-MN)WY\WO7^'0?])N)`$^>P`DNF8,G/"CG83@('0[Q MEDT^&IB:A34<`=1!P$1^L/'7#5EG>%,^%(D?N\^ MG&DR-OEWW.VYAJX$Y==RN/K"5M)3>42<3K<@8($)7EO"%`1GWCQ2 MX0U7:8-7FB)FBBRE?BV6\F;A/?,M2-[FW?YV`2>:W/%B^_7G=I"RU\W!?7:8 M]=!VO9BWK3]EBWX[8Q"@'+CB!@''$`17>[O_9!Y\W!??VTZH`A.8X&[V=/Y\ M3@@]36SR'9,DWO3I3+TSRWA-&JSL!JWCL__87H]> MUW=_9QU#%3Z91GB&=R;^<7X*EW6,]QE=]WC@$WFE1WE-8'F8YP2:QWD@)@*? M%WJCIW4KAWZH5UR'-F2U!WPK)WPS!WL,I6YTH',+E8*W-WRY=Q4P2'0.\GLU MV((N<'T34CYIHWS,YWRK!'TD]'O4MX+6!T8XEWW;UWUW-%7@)WXU,2$E01-- MD60E2%:(1"[F@B[JPBY%X"8B$B<@8"P;UP*2`P)@<`<2@AA-TRUXLBI@D"@_ MX0:,`D6.,BNU0BJF6N%01HB"NY8A2\\A*\F"$0XHN$2"P"HT9, MQBQP\2S1,BVU82W8HBTB=`*]""[B`H;GDB[KTB[O@@5)LS0_HQ-B(#7P`B]0 M4`76E01#(!'RME0HX`9A\!T]T4@]$09D0`9R@#^JI3C3V#+Z^!T[5!438D3_ M&)!RL$-51G_V!QD9T08Q@`)&,`4]`6!$T!-%F)!ED`+]Z)`4`9$](9(]@0+3 MJ`(IH#(@\#5,\`500`52D`(:]5+B*(;E6(9OTAQO%HV'T89O&(<2(B[?>(>L MN(>N.(R1(B#+6"&A2(A#411'P2.*"'9(11N/F(F3"!^#Y(W,&(I>^9-HZ(EB M*97?LB=E48J!`EZIF!BKJ"BDTY1^*"D@0"GU08N;TBFX&"JT,2I1^2"#J!^. M(XQW:2NXPBQD,9@6DB?/B`(X``/),HW(6(W0(BT\4BW7DBW;DI:$N9;A,B[E M,HYC:(ZU!HKWDB]3,!0]\B,BH48Q0`,&$P-)(B0?LS!EU(OZXIH5,UE,@B1* MH@,TDS`@\TQCASQ,P@)"\CQE%`/,$W\W0SN9ME2'`1-UL!5@41'DE&)?E1;L M$02G\2AX&01?T114X!5`(09A4`=M$("[QCA9(Q.?U35?$S:C8SI:T88>V3F( MHSE+53B7\Y^?@S2'F9^V0S=V$V`#FCF"@X\-6J"Y)3I7C1*9V<85P,L,`/2R4:\IEYM4Z,W^J%;H*,\ MZJ,@`*3\(J1$*JE'FJ3>PZ0`)*9/BFI22J5JBJ>G.%$J9.ZBGA M,EEG:JHT47O^!4#]^:9Q.J?.4:>..I*HJJ=)I6%]ZJ6`2@>":E:%NI/D2(:; M")1+,9G)PH8V492'<92@^9AVB(=`P91G\HI/"8C;6IB%:)6("'93L8A;Z8BJ M!8F2R!"4&):@^"UE>8:=2"VHKAZI2QF)>S^`:84HM^ M":B`^1*":2K[ZHR&&8Q]2(QX:8R,V2L2RXP;0K&DXG8YT#J6N2N8>8V;.0?: MZ)G=.+'@2)IA^*RHB8X[4S9,PP/LZ([X&8_S6(\,&:#YN(_.X8\G*9!V.I+P M8\F"9`"N4.LD09G(#FD(6_2)9%'0Y'-9Y%L@)$:R9$*6CD@"11! M^QTDV9`&!K4#:2E"NY(M.5NJU1,R29,VB9,[I).ER9/0:I9!.;)#>:UPF*US MZ+)*J2C@>K'CZI@?*RSG>HA8N:Y:V8C!"J^:**]@J:\>2Y:2Z+=R0B=T]2%K M.8IM^:^G6"AQB2BL6)<%FY@(NY<*^Q@,>XL.FXSHY"NAZP:%"8RPHK@'J['( MV)BFDKOF"HV9I2RB<9G.DIG8R)G;^)G$*YKAN+FVP5([YM1;X&HV;HBYPR5FO'PIS.HTV\ MI@(S]+\`',`"/,`$7,`&?,`&+($@P+.8Y[/R1@9O8$#,V*5'TTL"D6E0`!?& M]IY9AX\JJ;;.P;:",P=YX!DE`4P9$1(*?&\U<09X<8N-]`6L-A71=F]36[4\ MPI!9F[[Y6P.+VF=0Y+\(/,1$7,1&#,`*S,#T:(]+`<$27"$43#L6/!#)D\%R ML,$+Y\%O"\(/:;3!.L(EW!SOZ;4J_`(=UZ@M_,*>$L,S3`6A!N7*.XE$!)\`54D`50(&$@,*4H4,H@ M$`3;QS5X4P13D$MF\%P^D,M?X)Z2J.%@@)QG,/^(3@B*0,[=#6Y*D0T M*D%J9DFO'%*FC,JJS,H2=,H.AE^K/`1)(,N:7&KUUWSD\@148%V9;"9BT\S3 MLUXC=(%8<)I%0)-/,`4-=ET/EE^LO,E%X#56`,[U9AJ]5R%ED(\RTD%&1,S6 M(0=?,&FB[!="I`?]408=)`>"P[8K*1]F(,-RVS8JL,T0YEUXR\+B;'^=_,DC MV6%Z&[/R'*UH>"\7%;AN.+AR*"[1FR>'FX>)*ZX'B[L>HKO?0I6&>)6)*+F, MR)7OZI68"Q9A>=.K;J&(I<#R[J^^X=ZJ1%\:8N>4KNZ M:!B^0M5!7;&]R]/%N)C!R['K(QK%BP).@E'(2XW+B[+4HK*=R8W<@M9Y0J8P M:YH]>8[21-6KJ2])]IL!,S`S4#!K99RZZ3!4'3$3`[X6@S'QJZ@Z``/85+]V M?,?S0@-F1P/)TL`,O(.''&<3275UU M<`8!V>T-K8\+^(7;WJYPV,`.`K$:H#0(V MX'XWL&?3F3.VDP!04,]@\P5#\`1-``5Q]^/<135:>CUI$(%F3#OZ.3>Y`^%4 M\`4S$'?MG4K\O2M:N-T@@%2GL1,1L<+Y.9];8Y^B5>9D8S9-@S9OH#:JI;., MDZ#]V:")D^`">C@."C<'.N>GPY\+:CEZ?N<0JN<2&CJ[-3JE8^9RMSI4;N6+ M;@9?09_`301'DVF?)QD:D:9I@`?478T"DFS[:!$TD7@OM%`8$;J9\1`1,18P MXMZNQC3]01$N#DVUA@,RC@,TSK]E-+(LD`/5NN.U\^Q!8@,)D&F*1A9B4`=F8!F>0J,*'.5MB`1% M$`1$4`12D.T)<,[XO`3+3NPQ&01-,,_ZG`!.@._Y=>G)@^XV`=)"\`154"Y! M(`59\$0I8S.6$KL*A^1@,RCP&=K'(TU*D@/,@VLY1CI0GJ!UJ^[L[NX)$$`B MW^Y2T#*"`U3U3NTQR2YV*P7L$4!*N_)$)O#5->_P+N_W=<8\;N]F4#8)T:7L MX5LH4+9-G_)RLS3PU@#&N[?$_[_(AO^XH7_(HTOIT M[VF@+_I/;D`L/OIW^LI"ZJ-\#N?^9;[\]_IBW^RK??HO]_F_W0=3 M>M_O$W?D;@ND/?QB_4J4ITA^RZ_Z>9?K=]=`0/036M./^16_#L.0M!]%"WK> M[^3LO>+1]VZ`RK@HV*3CQ9:7<$,\G+(R*RUO;KBYHQ!=5`O10S;'3(BPI/[@ M`U'`3P!(<,$%E)].(06+8-OH"=?%"6"[5+;*!`<7X"U7`[8T(L%!_"+,=;)D M+T"([$`RJ//TF=ZC'1H@#H8_F+&1=%XU$1(1+T= MZ&K<0!,$@A_/W@W!-6`%"UIR0X)T0'#0/"8(%Y35$_09"&(*1L$VT`BQX!/0 M@M:L"Y(*,*@&QV!#*(/>Y0P*CC0H!F7+*6R#$>8--HJC(@?IH!U\?F0O#SH9 M938#2T:M450RCF8LB8[''FI$&0@#:^#W_!+(0(!.P`PX`<1DO"S#8'(":``T MY"TQ!X!X.!!G';C?>!AAN2(J-#2[!_:D``O`ANR!H(B`]-*=O(JJB57IQ%9Y MBBYT#F%..B0H3O`88L($`?Q<`&#P$##P)7@;9_BCT"%I01_+0GD)"@$A`A9A M4ZF'H.0>0I%+&`7)0#^<***J;5%$$G$1%TJ:H@EFI1AFE6386*)(,X0!T+#; M)0^-E@:\TP(#VA]-B&(>X%=K\S\')`B0!L,M(% M^&G`_-(NG,`*B%.U!QN*!$6C-,1).VL;P*\G;$1^*.X(R-QJ"&217*R>F1@6 MQ=U8["YE4?XM&[589,2AT2N'$)&S>!;0NP,W`5=]AFX&%Z^8CS ML#.L%WH(4QI',+*'$A$RLL/)J&(,0T:,AY@Q_127SHCHS(!!Q(=ST2+6Q7\H M$[8BCWJ&E^HUJL.2U2P68EEPB"3),1*4V-@1[4!&3(S@;3CJPXI8'#$C<@P? M!*4OFH'50UKL#0\QALA0&=)$:H@2<6*F88DN4>+%Q``H#;(W3\)1H& M"L9#,/F=3*-EC`BID3."QLLJ!B!M_@'!T+`@Q>9DL.>`; M&^*.?(B.D5IJ2FYC'`,E"%B7&/&P6,H$X,1DQ1UH/B3R]R0`I<,>N%8?3$,Y MH+1%MJ@W)JGAEHP[7K+;C#ENTEW.2IK` M*ND8-CQ(TO$O:H&R>!9)X*&TDR5G45)"%&.C;)>$15)2RBZH+S1KQGDXQE=52'5T`TN(&H("#2BWN9$/$E#I3Q(9K4/QG);4,EDRC=&X/-_A MF+J,54I:GKW6^"U_2$$!/S*<`:01B53^AD0PDAH2=')`T@D?G0G/8H]<40V+` M;+I'<0XA-:>'%))&PM^C2AOI&@UGD;11*1VT8O%JC0^3H#4@LG6\9)H@ERD< MR!5TQ`3,14V8"3W93U`;[FD+#$J@B:1:QD.5`]-&V>B)$S!+HH%0:LV=4=J0`ZY4R7$"O"I0'4%D%6N550] MI/VR=3".!FB\$VDE=4W.()^-JBE.$0J"SJ!BT>R41],26<,4E$-YY>T$A]WD MAY)#OFD.#:((.#C&-(1,E):8/(/0]X26X5-Z,A9[6&R*:?]\DZ]57OX>76KT MJ&H;L*H6%4:L'/?4$]9A$B@+/0&K[E96%1+;J1ZMD'"+[`F.F=HGCY9\.)\C M#7I@QZ581FP`#L!Q,$"0";L)E>BJ8Y8TE4Q@"3C6M8DMTV=MC(&2E:1:FUJJ M0V_I5K2B,Q%D"E"_*#9')KDHF6F1YQ09J4DUK:;FO(OUM2Q2Q\A)7[UFV4Q! M:S$1HQ1&7T7E&2\WXJ,2G@?J,$_:SZL/0 M^J6@`H:%EAHVM3I.ZHE8O>(?D8ODM3FZR]CJ,PGL=$Q!_)*VVCW;BEN%:X'S MHKX5N"H+W?ICNU1QS:/O%+F*$N7Z5K&F<_TF&S&Z@H_I6L?L6*VY`=>$!=R` MXK10<^: M+2!S-I@I6,T*9]F:A2Z#M+_A&@$`76$9%E@C.H2)2H`@< M@1ZZ9[]LG*VHFW,=,@$A.W1VBG1!5I\1?+!%`C$U_^L5+`LPP)`$6+WX+S$* M=+H!.."'S:A*6UO]K)BMJ$2KSN:<-$O-A@2;;;.S-K-:6EM[6^4LA.RM@Y;3 MWED.DF?=+*W=L<06MP9:9$MH[:RAA9"(5GIT1@B+YB0L:5&TO!:!Z!)'ZVW` MZQ)H97R`->H6URA>'`NX+3".I-%&DG)+02+MI,VES[;/WL\_RPDS;0G8M(76 MTQ:D>G.@1&W4)+5@MKQFVE3+-;VF1BFHR@G6DK\;D`.&X974CQ(2@]XBI752 MSRI-3:LMU49&4;8:5655D[V?-96E.E&YI7)@O M!T9N$4N(#$^CN]F1EG$8B$"8)(^@%.GFPESQ+W&`#=!X51*3$MVXJ[#*!]U= M.7;WZ^Z:O!MI]NYIF*LYE00&WEPQ>#--X24/F>$J)%XZ@`D]!8HX#Y[B\0:% MR'L:)F_R:`&6EV%B7A#Z(I66HJFR+>K6&8NV2P/VEV$]*_<&JNY!VEMTP8?K MI0/99M+A@6DC&+Y2.CBDCNB[7/8D5B7T;E?85O-UWO'S?\+M^R:^R,;^IUX1(#_UK%W#. MU86O"2#^HH#Y^WVYIBQM(^*7__H/_VL=T^Z\\+RY[O-6T`1L08]N"50!P*^A M<=Y[XWS3APQ>4^VV!(K%$-C\ZHW2TE`==\F:J.6JH=[8+REX3V#3