内核的全局变量初始化

时间:2015-03-22 15:54:48

标签: variables initialization kernel global minix

我正在尝试改变Minix203中的调度机制。我出于某种原因需要全局变量

unsigned short QuantTime[3] = {1,1,1};

我把它放在/usr/src/kernel/proc.c文件中,然后添加

extern unsigned short QuantTime[3];

到/usr/src/kernel/proc.h

我做了一个从数组中获取值的系统调用,但是即使我用1初始化它,数组仍然保持初始化为0.

系统调用运行良好,因为使用另一个,我可以在此数组中设置值,并再次读取它们以获得预期结果。

我以这种方式进行系统调用: 测试程序 - > _syscall - > _taskcall - >在/usr/src/kernel/system.c中我得到了值

如何初始化此数组?

2 个答案:

答案 0 :(得分:0)

extern int var = 0;
int main(void)
{
 var = 10;
 return 0;
}

当extern与变量一起使用时,它只声明未定义。 但是作为一个例外,当一个extern变量被初始化声明时(就像你的情况一样),它也被视为变量的定义。

答案 1 :(得分:0)

似乎其他地方出了问题。我拿了一个新版本的minix 2.0.3并没有更多的麻烦这个阵列。