📄 exec.c
字号:
#include "u.h"#include "mem.h"#include "dat.h"#include "fns.h"#include "lib.h"uchar pcbpage[64*1024+sizeof(PCB)];PCB *pcb;void (*kentry)(Bootconf*);voidgokernel(void){ (*kentry)(&conf);}voidkexec(ulong entry){ uvlong pcbb, paltype; pcb = (PCB*)(((ulong)pcbpage+0xffff) & ~0xffff); /* page align, even on 64K page Alphas */ memset(pcb, 0, sizeof(PCB)); pcb->ksp = (uvlong)&entry; pcb->ptbr = getptbr(); pcb->fen = 1; conf.pcb = pcb; pcbb = paddr((uvlong)pcb); kentry = (void(*)(Bootconf*))entry; paltype = 2; /* OSF/1 please */ switch (swppal(paltype, (uvlong)gokernel, pcbb, hwrpb->vptb, pcb->ksp)) { case 1: panic("unknown PALcode variant"); case 2: panic("PALcode variant not loaded"); default: panic("weird return status from swppal"); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -