《操作系统设计与实现》Minix 学习 问题

《操作系统设计与实现》Minix源码学习问题,希望高手指教,非常感谢微笑


File: include/timers.h

/* Used when the timer is not active. */

#define TMR_NEVER ((clock_t) -1 < 0) ? ((clock_t) LONG_MAX) : ((clock_t) -1)

#undef TMR_NEVER

#define TMR_NEVER ((clock_t) LONG_MAX)

Q1这句话执行后TMR_NEVER的结果是啥?为什么这样做?

File: include/sys/ioctl.h

#ifndef _S_IOCTL_H

#define _S_IOCTL_H

Q2:不太清楚防护宏到底怎样写才是标准??

File: include/sys/ioc_disk.h

#define DIOCSETP _IOW(’d’, 3, struct partition)

执行时只是直接替换吧,定义好奇怪。。

File: include/minix/sys_config.h

#ifndef _MINIX_MACHINE

error "In <minix/sys_config.h> please define _MINIX_MACHINE"//         Q3:是这样用吗??有问题吧

#endif

File: kernel/priv.h中有

#if (NR_BOOT_PROCS > NR_SYS_PROCS)

#error NR_SYS_PROCS must be larger than NR_BOOT_PROCS

#endif

File: include/minix/ipc.h

/* Hide names to avoid name space pollution. */

#define echo _echo

#define notify _notify

#define sendrec _sendrec

Q4:如何达到avoid name space pollution  ??

File: include/minix/syslib.h

/* Shorthands for sys_sdevio() system call. */

#define sys_insb(port, proc_nr, buffer, count) \

sys_sdevio(DIO_INPUT, port, DIO_BYTE, proc_nr, buffer, count)

#define sys_insw(port, proc_nr, buffer, count) \

sys_sdevio(DIO_INPUT, port, DIO_WORD, proc_nr, buffer, count)

#define sys_outsb(port, proc_nr, buffer, count) \

sys_sdevio(DIO_OUTPUT, port, DIO_BYTE, proc_nr, buffer, count)

Q5:是个啥意思呢??为什么这样做?程序编译时直接替换就行了,是吧?

File: kernel/proto.h

/* Exception handlers (real or protected mode), in numerical order. */

void _PROTOTYPE( int00, (void) ), _PROTOTYPE( divide_error, (void) );

void _PROTOTYPE( int01, (void) ), _PROTOTYPE( single_step_exception, (void) );

Q6:以上的声明没有问题吗?好像把两句写到一起了吧。。

void _PROTOTYPE( inval_tss, (void) );//这样肯定对的。

File: kernel/glo.h

extern struct boot_image image[]; /* system image processes */

extern char *t_stack[]; /* taskstackspace */

extern struct segdesc_s gdt[]; /* global descriptor table */

Q7:因为声明不为变量分配空间,所以上面的写法正确 ?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值