更改struct proc会导致minix冻结

时间:2015-06-09 23:38:24

标签: c++ c minix

在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

但是当我重新启动时问题仍然存在,它会冻结,如图所示:

enter image description here

但如果删除该行

hash=0;

一切正常

,所以请任何帮助我将不胜感激

0 个答案:

没有答案