From 33c4b91102fa89a48ccd5f1449dafa4a4daa065c Mon Sep 17 00:00:00 2001 From: Jonathan Turner Date: Fri, 15 Sep 2023 11:08:01 -0400 Subject: [PATCH] Completed Part2: 06_irq. --- Part2/A4/06_irq/boot/bootsect.bin | Bin 0 -> 512 bytes Part2/A4/06_irq/boot/kernel_entry.o | Bin 0 -> 480 bytes Part2/A4/06_irq/cpu/idt.o | Bin 0 -> 2944 bytes Part2/A4/06_irq/cpu/interrupt.o | Bin 0 -> 2128 bytes Part2/A4/06_irq/cpu/isr.c | 2 +- Part2/A4/06_irq/cpu/isr.o | Bin 0 -> 8280 bytes Part2/A4/06_irq/drivers/ports.o | Bin 0 -> 2784 bytes Part2/A4/06_irq/drivers/screen.o | Bin 0 -> 5200 bytes Part2/A4/06_irq/kernel.bin | Bin 0 -> 8896 bytes Part2/A4/06_irq/kernel/kernel.o | Bin 0 -> 2624 bytes Part2/A4/06_irq/kernel/util.o | Bin 0 -> 2908 bytes Part2/A4/06_irq/os-image.bin | Bin 0 -> 9408 bytes 12 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 Part2/A4/06_irq/boot/bootsect.bin create mode 100644 Part2/A4/06_irq/boot/kernel_entry.o create mode 100644 Part2/A4/06_irq/cpu/idt.o create mode 100644 Part2/A4/06_irq/cpu/interrupt.o create mode 100644 Part2/A4/06_irq/cpu/isr.o create mode 100644 Part2/A4/06_irq/drivers/ports.o create mode 100644 Part2/A4/06_irq/drivers/screen.o create mode 100755 Part2/A4/06_irq/kernel.bin create mode 100644 Part2/A4/06_irq/kernel/kernel.o create mode 100644 Part2/A4/06_irq/kernel/util.o create mode 100644 Part2/A4/06_irq/os-image.bin diff --git a/Part2/A4/06_irq/boot/bootsect.bin b/Part2/A4/06_irq/boot/bootsect.bin new file mode 100644 index 0000000000000000000000000000000000000000..d39b302ff20dd6e23be51b7a7db6858dcc84a48e GIT binary patch literal 512 zcmb_YK}#D!6n?u6jWOsh3Mr_EK~Fshv4SXg^ipU+6fea>Mt8P^m>rm`P+?buy(Bp- zl0%_I@TMRhEW}{D2(fz+Wzl1AdZ`Ru6+PNR#v$TA=y!SVd*9>ZeXpFEcMoB`avgkh zc^Y^haHQ~Ch+Da8auV!Ry*tvqP>Jtxn5%d1bw>JLSENhw1HgMo*aMYw?@~)-Cnr|b zL^3EiuTRU#qmzVpq{J72>F|cYVfJ%Y0&+8TwS4zo-G>H5y)5}*{BF4ihrx!!*9G4c z@>DkwqI>%f$u45H(RrQp!s0HF$;)vio)h z?OHp7R}eV>xu39>hU$yDCUd3DiYjAyzts2!hyOGs^T*Lp)AWuNZLs;b-|YbNKnMS~ zf9^N^OP?PCq@Z%mGtxTv>hg;gzikDeH?mdvLOvwIV8sRCUxW~Rt0v_AFl%FG69eTf zG%_~4khjqc!As~pH3+=JmhmKwzG+L-jM_4coIU9j8+q#!DiCIoC23((R3t^pR-RM- IhdQ_O2%=TF=l}o! literal 0 HcmV?d00001 diff --git a/Part2/A4/06_irq/boot/kernel_entry.o b/Part2/A4/06_irq/boot/kernel_entry.o new file mode 100644 index 0000000000000000000000000000000000000000..05e8c663aa6a71866904f2cb5630a33c7faeb2c3 GIT binary patch literal 480 zcmb7BI|{-;5S=w4YNwUh2zG)HEj&OPt-M1>U_me+*`2~vUdf|)48h7?TxXJ9TuTR* zH}B1xw_$VH?sq~6a3vssF9S&IVAJ9PBIr5mU&xt!BD=LF()SWZwr4Hy^n`p%k8=js zn2!G?CmJNAg>-nIku#^36SQ?D-^>w0mp7+==;=2a42W|UdpM8z{bh`Kys5JlqdX(T z`k+x^mQ&Z19a^qr(Rtj)54!tV4B=_~A^(YqC$w*r*EOz=QdP1@WreDVGhITeF;hrh J&g*#(_yO96C-ndT literal 0 HcmV?d00001 diff --git a/Part2/A4/06_irq/cpu/idt.o b/Part2/A4/06_irq/cpu/idt.o new file mode 100644 index 0000000000000000000000000000000000000000..16f7d9d99e3bbf16b4c7b0aaf015d02bc7589918 GIT binary patch literal 2944 zcma)8OKenC82<0QGt;5-XrTpLO2X8DV6=B;N*N1M9%6+i1PP>(g=D;)-g(G8%AGs% zkm$mYNJt16jWHoH1{W-3hlvXlqo$&J*QPE^To@B@W8$KI-<@-Y+ivtv?)kp|dERH{ z-Pseb7=|HQ46)>iCh|tS>zN8*w+zchnZN$qjoIY&?{3V-%h!jO=^=d>SvEoARDOso zN0c2j3VIVM-~K+>%ZkBv>)iLK^%Vo}GPV4Wk+RwsmFUq4|?x zkVY58?ChBoGnRvDMf#F}NF-Wo`f%h6V#b+cnSE~u5Z!{3W@lQ=euoAlelvjB89+2{ z^*;c{T-p)`(Mn(2t&5c;H)GprPrZgV5*sBSB9C%9VhuAUCh;XIn_Fn3F>7>%#w<-+ zgL<)-$;Wo0H6^~6%C>LNZa9m^2qt@i?9Lbl+TVof1*qn2N$d&&g2dYqN$!T;;fKn7}yzF6Cz2aQ^YkiiV7m01Dp8pPOW>`V_Otn^rVqp>MA_!Rov zB368V;>E<=5Q29|B5@FYOj}VLjOdV&NHD}eNGv5*x*I>8z@kA_=~UyWro5P_Z5$fy zs=G$n-{FyuUm9hR{%9}D91%%CRasP%w&=WGmPpDl=7yM@9+$bHEIJ#Q>Qy;3%EUn! zRGqFtwqfo(a{6$Q>C;4h2A?TB^@j0JI)yg4Bv?12wA2y7lG-KS6#w#)+qSEuv;_n! z6V%>3^Vd)J@5i$TXFmPlJrftpsMadgVyj$kyS{Xq?OLVjE@pU8%XO#H7N>sEx!lf4 z)oCu)T~F$@M$Kp4qUTm>ZQu2ZzAQLxS1^cdcMPSf;|b~&8CG$8SL&^cx({tbTD#iv z{LGq8drDB_*va|K(R@C$*PgO-naNzfkSpZ&WhNSXCeiqvraMz{o32+YL3O-Rb*5IB zE@UPunTc|`GTFBvh$PAt{Xdc zZx|oNxN=&It8rs28Hv1)z2g4!qwoUBk#zi;`BExs9$!XC;5(pv<6-}~z)i~^08Qi{ zRw#D+a>I8PfWFtos%D;Bw|)1LFZQD2J7O=i+hWtW=q_|B#agr6f-B(8!h+|%74|xw z)2z5_66&?4s}sH&6e-lcsnL=?MvsoW!!49>^Tiw+y5*4S;h2&xig0^ zZ}>f?k1~c2OB$>J^*R>oIB*j_#_-Hy%Vnq1^-cQ>dRTP5=U`;~f5ipA1fc?~SJp+q zHO+yC$M*o^TY-(^!wS)TtiyVIZFId0;LPE?DJ|67r;9)*<#$z~j=P5f z1=zIcxN9(k(&ZO+6cX+G1U7OkM<6SRJF7TBr+ow-p2ruVb>W-FIL?c2h&}_L@-^b_ mk|@#rhWn&z8k;%@BmREi746pJy0g!4z2i6sJ7CkI>-`JcCssEA literal 0 HcmV?d00001 diff --git a/Part2/A4/06_irq/cpu/interrupt.o b/Part2/A4/06_irq/cpu/interrupt.o new file mode 100644 index 0000000000000000000000000000000000000000..9569f5690c192c81c1a2ca527f651f58d5decc3e GIT binary patch literal 2128 zcmb7_PiRzE6o>C5nMq>Qj9S~qT2mYU+l+ZHYN}l{LM^nGViwZ0UBrndIG0S!yKf?j zNDCrG(J4hmsGwva6-o)Tl-896+l3U7;zB_L#f2W;qGaL5l*ZpVb6-7*n?AVreBXWd zciv-iC-cSDkKWH@GA6w;rrta?V|x9K^-@=voT*E<{;$eCdE|Vm3(~Aw<^6giYQ1MJ zy^yua(|4PPH5E5w*vF#*>sbu0+_Mcs_q&T1_#|zDdnqmjH)Et%Z&NMLS>D6_uw-@) zAHTJI_}9Ft-m3mqy<2_w@SmBPnf}y@hktLHzW(A(pI2{JuT<|>liH@o)>xBFa>*nY zxzr^STNuDiP|I5!e_GOy#^a?%j^eWx))J8WvEuyQQ zUZcyN7Sqq3UZ?LpEujfd?R3V|8}y@4#xA9cLUr~{Iww?bJLr^9gIz|)gtB%yeJPZ) zD`=lkqg_cOLQQrR4GJ~e)zmLE%dVl1g<9-ddQWJ!eTy~=&9R--B{bI-XoXO#T}O*S zI16$WDnt7#rV#ImE3Q%;1RW^Xs&_XuQrnXzo~h~i2M~0enaKPv8g2FM+3&bMI;8 ze}J?8kI0|zpYT@Yf5F?7--LH4=Vx~+zYp(GPVg^5E3(A*)CzY=TUs7HGUs2u-zNUN=_@?rA!S|GJ1t-e+ zvv{Pu4?LsX>>3+iR~oGhIX6C5DHP+fDaCGJPjPhj$dEH77d>UH@7h}~?;Rb8E8~N5 z?-`F>7l#9$LY}<F=u4o;LE-!_(V5ZQ?1YMI;kQD3DYju|RTx1OrJ15)C99N;a%L zPqLw8L&=7c4J8{&Hk52A*>1^pBkLldi-gd`Md;xov~UqRxCjkgguIIocM;OqT#HDC a-x@2D;xCH`#4ByUE?X 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 J;{;_U`%f5w2vz_9 literal 0 HcmV?d00001 diff --git a/Part2/A4/06_irq/drivers/ports.o b/Part2/A4/06_irq/drivers/ports.o new file mode 100644 index 0000000000000000000000000000000000000000..d46cac2ee8b0353652e44f57fb42bad52d01bf2e GIT binary patch literal 2784 zcma)8&2Jl35P!RCJ5HTAU#4vc1&0fO<$lNE{-yYWU6D_ndVA!ANg^GxM97 z_xbsuVTK#HkC9~7_ zd1mL^uQ?f9%LdmnJ*Cy`-IdHXi0!`X*}K2JE9lPL(rwhahdTHEo(%@6ZhGl=;&YQb7+V&o`uM0dpTBB3%-2e$nHrn|sj6LfIQY{5Uu%M?`(7l6671y= zmF{Y(oU4?P*08^RLk%E@6ZOy<$yxgpA&KKTBr zVFg^k&s=71NIl3{SE|DddNVuny8n^E6dpiR(d5pOCbyFGBAUvk@l}*N;a+_CfyF{8 zMZ3Ca+D#@fuIuqaqs3UGZaYoAKu6hGYM4#E;`ZR@{T$HteY5#YBA8mA`tAmBa#O{r zS6WuHTDHt$luk|CC{zra*UROX95Yw7T;odJF6Qbjhczqci>L5N+ibQLoc4g^KnQa@ z2L(=_%SLCD$>`&HN>4<`6UlTUop>S|s~sE1$7xySWZAS#yIO#0*oDeuH9e7z#>&xH z$*RX1RTE0dHqEAESjDPU=0jpd!!cOAQm>hDr)48Q{@e?>dAt6SS#aX>hV6{UXHxM* zI#;z{@yuv<674zD0Xlvkf; z%5qQ{>GAniunV-u)JW)xu$gf1ZS_>I|NKovxZDZB(M4$U7k2rJa8t~`@yp=kwP@#G za`QoT2!_-aANymcZ9wUK0m*hxr;O3y@rov1B^RxnphMAdW_Jyu_zV?H zvj=q*OlLsgeFBFGv23G+cwP9Tg}52PpAmRo;AMfPz&auFuL=7dfgcI{Sn!_-`wM|T z2>em-zY6e>sQJ{+WX@QpozAljI&83=SdDUS$znyx%*<`wHF6c!w-zwuZDb+!7-N@%{bJ5Ehwqcdcj)aA(Wy%E9XL_Mt ztC_g2x>a{f9WP4^k3!*Pw~SfIm29I%i~2uh1aVl3_6bfwr+X!ZIFeB`(&bH{eejBm zI|?VZ|3Bjrh>ikO$mQn_F?siCRG*+w3oqI52=*B12J+?WF6UHz;?F3zmwN1Roz z`L60yBdQfVxWfsPBWg}Bs;7sFvNRcnVkh>WqN_d3Oa56IzPi)X(LWX z%wkudx!+Df4yJNLa}C4qL7~54fqY({#$HfhGrmIiTtS~!CT<}TP&z#{cNz5I>C=hg z6)eh6i!&4sJrt>GAk#ImyDnxQ8`7~)9Juf5*!ZM|(2=O`aiR*W>qTWumICS{e{KB! zYGvZ@5Ar%HW8roX7=NH)6R^6vJbQp*>kC(ujqf4r`Y}cU693d{R{~xy2Py#tu>87hcpph(;oj{D+_4 zAOEi>|Ka$9)f=znCpfco7u@lQ!??oy;@F}2=(?#g=0>tGD}TaVwGY!;(I`GcK4_@! zN)5o}u81cyOjRo>&#GFn4|1xaog+-~{2IW$4wJGB6C-QNr9WVgn7n5kE7Oso7MNv^PXF)hxNHP(87Epk5xo;yVXjbwWjtuB3x*|Og#?6bu^a7*bR z#k=?}5Oyhy*%Jnttf-?smKR(|9Ti>(Osg1#jFf!2@_90_g$$^peU^v2gje1VK&AUf zuD&GPuKW?HAF|vz%;5PmAXEj28YP)N#2j>ZH41ghVnSGC?oQ&QZ$Ku&W!{HO1&>SG zl3}dc3z~AG73qm^na{{hn3hAr336yy*sOe)I43QK`dCc^Y3GUg1}s={+=%_Gm~aN= ziDyP&ZdMZ|tsj%tyU_X?nY{EpXj#5-2DF%ulCKmE3O;Y5;QN}cj#O}*Du zv#O>}S>mZ(f!MBNUhh_rP-kL^nsWz~Z7W?hPkEpAu3t%_oejTucBN8}Z7Y~X-(9aZ zz;~b;iCJi6TNzga>fkQ&VXxgVve;>UcYWCgUN5{{;-SphJ}eNaE^*3KYfAL>E2YjG zmfyZd@o*+Yi66M$#sz??KI8m#ySAS^Igw?7A1n`0^w7hi?4pV<=_!*jh4fA;6O|4 z9^fdx=+@}qAW4qWbdRPvQh|xrwaeQ&v}}hq+M%w&ArnSA9f}$(n@q=}Nu$qCO(<$) zf~iO(4M6?m$Was2V8~*Gvt~MF3O?g9WfT#uW;!dmm*{lP9X)o+9|&0Qfgv$^@1w&s@hVBCC#4aWNtMuJ%`Qy8tV@pF{S1?lFq zUE8-m<=@cVn@wi2))AW8vm9$3Zfy^=v;|r>Z(MLTl-yFPI}GKueP~gdvZ~7M9ziiu zannbG+BbWqMmwuMTV0{Pe-k2{*CBY+l5GADIGg!F>cJ;ly3OB_bGb&8o7Z84?4QCX z8>}s(_Skz|0be%P5G zw)kL|4T##q&HgiQBUqIGnkO9H)-ha;CPHMF^-S6lE{2~hj^SeT#FvJPEiNHgxmeW# z9G%)RTns-(9mB<{Z3~p|CFn?08!~o;uLdr2MR+T489Tx|fy-DCz8AR6Kj8;~%bx;- zhk(mbiv>NPGS|dEDVc!8KfeH{UobNFBwy;L<^4sp1-dcit!BX;a-h_t9GA_q$8Z@_ z=5cheqsJf7rjDYq1bdHXj9@B@t7>EMWO*a79uA~qBm7s9hHnwX0r_v8I>zYNgSv#V zbAtXRLD26Iti~gaqpHx~Dd2vButQHi*%=n}2?75l;1>ju)D?JUNWYsP-v2DY<&2#r zh`0TUz~2%0l)%3buok6D^6LdWO%V3Z6NJ5g5QHCijG00&GQmX*|5z=^e{uk)M^u5$ zH3U)48w9^yz%2sq5b${cy99iRAoLA^|5U(t1iUKvHw8|$NPhfN(3c?|gs&B_Rlsco zVfXt2?-wv5=sAI36!4dV{+7V63ixM1|Es|730M@6@gp4FRVFbi)tQ<8=kd0_o$4OsE$yV_GmKSEex# z$QZ{mEYKIqgjk?Aon`?d_8Gm|XfU3Pq`>0qP;akk3_7_XGn9-PWeWV677Eyd1;VLB z!oX7(NTxDI0B>>=p40FV%Zw2VM$Axx68;qj^(-8Z*CMGXbgCLjt7Rdb(&x@ZF#E^1(fIIiygrcLmqkU;V85c^4)WMQ{ z411r`LJY|Z0e9N#fHAT|_UHwZ_Flo7bm-hP?m%cz8UapA`c4Qa>QEuxbPXsa2j8Cb>?06Kv+>hSDZH zWFpyf6GdAmRHhZ^S`C#+)gA<|(uVVfty4X*N_41OG^jYYHfzvKi6GzwbNM*=R$K`8#v8TvGka16?$2!7%-!_LvLY!iCI70`>qWqTJ2S_1N@ z5SB-uksU36@4V7WT?)V~C?~)uB#*|Yg1Ws@2suaXUCu<%5jfxw0<8|D-7@W~AO|%~ z23nKoaL&EG;-EZ2QikOb>NpbWfr#xzmT-mmey!W>4qd+YS@(TQ=yLZ+@sgfUtb52J z#DwUQ?$94Xu|RZnFz4$mL$VlX717bRX)c&rW(FZPfL4T^BV?5zqRv2{WB1-(cjrF$ zYu75>5eMqH))DO(>cF^bB0@X($Q9@lAAI;#qmn#?c6VIw=uHZvyZ#iD9Qq0-P1ffzX^K9RNmF$@lM3`)CQZ{HJS6#%I$giRq#61x zCKc+RFlnZKl}S(NSC}+Qzr>^>{Q{F_>*tv?M?cG?V*MnOB>h)Z64Vm?9F;8UT>VWd z<*4)Y*QsPx=j%V9Qm(o{KSrf->O#GlO5@cosFbHJ z)61!3QmX?oX24FA6a@ zZuZ|tRl6Cz5<9`n49{ZBP*fL zJH@bE5Om%Q%0q*40v*dk$6AMwW*v}+?6BgkN5{d63y&-h%Zc1K?FbDZnTV&Um`vBf z2TO;@`YHkXM^>uBvSF5RMK+1HAyCC?|2dt^?RVBWDpVlk@p#rVLg-3n^4r(FTw`ACdWDL2$0mbcM=WtlY^l~9i z$6JR_13!X~A4r}7fvvWlh<&isWO(l=yHg8E=={3Bz$e8g&FElV_YoPZ=Gfj9?H+`f_^FBczAJ=+#Kx0vK(`g&^7H6~$aYVV5=nFjXMm0E@C`vuJ|hped_?94 zS1F!iMuu8c;?m459Cq5+!_YlsWk*Pe?jKUO*au%-9Kvqv|9|-i|q)L;1 z;zV~yPS`KXiBL}>C>yZvj8rYj(XqMV$qULOpct`VbdLU$uO6Pq3}5$ci1QHQJp8IR zXu#EUcYn_P#mKJ7WUtU8P?k#z9&vFb;8hIOab&?o4EZ?9!4nv2=E#b_fNKptUZjzVP2Dw+Z;{735M=*G!=i$kN`W5*1iA_ zFqFs9H2iCZrg1bKpJAw&qZzoJp(Pv@;#U|dEYtKvv3me z=xEBt3I?~+LyKu}Jx$<&#~)-2O@sH-1cAZ%jG<}phDjoa`Mf3ktU2#UfTI$;l%aNx z=HeL)o#bd9wlZ{`t<;Xd`1BGi`{^MdA}p`Gl=)>z*XZ;r4y^OID}M zF;8iQTQ4ZX-vII`xta^whSp@v2l59-7Bx>HTTe3g+ArDTN(gMmx6C0JLQ>+}7Hxvx zH~0viJwq!uv~`BI*3h0dv~L;OYC~IYXp0SPzM)BmR%B>}hE`zy{sh-NJS9df(6`Q< zAzaw>m2ig&`lGNWa!C(b`+GnX$zZ_R-v=@i`$6mgmu~Dxc?|&Tq;E)s1o&AGOwv7= z8->moA0eGxCohoxPL--pVT{aP*B0;Iy#Snt~3ph(Yqn-sraJJ=+( zNV`y(UvbqR^m)8wScO38lggDQrMgL}k+wD~es_cK5ZbCWNj|q!=F_}2jbPO5YVd&i zV70GCf#}i(-$B2xT4`+b`BAw~BWX6ew1y^>p^&PS+5-yYAyNIB7nQkcq!+5H5a(Nb zO;V*_X#^Wo)#R$KXE8P@Ud8Wf0G*G_i!9F!Ug@gkd7R#QukVmIy|^)%P4o2)o?0)R z!G=1ex*k=ys_Q&nMKVX*A+f(%sX>0FTJeA&K~2m;t&tG?O@>eb`3HW4SGFUeMHFV) ztkxiG{UTtbExThFrNm%;zSw3do0RM82MbfT7VvjKzdBRjVCp4cd!TIr{o9%P@<5K| zC%x;5)#Gw^|I0AoMM>wbFk?T??-cm`Hq*~?fjW})kU5vad7YK1e{t-bSAxD1YLHqp z%sD40^!LJ?NsMFAPTe((ebA?DEPGNp&H(-^=nst1ds6x+@I_x3hI@>De@Z_D`~c`5 zHAj*k!QARVKby$>yX-XAK=kAaQ$RmIQ@_vDKdyG$z9H^fh_?mw#hGz;r}ORsUhxh3 z7SL}7eMzSO-v4f1-v+-8ugGaBIxMY8_706Z~TY+o^vK7cyAX|ZK1+o>$ zRv=q}Yz49v$X4M0rvfj*e@ytGY0x^Morcy0tq(}YN<`*ZWT}L3jHYRlHsAl_y$9((9}S1YU-e(^{`^B35sAEkvlwDj>1 zQXc}6X=D5=URls?RXN4|%!?==isSeYBs?u9eS!k*z_$i00AL)K{qWE_12 zHfdm>+zbZ8+`||tNSo9a^HUikKcAn}4x}ayq0|f+>64k~GV4=teugrc)3Bor$)*uJ zrDZbgqQNDVBO@RAucDtZh%%hTG_px6CT`K0xk%({YqOu8n@lv$wlsRDws zl~Il}bNVbM4u#ATDd-4#(DA8FXHM-h^EG@ry?{~E{?6wxh6fDGqiqS##YRO?u&hF3 zdq7gO8hrACoo(S;9WH<+j2Lts);rXGy|AF;fNI_Tjat9e@f+^1^L(jfK5JF1 zqFFAMs>N#Ygt^>XDPsr*t~k{esOvN!+Fqk`%Bika&E>Ya+;aQN+l~O!@`S)t-KOKV zspGUe@#Vl8IDQ~JED2pafBvL-Y_mRagF#esxjG1?(mSQ9RjgR0^3oG?!Ol(NW72M2 zA#FFU&1VydJJ=rHd;XZhJwKaI-`3CNk}v)Uk4PUM5i+6#{WTm3U><*ISPpN>$il? zx1`}hEHGkTD^h<+;#G-FiCYqHO1vxap2RODel77QiN8twUE%|Y4;fK^KQ@==WisZ7 z7NuNb#6pFAV9R(N*nd-^3Do&QTmDWjuG0@;d8@vxt>}V0ba#`rB{%z!HgtjvmwXxb&-$ra6Wz&RKDxrIfnaY z`Ud%yR1(O{^0zBd`R!rBtI#P@ez&2Bh0_cdijlJMKLYb87t$>JRwd7%!ae~X?<0uy z!LOC-gU^~e17K+veqS&nN!5+lWYY!`OhAcW0K9flK3;dO8P9hOo4*8|B9-qSl7K8; literal 0 HcmV?d00001 diff --git a/Part2/A4/06_irq/kernel/util.o b/Part2/A4/06_irq/kernel/util.o new file mode 100644 index 0000000000000000000000000000000000000000..128a3372faa7309e42a4b4a6602f2ec252ad2748 GIT binary patch literal 2908 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 literal 0 HcmV?d00001