From fc9954747183df366d5dca5102229656d012d450 Mon Sep 17 00:00:00 2001 From: Matthias Kruk Date: Wed, 4 Sep 2019 00:12:59 +0900 Subject: [PATCH] Remove object files that were added in error; add current state of the source --- Makefile | 8 +++--- config.h | 2 +- kernel/arch/apic.o | Bin 1332 -> 0 bytes kernel/arch/arch.o | Bin 18956 -> 0 bytes kernel/arch/boot.S | 1 + kernel/arch/boot.o | Bin 632 -> 0 bytes kernel/arch/cpu.o | Bin 2348 -> 0 bytes kernel/arch/cpu32.o | Bin 616 -> 0 bytes kernel/arch/debug.o | Bin 8496 -> 0 bytes kernel/arch/defs.h | 2 +- kernel/arch/entry.o | Bin 2372 -> 0 bytes kernel/arch/i8259.S | 10 +++++-- kernel/arch/i8259.o | Bin 796 -> 0 bytes kernel/arch/init.S | 61 ++++++++++++++++++++++++++++++++-------- kernel/arch/init.o | Bin 3300 -> 0 bytes kernel/arch/interrupt.c | 5 ++-- kernel/arch/interrupt.o | Bin 3204 -> 0 bytes kernel/arch/paging.c | 13 +++++---- kernel/arch/paging.o | Bin 4064 -> 0 bytes kernel/arch/task.S | 4 ++- kernel/arch/task.o | Bin 764 -> 0 bytes kernel/core/core.o | Bin 3196 -> 0 bytes kernel/core/main.c | 31 ++++++++++++-------- kernel/core/main.o | Bin 3192 -> 0 bytes 24 files changed, 97 insertions(+), 40 deletions(-) delete mode 100644 kernel/arch/apic.o delete mode 100644 kernel/arch/arch.o delete mode 100644 kernel/arch/boot.o delete mode 100644 kernel/arch/cpu.o delete mode 100644 kernel/arch/cpu32.o delete mode 100644 kernel/arch/debug.o delete mode 100644 kernel/arch/entry.o delete mode 100644 kernel/arch/i8259.o delete mode 100644 kernel/arch/init.o delete mode 100644 kernel/arch/interrupt.o delete mode 100644 kernel/arch/paging.o delete mode 100644 kernel/arch/task.o delete mode 100644 kernel/core/core.o delete mode 100644 kernel/core/main.o diff --git a/Makefile b/Makefile index 7782996..f463b6e 100644 --- a/Makefile +++ b/Makefile @@ -1,15 +1,15 @@ DEPS = kernel OUTPUT = corax PHONY = $(DEPS) clean qemu -LAYOUT = $(shell setxkbmap -query | sed -nE 's/^layout:.*?([a-z]{2})$/\1/p') +#LAYOUT = $(shell setxkbmap -query | sed -nE 's/^layout:.*?([a-z]{2})$/\1/p') -foo: - $(eval setxkbmap -query | sed -nE 's/^layout:.*?([a-z]{2})$/\1/p') +#foo: +# $(eval setxkbmap -query | sed -nE 's/^layout:.*?([a-z]{2})$/\1/p') all: $(OUTPUT) qemu: - qemu-system-x86_64 -k ja -kernel $(OUTPUT) -m 512 + qemu-system-i386 -k ja -kernel $(OUTPUT) -m 128 -display gtk $(OUTPUT): $(DEPS) mv kernel/corax $(OUTPUT) diff --git a/config.h b/config.h index d0d930f..69b7f4f 100644 --- a/config.h +++ b/config.h @@ -22,7 +22,7 @@ #define CONFIG_KERNEL_STACK_SIZE 4096 #define CONFIG_USER_STACK_SIZE 4096 -#define CONFIG_APIC 1 +#define CONFIG_APIC 0 #define CONFIG_SMP 0 #define CONFIG_SMP_CPUS 1 diff --git a/kernel/arch/apic.o b/kernel/arch/apic.o deleted file mode 100644 index 78dd5e0cbc240101035e2c3f88f8e65a0d924f12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmaJ>O=uHA6n>j*G{#mV_8^KHY+?&)Op1b3ZBuQ9N^>VBxuYlw zNmIy6e-Y6Suba8zxNh>(K`L+im(*~jqkjEvt%xPaKh{q0=-xv%BY0B|!oB{UxU9ZwBA}sIJ0^fE9 zd|3_qUBXxQ)*FXe>MJ4IM*GVNz;+@JRYRaQe0e;%-O3I+iBO~2to66^TUVKguf{*e zH_N|HJndQh_~}b&Ex34^XthxZ;t`>rjb<%DA8y<#_)t?JH(BN6z_-m>e(PLK+3GB> zcdQL(4ckc08Qjg254+zv{!)Zp`o!|5TMcV$w=WM zbj61wQWCnuMW@Ne6DiiA@Y2Pvj_N!@eK{3;#D@ou`NP`3;n@1-7iJ~7w4lt6G^ zAYS1fV&+`)(jx?y1q!0Rfw-#$TOwwMlc(qV@aui}%|1+;k+n5FYnuyNGH;}G(`==z ze8Dtw1&g%VjO_^iM%oh{TFGmso)$7A$CWhGCT9j#Fl4CbjMnn0Tqcvt(#&*P%bRFq zmb6s9K$@keGw4a1(XEteUU&~K&s~9e-x!ZGK0=gbkL&n?`J==a z-obALKFJ>6MW^r-wH7jVavI(?UH@1{ram9F^`cGDnWUYh=(N?k>nQLaJBu9u3l0bk z{{y<15GKP@z=tprf}h7#dw|%7!5S5Vzut(z@+M9qIR#Fdtakwf>!t3!ObDTb?6IA@ ow!#Dk_Zz_Ab@^U#Z?YCbTEV1u90-&3jsdso)&XKt1TS@e0JsYFMF0Q* diff --git a/kernel/arch/arch.o b/kernel/arch/arch.o deleted file mode 100644 index b02a94bff5f2b95a3d2cdddb5c1f000f1b9cff57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18956 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 diff --git a/kernel/arch/cpu.o b/kernel/arch/cpu.o deleted file mode 100644 index b4a094a458345773907b29eb98d1aaff0a4e82ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2348 zcma)7T}&KR6h5;%)TLl|A!}@Gqa!Iz4R*5IBGRTLKpDUUEw=Eab-F*pk1fl(JEMzf zqp-!W8CQuunD}6#Pd@nIgHfX|P})>|@$c1`+Gt`64{G+Y$@-l;b74wo^uV3-_uX^u z{pQ};*Nl-tMNvqKLSfqSh%WE)GMz#lq85sYd;~t@8ZpKzf1D|AsDIw6*X#3FLWsCV z#C^KCGOW5ra}T{u6utZz!oqx|t%u&^$VVdb7Mt%0bCJl--}*|}@2rsB+C%R{HT6*C zb&4*2h=gmzqhGAJhd)Zq)FkTOZ)z8nuQPg4Osnj=5!iDnC?=zg+zH zs*5X5lr4g>t9+?O&V-j}$M!(;9wO(c7vUB1ZUE->qs9i_Ro&UBJGE;0AnK0FrLDIy z44dN?r$+@Kc^5!gE*mvv{!*=uaP*CFyl`(j^i=NU)P?D+Re3_aKGob5@J+Dn=+haP1o(Oo*u4-GZR^b43<1rV~yjUQNZ_a9iJp_3<% zYljA`^mHnxb?Ha-#NlLjN7hOobCQpF0qsa4`DEgWWEbkixhO<=^)x9LBg(#JRb9ft z)ezgy2}mb=>e~}p4E5jNFi;MMA6Kre0jD9{i^2Ktp@W#vbpgR`Aj)zMqIyciO1>>) zzPqWor4*I^WVFf{~SWc^F&N5ga<{)qUb?Zr@p=O>}U#J6=z!s6Bj{iZDk zR+yT%`MbCI!PPT9L=OO=Vcf<7TIiqpL;eirt`&$QzR#*P6cKBcA?EM}=|HnTg&}$8 z`Gr8fHPlE;0iW^y0W-}BCzmlzJ(=iEl8IAy&l6>urS2|$(z4Bb#H8Y$hw!x+@HKN6 z!hyKRnqR$MoSU&zX=uCP=_zRytP8qrm2A?pDLX}ax>zK=FzY#-(0AA;coLI#%7Ftt zGdsf{0n&4`wxtg}Gk&;er!wbJ7~QNXbE1%%u}GgR%sP22@Ba$_N`RJ4>4e4GV}AJz z@Ll7v9d`mTiR15q#61EV6mH%o<}b{jVqZANvJZoQ=Xx<%p2xdjj=3-2RIbPM+c9{K zyuCw#S_q3A>kbUY{}(O+4A+xohGCq8FNOQEbYqBp_`r{$WsdW5A7k5apWFk-?}X=Y zf0j>y(>+r>Imctp*CL3=uYP~&%f3|~C(}1zEJ+ZwTx$h(kmsx5SwoC@<}Z@und{10 sFlh=zoFDe39$pGZn=Bj=uaWEJfn}1^Nw)0RR91 diff --git a/kernel/arch/cpu32.o b/kernel/arch/cpu32.o deleted file mode 100644 index 3562e2dbdad174d356484f394968fd86ccd8e9f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmb<-^>JflWMqH=Mh0dE1do9s0Ln1|E6`wIXJBL4r@-*wUpL#q7ZQhefTZ~sb)GoP zzwQOU;o;z&Gl3%fM%^(g9BG|5_zj{D!%W6bquRy*w4Dh>Av2nL1c0vN0jl7Jssiy9 zfoxGEzCMsGjl^e2E+~ypPc4bhOo20#6AKcPGIKIZGE|$m*1U5;`zNKpLhF0JBX$IRF3v diff --git a/kernel/arch/debug.o b/kernel/arch/debug.o deleted file mode 100644 index 2e598687b93165ec61bdefb29519937443965d27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8496 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 diff --git a/kernel/arch/interrupt.c b/kernel/arch/interrupt.c index 49d3768..05023fd 100644 --- a/kernel/arch/interrupt.c +++ b/kernel/arch/interrupt.c @@ -64,8 +64,8 @@ int _int_handle(stack_frame_t ctx) if(ctx.intn == INT_KEYBOARD) { extern struct cpu _cpu[CONFIG_SMP_CPUS]; - dbg_printf("Rebooting...\n"); - + dbg_printf("Keyboard interrupt\n"); +#if 0 /* hacky reboot: clear IDT entries for * #DF and #GP, then cause a #GP */ _cpu[CPU_ID].cpu_idt[EXC_DOUBLEFAULT].sd_low = 0; @@ -76,6 +76,7 @@ int _int_handle(stack_frame_t ctx) /* this is such a retarded thing to do, I don't see how this * could not cause a triple fault */ asm volatile("ljmp $0x30, $0xfee00020"); /* LEEROY JENKINS!!! */ +#endif } else if(ctx.intn != INT_TIMER) { dbg_printf("Interrupt %u occurred\n", ctx.intn); } diff --git a/kernel/arch/interrupt.o b/kernel/arch/interrupt.o deleted file mode 100644 index c3b4f2b0c9cbac59998cd2eac598c4035fd80e3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3204 zcma)8Uuaup6hBGRt?jxx+o{u4z1S8r+g;LGx4M5eZPQw4wlrzSWR~kqa@%BUlW=px zG8Npo6IZgp@JU6nf)9cN|2)mNL8qcmdr;Veh%d^pMGyw=VOW3X%XgF8Y*W8-?(aM2 z{JwL(Kj-_JH$szR9*>8d=Aj0vX+#&BE1m%Xe(Ioh;ctP?ye*KKrC($An(yYF_4W00 zD_&Sip+5WeVQaH}`vvQ<)!tGlV6Qbr%Jvj|5y7*sZCmZI*ILWA;kI28BZGw#!ga>& zD%sHJ+p|}-06L|E|z4e+Ovw36WyRdYDnn>Mca8&PrHYtLhbzYWB`| zE0tAlcds%W5V5wOZUvUkiwUhZR));Qd+yX0~3qRkr_flgf4n_B?X(WZ8b2J7s&C!P(IIxmHf3k&me~+g%EGmS+61 zsc8Aq08G)PmAl6gb&ZA~!*nD(L0!WU>N+|Gj8fOkD0LkP!v{SKnT|n+KL#8JM#d-_ ziXEe_;0Oqi;~*akQ7|$wqJ&H{YwlM9#h$=mv4vu}f|<@1@=7{m8KzmtSuGSb;@PZ~ z&djT-+CmeKL+L3f*+imXnnsdqE>uhyIV+vbu;WBeezxjWD_N98HfhLA2sEY_7A)iu zmOaJ&Jb?pBXlyb#9#algXB5%r4P{Pn^<>gC^7-0qXEG^0lUy*8is2-u>crIqk(S7s zdQnU03k!ZMvDn99<#*SC7Sb?ItHi(x?ruJqnjozZF4pak9gt3l0_leMA$^blgzw@Y za%KKcmH5-(uhA_=-*W_D0>3^ z`vTAP@5MOI%gys@lsvCDd3Lt?d>2qE3T!+VZoly-*w*x>cX(^#sNLZG`Rf(X1ZPP4 zFV}NEu5ps^y^WYWe|MZ*g(B8}fqiJaFWh)f-WR=^O{!Hu$ZGS^pX*fxod*25TLU$^ zRd_em>6`2HCfX`3(?AbS>k%MdK0Y%K)$_ShYpp@Nl5X9JR%;vvqo^PG79kPebR}e3l$vyls-h@yZbA9NGV_^f9!1 zv3~ar5f>n%FB+t2bA?Po)71XJV1P7`oQt7p#lgMmykTj%gl44*nNw=KNZR=1(c$2v zc64kk7Mj+kgTs>{jgs+sEoWlz9PVDOK$@OQCp06Q-f-0fOV6Yeq~*`#|0R!JtlU5E zgCtI(rJd**tfLua!uQSBL3CK^qf&oK>YCJfKYMY35K17|FzfF~yb9!a-vBw@kBkoy z{Q=~>w}70t88y|6a_nRT|0y8z_euSb)L)i*T+ZBo368#eUB=SBoZ$RRpM1I5AJ|vO% zm-QDVPD+eORDfRm#9$s{O5#OE{8m|Jb#jP);PP|?ing3tB0609x39}8ISDYZQ zb6#$umVi#Yv*=6^u9?3f^VdoaPMs00#GZKgS~dummap_addr + info->mmap_length)) { u32_t attrs; u64_t addr; -/* - dbg_printf("Region: 0x%016llx - 0x%016llx [%u]\n", mmap->addr, mmap->addr + mmap->len, mmap->type); -*/ +#if 1 + dbg_printf("Region: 0x%016llx - 0x%016llx [%u]\n", + mmap->addr, mmap->addr + mmap->len, mmap->type); +#endif attrs = PAGE_ATTR_SIZE | PAGE_ATTR_WRITABLE | PAGE_ATTR_PRESENT; /* disable caching on reserved memory areas */ @@ -152,7 +153,9 @@ void* pg_init(struct multiboot_info *info) { pd = (page_table_t*)cr3; - for(addr = mmap->addr & ~(PAGE_SIZE_LARGE - 1); addr < (mmap->addr + mmap->len); addr += PAGE_SIZE_LARGE) { + for(addr = mmap->addr & ~(PAGE_SIZE_LARGE - 1); + addr < (mmap->addr + mmap->len); + addr += PAGE_SIZE_LARGE) { pd->pt_entries[addr >> 22] = (u32_t)addr | attrs; } @@ -271,7 +274,7 @@ void* pg_init(struct multiboot_info *info) { */ _kernel_cr3 = (u32_t)cr3; - dbg_printf("Enabling %s paging\n", _str_pg_mode[_pg_flags & 0x3]); + dbg_printf("Enabling %s paging\n", _str_pg_mode[_pg_flags & PG_MODE_MASK]); return((void*)(cr3 | _pg_flags)); } diff --git a/kernel/arch/paging.o b/kernel/arch/paging.o deleted file mode 100644 index 7e5594ce157ae24814ca7b5c6ceaf19a7f2e394f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4064 zcma)8e{7Uz9e>`t>*%jhS^+Ve^k&9n0%r>?f}2^(`ob{nI0vU>vwOW>U)n-@t#@xN zEJG-7TX=kS+QiMo=n^y}E^&#tkYy^%dTm)N)T|7Q-9l#38rxp~aIwjVAv-_c=Y8J0 zTcOV9@;u+4&-d5!e4qDD==HlbO=IrRn3rWK#%7BhNtFZ}*=Japlox^~y&}vI|A)P> zZuWLMoz5fPn7)XWiIcSU4|SK>3;BorhyAmpY>%$u`l8Sm|2Tqu`|X9*cWkte7c*CM2&Bq| zJ|lvwL`|`#PnCvl5DDcOZPFg{L7nymE9CCY+Ast=hkGXM<2P8(y0HNtnZOYGlnCA6 z`gtC@kWzf7qUT9GreAQVR~+h90?wY2S0_u8^QAn=ukmp{K&K|;nw<7f`F+9J#K-A0 zRevB~3dyHE?X_=d)Y+?*Ym@V91teFB8Ye`nqC9by+SIMcrARolm z^V_*U0h4~uF7Z2^>vwLSR8wVHpPXOs+z=$h^+7&mPcyE+C_*qYm{>h5JmM)IAG1GV z{LNNmkMI{6?{B9tE^&B9IebCr7wvKF_oyZl zjb}x}8ScBn4_xu3s+Ze(Qf=*%v7U5ewg07YJ?n2xa(<1I;D$63=lw@1TA5}4^Ax^5 zA)WHEqT@sS%`TEo7U`qB-y&(~qL4d8f+XT)V)Ei){_SC(JR|@AKBL%Ubb<14KHsah zkB_pFfm7&|)WeB^2oepp{toMMZIbd0rnEsi%1?PTN>0ClI*;j-RJ>HJaJo4(iRMrK z&7)0V*k(gY&Klwo{*sy+#*G zK6sgHFZv{nlSXUzV0&(B%ibu`uP4mKXPz}0M<8xDTf&iJ{=KzZwr%xybT*qTSgSjT zgtSHW^*BPB!LKfqO-@}+}7;h>u-TZ zs~IyNV|p~))J_{W#FYtrpt@R&wrHD$s2ILljNOO%MNHv)a70u+IKuWk{`gn@8|%!b zws6$HJ+LiMv88gyre?EgXLsep4#U5-qVg*h)s@?^Z#5j-^d{i+F>-03nc-zCGB_b#?4+*=4a!9WT?^>e%>#`F(Da2N zAKD%J-RL01@XCKD4(`zRW(g@@xrC-jv*VNhgvg$UJ)^`FQyDmIS#?(CDP$*dXv*QG zCG^=P^shj>XHNEhlOr$l6iJ!OB75(+1R&AbwlI#Ev8dT@L}J^RfvbP0J=_v!#-Uia z!!$a=UCf9|9K5&{BMsS}Mpx^xxDjq|?~E|RIMf}D7)GG7a@$U7pXRn0?3rQ9gzV^! z?E!S0(G@YQ*6!$$K=>##_SEm&RallkGcuK(^ zC`e~O@?R?WI-n26-UamFQJ4ZG`yVLzKNZ}CW+8u1EBIptf2!bl1z%V2V}b>U+vC8M z3a$n8;ej|vH0*s>!4DMt0@{rB1r)4S@N0my@B2h!-;Wf03y|`8N6~*)@UH~X0&@gm z??XV}=NbEtk|Qmqfe%v>${qqu^(DR^(1Vz26l_-TMS^IRR|uA13B-?eSm7o>E9Ssf z7mJzg0n0pUu|RX!3bQ~{JkA2KPKO{NVF5yL;lk}qDhKXzEpWM(mEp<+BAp!_W)yz# zsW1b3o(yflg^L`4GuSp;oqNv$EwRq-E`xiT*jxF$f{~rB|73k^K#rw8wp^8**%cov}yn zF6p~^LFmc%f|M}G9*qi2vWH`rgY@XU-Qns{ez|^Uma(@3dbxQl6fx!pk9<=+ZXWf( z$=*H6@gnTGzQC3;f~^X7^=>Vr*QfL-9~!rz7jRIyk}sO{{Uzv*FMaY8l#%@c3Z&=O zWi#|HxSIgoSYHO7n{P3iX(M=)FMVCyd~ #include "defs.h" +#define CPU_SIZE (TSS_OFFSET + TSS_SIZE + 4) +#define CUR_TASK (TSS_OFFSET + TSS_SIZE) .extern _cpu .global _task_prepare diff --git a/kernel/arch/task.o b/kernel/arch/task.o deleted file mode 100644 index 9e4cd055ad209bd5acbfb90e0ca2a37f77b6114e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 764 zcma)4F-yZx5WbkywxG0bf`UOK7L_1a!ETXSQS2bCg;Ir>)Ac_zPV1 zKPZAYWK`&;AWnk+z)8G|d72hPKe&GP<-U9GlIw9Uza&W#2uL8qj{>+3MA|o`AO=w= z@0AXyrIL}ul$^tU(s*oojtcES||P!^`7WgbWRNT26Bg22BqVjlBjTKmsvVL}$ZPn4)lRsaA1 diff --git a/kernel/core/core.o b/kernel/core/core.o deleted file mode 100644 index 3fb2790a0c198c88586878f81d8b1f604435f679..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3196 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 -- 2.47.3