Re: [PATCH] interceptors-0.3, kernel 2.3.8

Alexander Maryanchick (Sasha@GDev.msk.ru)
Fri, 25 Jun 1999 12:58:41 +0400


--=====================_1298667==_
Content-Type: text/plain; charset="us-ascii"; format=flowed

> It's very difficult to extend kernel functionality
> without recompiling. "Interceptors" can help :-).
> description:
> _SAFE_ way to intercept kernel events.
> Two exported functions:
> previous = register_interceptor( handler, type );
> unregister_interceptor( handler, type );
> Currently supported operations to intercept:
> character device
> block device (in this version file operations only)
> system calls
> Goals:
> simple STREAMS replacement (with almost ZERO performance loss!)
> provides new functionality for modules.
> some existing patches may now be distributed as modules.
> Tested:
> Slightly, on i386 only.
> The patch is against 2.3.8.

Oops... I posted a damaged patch. :-(.
It is incomplete (Thank you for notice, Borislav)
Sorry! 1024 apologies!!!
Here is the complete variant.

Best regards.
Alexander.

P.S. I need some feedback.
What interceptor types would you want first of all?
I currently think on block-request, netdev, FS and symbol interceptors.

--=====================_1298667==_
Content-Type: application/octet-stream; name="intercept.patch.gz";
x-mac-type="477A6970"; x-mac-creator="477A6970"
Content-Transfer-Encoding: x-uuencode
Content-Disposition: attachment; filename="intercept.patch.gz"

begin 600 intercept.patch.gz
M'XL("((^<S<``VEN=&5R8V5P="YP871C:`#M/?]SV[:O/]MW[W]@LZVS8]FQ
MG2]-G*5O:>)N:1.GGSC9NNMZ/D668[W8DB?)3?+I\K]_`)"4*(F2[;2]>_?>
MNC:Q21`$`1``04@;.J,1J\_]'ILX[OR^WFYL-G8WCCUK/K7=T`P=S]TX\MR1
M<S/W[<;8GLPX8"%(N5ZO+XVO=#F>LS=SE[5>L%:[TVIU-K=9:V]OKURKU9:8
MK/2[/:3Q[4U`T6EM=K;%^)]_9O56:V?OA;'#:OQ#J\5^_KG,&+L<.P$;^LXG
MVV?F9.+=!6SD^6QH?W(L.V!W8\<:LV`^FWE^R,*QS0ZO@]`WK9#![*'O3=B9
M-[0G!N)R7&LR'SKN#9N:[@.[ZK^J7YL!4#4%D&E@L)/^<8^90W,6VCY\-=TA
M<^WPSO-OH]9&F95K7=>\GMB`#UHL>Q9Z?E"N'9WW7I_\,CCI778OCKKO+L\O
M^N4:8R<*$#-]F]GW,]MWB$L3%C[,;.:-Q`IAS@@GD(G#/YF^X\T#=FO[KCUA
M]B<8%S382?ACP`)S9+/0`SJ#.V#/6L];(^:XWEVC7"NS[^`O.V26-Y]-:)9P
M#%@#=@+8[!F"WM@A3M1!0,8L<^8`4<Z_[0X[G,&82W-R:[`NL!4F#PUV?-Z'
M'V>'!GM]>`D_+M\9?'W46QYJ==3TK?&&.9F-S0V+%*+AN$)==%T9G=0!E2[G
M-M>E-FNW.EL[G>UV6A>UXY(ZV-[J;*DZN$T*N&V\(.5S1NP#6_M>R/7L_/CJ
MM-M?8P=L[6&-?=Q';7-1K:X]T+(?^W;(4(2@^"!$X.V4-@&#OZ"W+'B87GL3
MKKR@;O.)'?S(8M2_=2_Z)^>]?HSO+1<XAV43SQS:?C3B+0Q![>"@&G6,(!/J
MR$9.F=GN$)1O7BZ6ES_-D9;:D2,K%609JZ$9E9'3=DNU%4UN*9K_2&K#V=S=
MT8LJV:.751(FVE9LES6W.LUV!_FO$59J6$I:S<[67BRMK5T4%OS\1U;3G=U;
MO:R2/7I9)6%(5F?F`P-7"1S?!H^ZI955:EA*5MN=YC\64"LK9Q;DR"K1DR.K
M!$SI#'CPVKYF#&2UV6ENPA[1RRHY+".K5C.6%0^7X.?_:5FE%]9]_ZY[<7+6
M[5T>GJ975R#-V<S2"S/1H9=E`D0UD1!Y;(.)W-&*,CDJ*\D=Q4*VR4*V_W])
M\O#=5695!1(,9O!++\-4EUZ**2!A/GT&@H#]V`*?I7=UZ7$92;;;_]C//'GM
M;!5(3.TLD)D*5GKM.W`T\9'[S1TU+M1)+3$R*[<7_\@M*;=1L'%FWMHC!Z<E
M7BHM&0DI?206BD4@!(%8I-EI98)\%5R5Q2[NO98JBTV00HU^HBS.!^>OWO2!
M.<!^;V:[#8_YMCD<W/E.:,,7D0F`3XAZ$")#X,OU?#2R??CP9YF52L%\1E_8
M]<2S;@<P!KX$H1G"+_O>MN#7S)GA.-><V@XBL]QP(H<[GD5?<.*A@X@">V);
M(4TZ\N`7HI4T!`]!:$\#&EPOE8:6:8T1M>-Z0_QMAB&BN(9%R*;O*Z].>J_/
M+OM55JZM.@1-*VC%X/2D?SGH'9YU6>>`O>Y+O2VSP]/30?_JU>#XY*(/7+2\
MH<FFCNO<P]K#-AN9(9L&0R]@G_#CS/<LY@3>*&`N_)OS+C>$SW^2@-I;N%G@
M)T0CBH1J!VSXU]P#IH"F30);[7`]T5,#'71&Y5JYYHSLOUCE^XI&6ZO&0[5<
MBT='ZDVH"0%YDP2"H_/CP\%K/C97O:6R6+%21DTZ!8\Z2WW@#!UC]UB[W=D"
M\[&KT?`87E%QB,Z;+R#HBU6<(C<9N+%U_,?8X7`(8WB>9RA36AWVQK3^FML!
M^\6&6<R`DE*O_L?S7=:]O0/[P@=7K+'IWL#XT&.W8#F`?S%.U3S$B`\G]CT@
MLWUT@P^F:XT=Z]8@ZTJ$`MX-Y/-W/&UFLY_X,H5)';_DN_6%L87;==?8W:;E
MI,%IEP%PIH/O,%V/[?NNASVU=,\44X"6MBM6DF2O&4S!&S@N[E#JPOE&0WN4
ML*@9&I")"%[/=H7A@^C96`=#X#MF9*QQ%%GL*"6)/`Q"?VZ%#,8-1"9S_<8.
M!_'WRBTHSB`4MJRZ#W,"@8X+ECTP.9S]J3(UJR7XP0X.V.7E'X.SPS?G%^SO
MOUG4='CUGK=68P2N;0\'G$@8:TR=*JND)C][>]S]3716$57OZO044<BM5A<+
MX.0-Q+?/Y9KX%+$>R13=^[C',;N)G,X9STJ@2T'(0'>!)61Z]U%TJG22Z=12
MP8R`(6K>CT')*X#C\,DI![!!9C@)MU!Y0.O@K6?!?KG^2+#<9CTF%S"`68@W
M,,;2+]$:^]`0?#@[?#\X^O4"V/P1[.]G\`J?B<D&_62/1H95WM1U!AE^E_P[
M\E\A^1M<Y-P-G!N7[W%0A'L8HJP]B6"=$3'-C_NXENP,N*!:3/DWFE[A!?`/
M^%LOYN'UY#8:]^KT;1$/XQ'?D'9!`Z>]EJ0\RS5H06K9Q>^#T_.CMX.K'O[J
M'ALQ&XS/N(!'#;KL0J`E'QVG3$4GC<#Y6>^D<@\[OZ*3^GJ5/;^OXGXMVGJ1
M%5Q+;+[&>$WN)DE]"GWZ>_B@4#8VK5MNU"NX`ZH08M1*%49?@"[9QP+GW[8W
MXC`&^^7UN\';[D6O>\JJ[+]9ASW'CN^^"Q]8-2+CD^<,"?_(M^T*_[H^0P!4
M!PCQ*VS&GAVPYQGZ$*94$N-@!.Z7R`S`ED>%01LJ!DZ<(*P(&S8S;^R8!`0<
M#`I`#>TV9.OA-=A?-)"(P8$]0A\FMHL:*CZ"(C03>CSQW!LVFI@W`1FF$H<)
M9CX,&%7X=&M',+EI@0!EX-SYTUVKX@QX/JDXA)4Y["<6:RB#AEJM2IN.&"?M
MFO.Q@792]-"$M>2,-6B#67_8'+(?`IC)8([!E.%H\Y&_)8KI:8<Z_E^!^<FN
M/`^OZR^QQ>"+(K`,E0C$-V],)8`1F=@G)I+-2].HC*V_C*@LE1[Q//`(RWV4
M1,]=2;9O!Q!BY5#NV^$<@C8N0QB\6(D^Q[)&!"N)LR86FM6^>,5D%4`650PX
M"ACSI_L*%[.4PG`;E%$8:<2?J##*<"&*>BR$)1<*./A"54$P$">%L3N[1FL3
MPMCF"P/.L!C')DUQ-D#`Z7`M%4"9<B40G1N95CBW06M=YW:,5"0TA5!^8ANE
M$L27_=#'"VL(Z^<!7?9>SQTX'N!-MX@YD2,89M;UKBN\_O`1[=D"0Y.W3N`6
MXQ%AH:U!(=/"00_XHJJ?E]_5ZNAX0P,&;:B.?,&?((03-O10$G`RQT-2J-0&
ML&8#NL<P)YP^F3.T378W?L";<VB<S6R7)]';QMXN9AO:(']^@"'$#$Y:>.V-
M$3B.]_`+1?:4<$%SX[D(`4(AR@,^<(/2!;"<2C)R!PCPLL]3X3@J"BD&Q-U_
M_XU*C7D.P0IP34T<\@PD2"UB[PA3IH&,;!8'CT+Y*DFX5"+M0G7YT,8@$)OD
MUL-6@PG%XRNJ<@C!V0'7MHK8?V0$Y0FACE"H)DE*R6"2GTT35ET0Y4M\SU,#
MZR_5Z#V&RX")Z67DOH*A9F3AA8V`7\)&T&$/.BYX!VZ_T=RU*,]'*2<LKS"%
MZC4`\!0/@0@F3GS`!Y2]/81.Y4RHMRM@J\BT9.T*[=:ZI$_:(*$(1E.-`]<H
MUU6GGOH/PS5#6%'5&V419$8EC.<C,J*0=/`G.:0;+&L0BY?#;:82*:^A!BNT
MB4"B:$4<1WI@PO4]RIC.MV_`<=C^@./5KB%S8C5R^4&[-1$+1A-P/?D:$RR(
M(%7+#.:@*3PON6[1J@1Z]=8^)X.]1*?.^567WEJ-_)1M'ID9`59*P9!_.A"G
M>QT`1R)/W"6^JU&6U"\C7K[3\R->.+Z4*">\A+^Y!CFXW(QFV8-F)<&?V"/E
M\X=BRT3,F;+!$D98K&AI^.<:S-.M^/(HHDP9P_)UHX&/4'`,]>ZKJ_X?8I2"
M@88^4@96"84%U>IB,OA.>K\=GN8@S+'CB&*!)><CA7[B$2YMJZ/C).6>Q*:)
M+;R.J]S`H]^+P(6AQS\0-67@525$^ZO*HBG6'$]9P&*FG@&DHDK`.K4F^!UO
MKFIB@&!V/7=7@3_7-4=KULU>O/.*MYU`QIF1T6)6R28-E+-[YLQ?793(2T^1
M%)$6(%(4)$>7`<Q0I0=BU07XX>.P(:)(37"AP"5XN`"G:]^KH71I:D^MV4-%
M'^08C!MWD??0>X`J9[/4V]4YFB0_VD2/>,FR']G3Y0ZXL0N.HZ8:/^9^&[_Z
M69TQZ5<E4HZ'<U)U^7#^3OIC'AI]'<)6\+H\4EOL=>7YM\CKIF"R7E>+)-_K
MUDO"QJU@Z/AZJD\0C`@P,3&2B)CF[A-CIORHB!0GTX,GN@7GW%KBI)KTI>@1
M]+9=QW:P[;KF0MM>+-]BX2JV_>E14EYD0^XQCA<0%-AJ36=9K\U%0T?(]##.
M_]2('%\DI?14.R4CDF7B%]^>V&9@DP-1[U$)@>J3JJH%+<5Y9YJ'J(VW1:0B
M9"73BKZ*E<R8FV5#CF>::*``7$A4$V!$\M2.U4<D7(!Y$8GL52,2\3EK#I(6
M)7.N2_-V%4.?QUMIY?)YJ]F-BWFKV>#%O-5;!,D]O47X4M[&B0!&&1$J`=C;
MQ>=U:NT7VT:;/[>#;+7&-I;:.,'M@!<G*+?<Z=N-!=>PN9>Y'"!:5Y3&I'J?
M`:4R`":X+LA=`A7DC=^<7V",6Y52<9+BQHOVBI@LD\U63&$VXPG0C<PU!IF@
M5-*<>X6&0+U$DDR0\UP9E<V0Q33',$NFQS24"^N9B$`4W]=$&4B`^DNN`E-[
MZ)A"!W(&45E1>P\+OS9;.\9>I$2<U2AR5P;!5`!%E_WP.Q&,H3HXDYFB7/(<
MUSL'!B/YK(00P`%`"3UJLHVK`&$%NSY`RT0AB5Q1/.Z96,-GL0A^AA2)WQBN
M_A+)CJ!ID9O;+:,-J]S::AJ;O'Q*LH%7K,E\E+!#UT`%;K_$WI$!DH#)@N2'
M/TDS!\IESB?A(+)VN(%BU)RB#YOMCV2LT_91V0GQ]N%V"'5<5]M1?('PC-,!
MQDZ@7YN[MZYWY]9I)Z^M<D^8S%<H]$D-Y)>\<B:5$S0^VC\"0(>*!S3[^1M(
MEU]&'HND.^<OWG8%E1^&Q@_#ZIHTMO$L\/FD)SZK]U<)=:D5JHMR4I+]7$LB
MDVZD62TNO:7X+!U>\HZKZ4M<$)/6E_I"'4!,:^0LOH!]]33[BCB#@821(H!%
MWH\*"AS7"0?!S+8<<\)+,U-F2EBI.3YB"HR;TC<R3<3#W$K%N)Q-J554&G75
MBDHW?^S.=/&)D^9FI]F$OZRU]Z*9K%=41ZA%N7N=K;VHPA'M5M-HLEK+:&VU
MT6;5P/-3?:&6,NBAWLI1E1#H*PU996=K:W-W:_>_JG+$!J]!R2LWS%8#TI64
MMFL4+%\_F*D0+"XMQ/_L>WSH-?\F)!7+JR>'*%<&_G`X`1"PR^(C5XQU*G^D
M#;CT-,)-?MDTVF/(DC@+\*Q$&^-!QL9Z]@_K/P06%M0GREDU@%R-1(%1_X_^
M$=8_'YU?]2Y!'9L1F;P@*'@(!HB5%XY_^*BK6PSXQ&HU&1],=X!*>)H"!+,'
M<U&_Z%`6S)PAU>$EQPQXX:0L/DCU82PKFN*#YX?$$JDX3I3$*05E0KT',8T4
M&Q^P_KN37K*63"4`EZFH669RE*5F;5I%XWZ(,VY]YNOS+70B`%-Q#YT""QZR
MH4%EHQ+13&<+\S4"(83S2640%R""O@.F7(`(GQ`E&B2F9Q%-@A0\%CQ+Z1!-
M]U&'_O(B!SNN#424#&Q4265CFXPLY+Q1?"/N=X!%,'NZDB[-RE15W;X<BKEP
M-6O-VU#OL1A)MW`%+)WR+N43S80D^7634(_G>?"<`B[B+UA@O#XAU[A5K#`M
M[QA`K"V/0@)<N%P!I-$>_=2D)-DX,T]3(MU3S_G(V^),ZXK;7&[M[.Y4=KE!
M*5;XF=()_<Y=TB`LVN#*9HNO-U?::TH.E&<H"^5]-P87+3*#M$ZY!\6BHX[]
M^$Y5,O%`=(,Z5C-WL(*10UZB+&F),#U&5H%/E#CA)'*LD6(C8+2+XLLHDA'V
M&;G[B"E&B-.5F"Y/G:/)$YG;%14Z9XV1C.4Y7Q;O<B$HRM^4FI\;973O\;D-
MT+RY2Z]D,2?LSL>"L8)@(^4F$_MF.;>HJ@+L>&`]^TE*0$%17=%I!7=.:(U9
M)<+,BZP1A64&-OOU4F2*.PJ"P@BPD@[=UJO1LN*(,L+.4UM:[+JX<$7L8KMK
MT6N-6"5CQ?03B'0`(MY89Y?GQ^<=UO/`$DUG$QM?W0/ZP:L(8D'TSH&<'$$\
MRJM0Q<HNT)+(JCY%A`O"^'PV+Y+>@KA^6<0:P2WR/P6BR\A,-0A"*"2$Q:=M
M_DB#YES+.PI/W1QDU9.W&)5Z7G`W\<(;>?K>;:FG[UPBU0/XHJ?\Y+%;X#SF
M50\*Y^N^/3%1WV6]8T"`\X"<,Z^$Q-SKVE`^^[@6(4V=H[1/;7U>E-U7SE<Y
MCWU)/P@6VXN==>J`F0CQ<B?DX[B+$@<T?1&).*:RXSE_!1?5G8"2VL")7P^/
MWK+#T^[%Y1J+GGO'3-'&U'3<AE4UB(5W-IO.@Y`*NRF%-()0#!RQYS_0J\XL
M_ABY.;GQ?"<<3ZFX&;-JWD26E38(T=7-Y*'1:+!.O2)8O\*3.'$(J"N5T3?_
M[W^$![J?/Q>=>6O0/^9#4GU]\OZLVV$NF'R,!JC`%]@^)X$@@^7B+6_NA@-O
M-)AY-$W`TW_51.%.=4-\PRV$=BL>+\I5Z;[$P&<S)<QZE:Z6/C@?U6P&M@UH
MSKR9LT5">9'.PC\;:B:B>,-@85^>"JWC(Y=29B)"#CUY@B(9A'09$S4J\1JU
M1=58J6,+Z4/^!7T>/0HYN2#R=):EE]L7?N9,4"RN'`3!D;NVQ&L(>72<UUUA
MOQ[VCL%D#,[ZOU`JYO!8!-I"06DDW;NEF^5AEC.1'Z,Q^(LWC@1Z?+(N/%D_
MU#OE)^0G\V^REA-AKJ47I^"\\Z>XF<X\)<IKMR+I166\125ARD%54SKTE#14
M3BE.%E5T'M+GG,3=<"9UHC<DV02*/#7R0JZ(*TN7+I:7+T:21^!%U9@$B\$,
M?SYH1`&*HG=LZ-F!^V,HJ&40J$54B4'UA&>F9SAX:"E7R.$H_*>2/J8\!!=;
M:'H&CJG/(V:L??+D7,IT1P-P\=`B#_OY62_];BC(?36B_(,F!Y:N;E7R7OER
MX*!%Q;LRU?>U*F#+JU6`/34MMHH%>ZK5>GK&;$6+56B1M'FS!:9'GX=Y0JVA
MMA(PK5]?)]/64,[:WR3C%B?))'W<-#W--BUMG*1U6MX\)>T34BS,.+=2LF.H
MM@NFE7)&18-$JI&W<VX^1CQ4$H_2<2CPR^Q^10YJ3*F$/S%",4!I.(AG%JZ#
MX:",:%SO3C`U*U.^<*%YL8JHS^`4VL-83Q=8Q)4Y\UA^8I7L\IE63:5K.M?Z
MM2/.;WCIGOM8@39=)W*&2KF(#+._Z97]EQ")U3Z2R"^[\$]04>0F(SHR7/JR
M2H$G$J!P0)\/%-4?&YGBCRB3D].?R0[F0BZ3),P?G*S4V6QUMMJ97.$FO<4`
M*TA=S,!%M:.#7^-L0J(Q;M:<1"L5NN*HMBB;(--Z*#Z>KJ##ML$P"46%(.Y\
M&J>T\17WGS'K>]5[VSO_O6?$.6LCSC++CQ?=?]''7O=2MHIL,7U^W1=-9Z_.
M>8E#)LTX&&24AI*,8#"Q_@%^H9'*TH@_L(??YE36Q=&\*A-/L#1T#^1\A8?6
ML&IJ!X%Y8W-GD8W%%AX6Z?%%>SKS?--_$$N:^S8X_J&'L<',#`(F<CZ8>12Q
M*CDSG/,QLV7V-1S*WN9^+1:E5QT5;T3U-N(R^S%[I:RC]&D4/C(5::KFYXDW
M=?MY%4X+;W+VU>W%0]VA%[>`?V8\H&WRUS!173:^74[9H2A<O;WBKPS<N`T>
MIO&;#9.-&<N4[%8M2K.%MP_9=XGGCP`;M-T&,Q3;H,T]?,'AYIYXPZ&FI`]S
MV-IW_\V\B?ZE@-/IXMH\>EOAB'&V#N6;(=]=G!_AFR$UD_F>->"E@OQ!!J*[
MW6S*__](]_V[\PMI;2KX.H_8RU`"'JM!LT"J,RH`"\+A`&"FCB=JZXOJ_9/#
M=;J'.))0>AU5GE2BASCX2U'E:U/$^RK4]Q<FD?)7J&+%,R#Z#^C<D:V79@``
`
end

--=====================_1298667==_--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/