文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>zhcon源码中对vga驱动的处理

zhcon源码中对vga驱动的处理

时间:2007-04-24  来源:hauto

  linux启动时,若grub引导命令行下不指定"vga="参数,则启动后不支持framebuffer设备 在/dev目录下不会有fb*设备文件(注:即udev没有在/dev下创建该设备,该设备内核不支持) 此时,zhcon将使用bios提供的中断向量int 10h,设置显示模式。     其代码中,包含了在用户进程中调用bios中断处理,用到了系统调用 int 0x80 见代码: lrmi_vm86(struct vm86_struct *vm)  {  int r;  asm volatile (  "int $0x80"   : "=a" (r)   : "0" (113), "b" (vm));  return r;  }   首先将113赋给寄存器eax(eax为调用号),vm赋给ebx,然后调用 int 0x80; 实际上,就是调用sys_vm86old   vm(为vm86_struct结构)中,regs.cs regs.ip事先赋为bios中中断向量10h的调用 地址 见 get_int_seg() 和 get_int_off(int i) get_int_seg(int i) //i即为要调用的中断向量  {  return *(unsigned short *)(i * 4 + 2);  }
static inline unsigned int
get_int_off(int i)  {  return *(unsigned short *)(i * 4);  } 系统调用sys_vm86old处理完,从内核返回时将regs->cs regs->ip赋给 cs ip. 用户进程就从cs ip 处执行(这里就是执行bios中断处理)。
相关阅读 更多 +
排行榜 更多 +
风雷

风雷

角色扮演 下载
蜘蛛战士模拟

蜘蛛战士模拟

动作格斗 下载
仙栎日语

仙栎日语

学习教育 下载