linux下如何操作64位的 io端口

printf(" addr:0x%x val:0x%x \r\n", addr,val);
outb_p(val,addr);


printf(" addr:0x%x val:0x%x \r\n", addr,val);
outw_p(val,addr);



int val = inw(reg);
printf(" addr:0x%x val:0x%x \r\n", reg,val);
return val;

这样操作64位的IO端口有问题?

自己填写代码CSDN审核太多规则了,太麻烦了

static void WriteIoPortByte(int addr,int val){
printf(" addr:0x%x val:0x%x \r\n", addr,val);
outb_p(val,addr);
}

static void WriteIoPortDword(int addr,int val){
printf(" addr:0x%x val:0x%x \r\n", addr,val);
outw_p(val,addr);
}

static int ReadIoPortDword(int reg){
int val = inw(reg);
printf(" addr:0x%x val:0x%x \r\n", reg,val);
return val;
}