Message-Id: <199604251005.GAA29638@mv.mv.com> Date: Thu, 25 Apr 96 12:45:12 LIT From: Martynas Kunigelis Subject: getvect/setvect To: djgpp-workers AT delorie DOT com Hi everyone. Eli Zaretskii asked me to do something about hardware interrupts with v2. I did some analysis and came up with my version of getvect/setvect functions. They're attached here along with a simple test program. For now, I have a couple of problems still. (1) I guess that user's handler is not larger than 4096 bytes. (2) If the user doesn't chain, he must call ouportb to issue EOI. Well, outportb() isn't locked, but it is inlined when optimizing. I also thought of some EOI macro expanding to inline asm, but most people would write keyboard handlers etc., so they would need in/outport anyway, so I think the easiest way out is to force kids to optimize when compling handler code. Is that acceptable? Anyway, would someone who cares take a look at the code and mail me any ideas? The code here is a draft, no error checking etc., but it works. Also ignore the silly warning, just was lazy to put the cast in. Basically what I am asking for is some way for finding out user handler's size and opinions if that stuff is worth including in v2 libc. Thanks. P.S. can't find an exclamation symbol on this terminal, so maybe my message looks kinda cold... :) Martynas begin 644 hwint.zip M4$L#!!0``@`(`-B&F2#WRG<,(````"4````)````8G5I;&0N8F%T2T].5M#U M-U;035S)6=UXWG9,'CK M$"#[L+5`@1:#0$N4K4T6!5%.DP7^[SN*+Z)D*W;23D%D1[R'O'ONN3OE99I' MV3:F\&+].!5GZ7*T_K']L$SS5>?ABIU/NG9W?$QO(UI4 M>;V":S%-TIS"+V^OWX?OKC[^"M_YLZF]\O;J^AK\6]\7#WE%JC2";<[354YC MB-:DA*L__P AT K%BX^_067<"_,QD/P?1B.$3?U/>B]T`ZO8LO71#X8#,<2'4AT M0$]"0\S-4[/%1&[A3T_;@A[8XEQMD7AX)X@%\>@*POZ1C$W M%=#E0]`-NP$@MUZ#G0FL2)FG[KU8'$U81++,Q!Q,NC$?B-^.>4WR.*.EP4];J9H]E"I6V)D* M+EK(X`C2DD=`%/+-<7$BDEI(E9\@.0D96\A()2[N;CW=)J%Z#/8;@YVFEETP+]!4V/)H-M=9J0?(20&"2D' M[7[2*[.!I3"6))Q6YQ,#G1ZI2AO,:4:CBAEY^DID">FC7WN?NIG1 AT V&!B7CW$7CZ+V6)HU/C-@;XUZ(QT%/"W=\E M_/WGWZX6=4)F41MOE@(Z]27RAJ4Q.,,5K6Z0*`=').!OF3/7=7!SE`5T9#/\ M7&*3H^5<+(5A7&S2L"!Q7,)-3;7]?$,W:9XP9&>5LKP.&4#A470;E`6+'!F[ M6P,1$15WCK+QC$@]L*VL(]#SL"A9A6?3.-RPF(88`"W+;5&%TB-'1N3!F?Q; M[C%T^)J5%0Q=?1J\JB>TR9Z MK]IF"!_H-R5%!SFZCB^24*TI&$FJ\*!BP-F&5FNT,$C)/IZ_O`-=D>X(%ADE M.8Z#;9+`MAAI<_TYEN$_K2(:EMVYWJ/>V/;*13$]-?5O`71I5)# M^BIKWHJ,/[76=9:^H,#:)=:J+^/?-C]68]J1I*14Q]H0+Q3<),0B]1+"S5T8 M<<>U]-IJ819,$UNKM6G[KL3=Z\,LS0KMO4>5XB9:GP5#(KF0*=$Y%^4NE*FK MWK70&&^6TE)K-:U0J-\WZ\VWL?[:_7Q(=`>"FS=A:/>,CCHR"I")5^#LI1I7 MIJZUSQ>)HRL/.:[-XB,$TE#2%4E[M<_=IF4]PEWS'^M3/-Y)#G?B1C-.36L\ M,.LE+QK9G?;ZM<:#MEU?3YF)2:K#C'E(LI1P AT SG85()Z7'>X^O8!>?P/W:,> MT"V%G#BBCWG2=.>#1W:S_,A3]WN][DJ]G;W-T%?JYCO]ME2_J_CZS>0_4$L# M!!0``@`(`+.%F2"B`\KS,P$``$0#```'````:'=I;G0N:-V3_TK#,!#'_VZA M[W!L,-HIVP-4A3G\0QP*@OXEA-A'N\[WD M+LE0IB0P!;;D6GQPC4Q2A5K79658X`]M3!+^%;:`I"2O!<*%^3)30J[+2D^6 M5_V(*`O9N)PS;79C29G7QHW`QT^;D6`P'\#:$DA"IH[M_"LE!83C#*L5)E5H M]P<[-*DH"J-XASF_.6#.M_(E)Y&CMA*GV1>V>)C?L>?9X^WL>G$3\LBS]A+X M`&LX95L*;"FN/%9@(2E5H#&3BN(NC==:A[:Q"1="HS%P"6&N*(M AT Q.',Y7G+ MRI*]NDG>62W<1K%6%HW9NZ`;>]!OP=/_? M6E#3Z2;L>W#\/6[ZC[!=>=/Q\2\`XVG AT _P!02P,$%``"``@`]H69(#Z>><#D M````O0$```8```!T97-T+F-]4,N*PC`4W0?R#Y>*DHPBQ5E)G0$5%Z(X(#BK M`9$FG01B(FVJ AT OCO-NF#.L(LLL@]][QN1^I8Y8Q#("Y2VZ$(,.K4LTEFF31# M\8D11FI&\+Z:[[:?T^WR^ELO2"U8?0*5S?2\`&_W'J3\!J.2V+6F AT R@ M5V4L,?!`$YI434A03=\ES]I,("6M<.31.69(,6]3%Y% MO9>AGHU;91RXV_S3]2_X9.F/]P!02P$"%``4``(`"`#8AID@]\IW#"`````E M````"0`````````!````````````8G5I;&0N8F%T4$L!`A0`%``"``@`S8:9 M('S AT DOT 3JJ!```ZQ$```<``````````0``````1P```&AW:6YT+F-02P$"%``4 M``(`"`"SA9D AT H@/*\S,!``!$`P``!P`````````!```````6!0``:'=I;G0N M:%!+`0(4`!0``@`(`/:%F2`^GGG`Y````+T!```&``````````$``````&X& >``!T97-T+F-02P4&``````0`!`#5````=@<````` ` end