阅读:1172回复:0
PCI在C语言环境下的驱动程序??
小弟在C语言下编写PCI设备的驱动程序,参考书上其中有一段:
#include<dos.h> #include<stddef.h> #include<amcc.h> int pci_bios_present(byte *hardware_mechanism, word *interface_level_version, byte *last_pci_bus_number) { int ret_status; byte bios_present_status; dword pci_signature; word ax,bx,cx,flags; _AH=PCI_FUNCTION_ID; _AL=PCI_BIOS_PRESENT; geninterrup(0x1a); ax=AX; bx=BX; cx=CX; pci_signature=_EDX; flags=_FLAGS; bios_present_status=HIGH_Byte(ax); if((flags&CARRY_FLAG)==0) { if((pci_signature&0xff)==\'p\'&& ((pci_signature>>8)&0xff)==\'c\'&& ((pci_signature>>16&0xff)==\'i\'&& ((pci_signature>>24)&0xff)==\' \')) { ret_status=SUCCESSFUL; if(hardware_mechanism!=NULL) { *hardware_mechanism=LOW_Byte(ax); *interface_level_version=bx; *last_pci_bus_number=LOW_Byte(cx); } } } else ret_status=NOT_SUCCESSFUL; } 小弟有若干问题不解,希望论坛上的高手能为小弟解惑! 1 对于其中_AH,_AL,_FLAGS等寄存器在哪个库函数中才能找到初始化啊?好象调用的库函数中没有对寄存器的定义 2 geninterrup(0x1a);这个中断调用函数C语言中不认,应该怎么应用? |
|