資源簡介
linux-2.6.11.12內核源碼,帶有注釋,如果想學習linux內核可以參考。
代碼片段和文件信息
/*
?*?arch/alpha/boot/bootp.c
?*
?*?Copyright?(C)?1997?Jay?Estabrook
?*
?*?This?file?is?used?for?creating?a?bootp?file?for?the?Linux/AXP?kernel
?*
?*?based?significantly?on?the?arch/alpha/boot/main.c?of?Linus?Torvalds
?*/
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?“ksize.h“
extern?unsigned?long?switch_to_osf_pal(unsigned?long?nr
struct?pcb_struct?*?pcb_va?struct?pcb_struct?*?pcb_pa
unsigned?long?*vptb);
extern?void?move_stack(unsigned?long?new_stack);
struct?hwrpb_struct?*hwrpb?=?INIT_HWRPB;
static?struct?pcb_struct?pcb_va[1];
/*
?*?Find?a?physical?address?of?a?virtual?object..
?*
?*?This?is?easy?using?the?virtual?page?table?address.
?*/
static?inline?void?*
find_pa(unsigned?long?*vptb?void?*ptr)
{
unsigned?long?address?=?(unsigned?long)?ptr;
unsigned?long?result;
result?=?vptb[address?>>?13];
result?>>=?32;
result?<<=?13;
result?|=?address?&?0x1fff;
return?(void?*)?result;
}
/*
?*?This?function?moves?into?OSF/1?pal-code?and?has?a?temporary
?*?PCB?for?that.?The?kernel?proper?should?replace?this?PCB?with
?*?the?real?one?as?soon?as?possible.
?*
?*?The?page?table?muckery?in?here?depends?on?the?fact?that?the?boot
?*?code?has?the?L1?page?table?identity-map?itself?in?the?second?PTE
?*?in?the?L1?page?table.?Thus?the?L1-page?is?virtually?addressable
?*?itself?(through?three?levels)?at?virtual?address?0x200802000.
?*/
#define?VPTB ((unsigned?long?*)?0x200000000)
#define?L1 ((unsigned?long?*)?0x200802000)
void
pal_init(void)
{
unsigned?long?i?rev;
struct?percpu_struct?*?percpu;
struct?pcb_struct?*?pcb_pa;
/*?Create?the?dummy?PCB.??*/
pcb_va->ksp?=?0;
pcb_va->usp?=?0;
pcb_va->ptbr?=?L1[1]?>>?32;
pcb_va->asn?=?0;
pcb_va->pcc?=?0;
pcb_va->unique?=?0;
pcb_va->flags?=?1;
pcb_va->res1?=?0;
pcb_va->res2?=?0;
pcb_pa?=?find_pa(VPTB?pcb_va);
/*
?*?a0?=?2?(OSF)
?*?a1?=?return?address?but?we?give?the?asm?the?vaddr?of?the?PCB
?*?a2?=?physical?addr?of?PCB
?*?a3?=?new?virtual?page?table?pointer
?*?a4?=?KSP?(but?the?asm?sets?it)
?*/
srm_printk(“Switching?to?OSF?PAL-code?..?“);
i?=?switch_to_osf_pal(2?pcb_va?pcb_pa?VPTB);
if?(i)?{
srm_printk(“failed?code?%ld\n“?i);
__halt();
}
percpu?=?(struct?percpu_struct?*)
(INIT_HWRPB->processor_offset?+?(unsigned?long)?INIT_HWRPB);
rev?=?percpu->pal_revision?=?percpu->palcode_avail[2];
srm_printk(“Ok?(rev?%lx)\n“?rev);
tbia();?/*?do?it?directly?in?case?we?are?SMP?*/
}
static?inline?void
load(unsigned?long?dst?unsigned?long?src?unsigned?long?count)
{
memcpy((void?*)dst?(void?*)src?count);
}
/*
?*?Start?the?kernel.
?*/
static?inline?void
runkernel(void)
{
__asm__?__volatile__(
“bis?%0%0$27\n\t“
“jmp?($27)“
:?/*?no?outputs:?it?doesn‘t?even?return?*/
:?“r“?(START_ADDR));
}
extern?char?_end;
#define?KERNEL_ORIGIN?\
((((unsigned?long)&_end)?+?51
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????29221??2012-08-26?09:59??linux-2.6.11.12\.config
?????文件?????????55??2012-08-26?09:59??linux-2.6.11.12\.tmp_versions\cytherm.mod
?????文件?????????47??2012-08-26?09:59??linux-2.6.11.12\.tmp_versions\dpt_i2o.mod
?????文件?????????41??2012-08-26?09:59??linux-2.6.11.12\.tmp_versions\dummy.mod
?????文件?????????61??2012-08-26?09:59??linux-2.6.11.12\.tmp_versions\firmware_class.mod
?????文件?????????49??2012-08-26?09:59??linux-2.6.11.12\.tmp_versions\ibm_acpi.mod
?????文件?????????67??2012-08-26?09:59??linux-2.6.11.12\.tmp_versions\intel-mch-agp.mod
?????文件?????????39??2012-08-26?09:59??linux-2.6.11.12\.tmp_versions\ipr.mod
?????文件?????????65??2012-08-26?09:59??linux-2.6.11.12\.tmp_versions\phidgetservo.mod
?????文件?????????39??2012-08-26?09:59??linux-2.6.11.12\.tmp_versions\s2io.mod
?????文件?????????49??2012-08-26?09:59??linux-2.6.11.12\.tmp_versions\sata_sis.mod
?????文件?????????49??2012-08-26?09:59??linux-2.6.11.12\.tmp_versions\sata_sx4.mod
?????文件?????????65??2012-08-26?09:59??linux-2.6.11.12\.tmp_versions\touchkitusb.mod
?????文件?????????43??2012-08-26?09:59??linux-2.6.11.12\.tmp_versions\video.mod
?????文件??????????2??2012-08-26?09:58??linux-2.6.11.12\.version
?????文件????????501??2012-08-26?10:01??linux-2.6.11.12\arch\alpha\boot\bootloader.lds
?????文件???????5686??2012-08-26?10:01??linux-2.6.11.12\arch\alpha\boot\bootp.c
?????文件??????13296??2012-08-26?10:01??linux-2.6.11.12\arch\alpha\boot\bootpz.c
?????文件???????1809??2012-08-26?10:01??linux-2.6.11.12\arch\alpha\boot\head.S
?????文件???????4358??2012-08-26?10:01??linux-2.6.11.12\arch\alpha\boot\main.c
?????文件???????3571??2012-08-26?10:01??linux-2.6.11.12\arch\alpha\boot\Makefile
?????文件???????5141??2012-08-26?10:01??linux-2.6.11.12\arch\alpha\boot\misc.c
?????文件???????3536??2012-08-26?10:01??linux-2.6.11.12\arch\alpha\boot\tools\mkbb.c
?????文件???????6105??2012-08-26?10:01??linux-2.6.11.12\arch\alpha\boot\tools\objstrip.c
?????文件??????20435??2012-08-26?10:01??linux-2.6.11.12\arch\alpha\defconfig
?????文件??????18449??2012-08-26?10:01??linux-2.6.11.12\arch\alpha\Kconfig
?????文件???????2006??2012-08-26?10:01??linux-2.6.11.12\arch\alpha\Kconfig.debug
?????文件???????5986??2012-08-26?10:01??linux-2.6.11.12\arch\alpha\kernel\alpha_ksyms.c
?????文件???????1427??2012-08-26?10:01??linux-2.6.11.12\arch\alpha\kernel\asm-offsets.c
?????文件???????1530??2012-08-26?10:01??linux-2.6.11.12\arch\alpha\kernel\console.c
............此處省略19380個文件信息
- 上一篇:labview視覺資料
- 下一篇:15000用戶頭像,最牛真實頭像,測試模擬用頭像
評論
共有 條評論