在minix 3.1.2a中,我在 struct proc
的末尾添加了一个属性“ hash ”struct proc{
.
.
int p_endpoint; /* endpoint number, generation-aware */
#if DEBUG_SCHED_CHECK
int p_ready, p_found;
#endif
*int hash;*
}
然后,在 main()的 main.c 中我初始化了它:
for (rp = BEG_PROC_ADDR, i = -NR_TASKS; rp < END_PROC_ADDR; ++rp, ++i) {
rp->p_rts_flags = SLOT_FREE; /* initialize free slot */
rp->p_nr = i; /* proc number from ptr */
rp->p_endpoint = _ENDPOINT(0, rp->p_nr); /* generation no. 0 */
(pproc_addr + NR_TASKS)[i] = rp; /* proc ptr from number */
rp->hash=1;
}
所以重建没有问题,
现在在 proc.c 中,在 pick_proc()中,如果我尝试编写设置“hash”值的代码,如:
if(hash==1)
hash=0;
现在,我尝试了所有编译选项
make new world
make fresh install
make clean hdboot
make image
但是当我重新启动时问题仍然存在,它会冻结,如图所示:
但如果删除该行
hash=0;
一切正常
,所以请任何帮助我将不胜感激