u8 val = 0;
if (addr >= 0xC0000 && addr <= _BE_env.biosmem_limit) {
- val = *(u8*)(_BE_env.biosmem_base + addr - 0xC0000);
- }
+ val = *(u8*)(_BE_env.biosmem_base + addr - 0xC0000);
+ }
else if (addr >= 0xA0000 && addr <= 0xFFFFF) {
- val = readb(_BE_env.busmem_base, addr - 0xA0000);
- }
+ val = readb(_BE_env.busmem_base, addr - 0xA0000);
+ }
else if (addr > M.mem_size - 1) {
DB( printk("mem_read: address %#lx out of range!\n", addr);)
- HALT_SYS();
- }
+ HALT_SYS();
+ }
else {
- val = *(u8*)(M.mem_base + addr);
- }
+ val = *(u8*)(M.mem_base + addr);
+ }
DB( if (DEBUG_MEM())
- printk("%#08x 1 -> %#x\n", addr, val);)
+ printk("%#08x 1 -> %#x\n", addr, val);)
return val;
}
if (addr >= 0xC0000 && addr <= _BE_env.biosmem_limit) {
#ifdef __BIG_ENDIAN__
- if (addr & 0x1) {
- addr -= 0xC0000;
- val = ( *(u8*)(_BE_env.biosmem_base + addr) |
- (*(u8*)(_BE_env.biosmem_base + addr + 1) << 8));
- }
- else
+ if (addr & 0x1) {
+ addr -= 0xC0000;
+ val = ( *(u8*)(_BE_env.biosmem_base + addr) |
+ (*(u8*)(_BE_env.biosmem_base + addr + 1) << 8));
+ }
+ else
#endif
- val = *(u16*)(_BE_env.biosmem_base + addr - 0xC0000);
- }
+ val = *(u16*)(_BE_env.biosmem_base + addr - 0xC0000);
+ }
else if (addr >= 0xA0000 && addr <= 0xFFFFF) {
#ifdef __BIG_ENDIAN__
- if (addr & 0x1) {
- addr -= 0xA0000;
- val = ( readb(_BE_env.busmem_base, addr) |
- (readb(_BE_env.busmem_base, addr + 1) << 8));
- }
- else
+ if (addr & 0x1) {
+ addr -= 0xA0000;
+ val = ( readb(_BE_env.busmem_base, addr) |
+ (readb(_BE_env.busmem_base, addr + 1) << 8));
+ }
+ else
#endif
- val = readw(_BE_env.busmem_base, addr - 0xA0000);
- }
+ val = readw(_BE_env.busmem_base, addr - 0xA0000);
+ }
else if (addr > M.mem_size - 2) {
DB( printk("mem_read: address %#lx out of range!\n", addr);)
- HALT_SYS();
- }
+ HALT_SYS();
+ }
else {
#ifdef __BIG_ENDIAN__
- if (addr & 0x1) {
- val = ( *(u8*)(M.mem_base + addr) |
- (*(u8*)(M.mem_base + addr + 1) << 8));
- }
- else
+ if (addr & 0x1) {
+ val = ( *(u8*)(M.mem_base + addr) |
+ (*(u8*)(M.mem_base + addr + 1) << 8));
+ }
+ else
#endif
- val = *(u16*)(M.mem_base + addr);
- }
+ val = *(u16*)(M.mem_base + addr);
+ }
DB( if (DEBUG_MEM())
- printk("%#08x 2 -> %#x\n", addr, val);)
+ printk("%#08x 2 -> %#x\n", addr, val);)
return val;
}
if (addr >= 0xC0000 && addr <= _BE_env.biosmem_limit) {
#ifdef __BIG_ENDIAN__
- if (addr & 0x3) {
- addr -= 0xC0000;
- val = ( *(u8*)(_BE_env.biosmem_base + addr + 0) |
- (*(u8*)(_BE_env.biosmem_base + addr + 1) << 8) |
- (*(u8*)(_BE_env.biosmem_base + addr + 2) << 16) |
- (*(u8*)(_BE_env.biosmem_base + addr + 3) << 24));
- }
- else
+ if (addr & 0x3) {
+ addr -= 0xC0000;
+ val = ( *(u8*)(_BE_env.biosmem_base + addr + 0) |
+ (*(u8*)(_BE_env.biosmem_base + addr + 1) << 8) |
+ (*(u8*)(_BE_env.biosmem_base + addr + 2) << 16) |
+ (*(u8*)(_BE_env.biosmem_base + addr + 3) << 24));
+ }
+ else
#endif
- val = *(u32*)(_BE_env.biosmem_base + addr - 0xC0000);
- }
+ val = *(u32*)(_BE_env.biosmem_base + addr - 0xC0000);
+ }
else if (addr >= 0xA0000 && addr <= 0xFFFFF) {
#ifdef __BIG_ENDIAN__
- if (addr & 0x3) {
- addr -= 0xA0000;
- val = ( readb(_BE_env.busmem_base, addr) |
- (readb(_BE_env.busmem_base, addr + 1) << 8) |
- (readb(_BE_env.busmem_base, addr + 2) << 16) |
- (readb(_BE_env.busmem_base, addr + 3) << 24));
- }
- else
+ if (addr & 0x3) {
+ addr -= 0xA0000;
+ val = ( readb(_BE_env.busmem_base, addr) |
+ (readb(_BE_env.busmem_base, addr + 1) << 8) |
+ (readb(_BE_env.busmem_base, addr + 2) << 16) |
+ (readb(_BE_env.busmem_base, addr + 3) << 24));
+ }
+ else
#endif
- val = readl(_BE_env.busmem_base, addr - 0xA0000);
- }
+ val = readl(_BE_env.busmem_base, addr - 0xA0000);
+ }
else if (addr > M.mem_size - 4) {
DB( printk("mem_read: address %#lx out of range!\n", addr);)
- HALT_SYS();
- }
+ HALT_SYS();
+ }
else {
#ifdef __BIG_ENDIAN__
- if (addr & 0x3) {
- val = ( *(u8*)(M.mem_base + addr + 0) |
- (*(u8*)(M.mem_base + addr + 1) << 8) |
- (*(u8*)(M.mem_base + addr + 2) << 16) |
- (*(u8*)(M.mem_base + addr + 3) << 24));
- }
- else
+ if (addr & 0x3) {
+ val = ( *(u8*)(M.mem_base + addr + 0) |
+ (*(u8*)(M.mem_base + addr + 1) << 8) |
+ (*(u8*)(M.mem_base + addr + 2) << 16) |
+ (*(u8*)(M.mem_base + addr + 3) << 24));
+ }
+ else
#endif
- val = *(u32*)(M.mem_base + addr);
- }
+ val = *(u32*)(M.mem_base + addr);
+ }
DB( if (DEBUG_MEM())
- printk("%#08x 4 -> %#x\n", addr, val);)
+ printk("%#08x 4 -> %#x\n", addr, val);)
return val;
}
u8 val)
{
DB( if (DEBUG_MEM())
- printk("%#08x 1 <- %#x\n", addr, val);)
+ printk("%#08x 1 <- %#x\n", addr, val);)
if (addr >= 0xC0000 && addr <= _BE_env.biosmem_limit) {
- *(u8*)(_BE_env.biosmem_base + addr - 0xC0000) = val;
- }
+ *(u8*)(_BE_env.biosmem_base + addr - 0xC0000) = val;
+ }
else if (addr >= 0xA0000 && addr <= 0xFFFFF) {
- writeb(val, _BE_env.busmem_base, addr - 0xA0000);
- }
+ writeb(val, _BE_env.busmem_base, addr - 0xA0000);
+ }
else if (addr > M.mem_size-1) {
DB( printk("mem_write: address %#lx out of range!\n", addr);)
- HALT_SYS();
- }
+ HALT_SYS();
+ }
else {
- *(u8*)(M.mem_base + addr) = val;
- }
+ *(u8*)(M.mem_base + addr) = val;
+ }
}
/****************************************************************************
u16 val)
{
DB( if (DEBUG_MEM())
- printk("%#08x 2 <- %#x\n", addr, val);)
+ printk("%#08x 2 <- %#x\n", addr, val);)
if (addr >= 0xC0000 && addr <= _BE_env.biosmem_limit) {
#ifdef __BIG_ENDIAN__
- if (addr & 0x1) {
- addr -= 0xC0000;
- *(u8*)(_BE_env.biosmem_base + addr + 0) = (val >> 0) & 0xff;
- *(u8*)(_BE_env.biosmem_base + addr + 1) = (val >> 8) & 0xff;
- }
- else
+ if (addr & 0x1) {
+ addr -= 0xC0000;
+ *(u8*)(_BE_env.biosmem_base + addr + 0) = (val >> 0) & 0xff;
+ *(u8*)(_BE_env.biosmem_base + addr + 1) = (val >> 8) & 0xff;
+ }
+ else
#endif
- *(u16*)(_BE_env.biosmem_base + addr - 0xC0000) = val;
- }
+ *(u16*)(_BE_env.biosmem_base + addr - 0xC0000) = val;
+ }
else if (addr >= 0xA0000 && addr <= 0xFFFFF) {
#ifdef __BIG_ENDIAN__
- if (addr & 0x1) {
- addr -= 0xA0000;
- writeb(val >> 0, _BE_env.busmem_base, addr);
- writeb(val >> 8, _BE_env.busmem_base, addr + 1);
- }
- else
+ if (addr & 0x1) {
+ addr -= 0xA0000;
+ writeb(val >> 0, _BE_env.busmem_base, addr);
+ writeb(val >> 8, _BE_env.busmem_base, addr + 1);
+ }
+ else
#endif
- writew(val, _BE_env.busmem_base, addr - 0xA0000);
- }
+ writew(val, _BE_env.busmem_base, addr - 0xA0000);
+ }
else if (addr > M.mem_size-2) {
DB( printk("mem_write: address %#lx out of range!\n", addr);)
- HALT_SYS();
- }
+ HALT_SYS();
+ }
else {
#ifdef __BIG_ENDIAN__
- if (addr & 0x1) {
- *(u8*)(M.mem_base + addr + 0) = (val >> 0) & 0xff;
- *(u8*)(M.mem_base + addr + 1) = (val >> 8) & 0xff;
- }
- else
+ if (addr & 0x1) {
+ *(u8*)(M.mem_base + addr + 0) = (val >> 0) & 0xff;
+ *(u8*)(M.mem_base + addr + 1) = (val >> 8) & 0xff;
+ }
+ else
#endif
- *(u16*)(M.mem_base + addr) = val;
- }
+ *(u16*)(M.mem_base + addr) = val;
+ }
}
/****************************************************************************
u32 val)
{
DB( if (DEBUG_MEM())
- printk("%#08x 4 <- %#x\n", addr, val);)
+ printk("%#08x 4 <- %#x\n", addr, val);)
if (addr >= 0xC0000 && addr <= _BE_env.biosmem_limit) {
#ifdef __BIG_ENDIAN__
- if (addr & 0x1) {
- addr -= 0xC0000;
- *(u8*)(M.mem_base + addr + 0) = (val >> 0) & 0xff;
- *(u8*)(M.mem_base + addr + 1) = (val >> 8) & 0xff;
- *(u8*)(M.mem_base + addr + 2) = (val >> 16) & 0xff;
- *(u8*)(M.mem_base + addr + 3) = (val >> 24) & 0xff;
- }
- else
+ if (addr & 0x1) {
+ addr -= 0xC0000;
+ *(u8*)(M.mem_base + addr + 0) = (val >> 0) & 0xff;
+ *(u8*)(M.mem_base + addr + 1) = (val >> 8) & 0xff;
+ *(u8*)(M.mem_base + addr + 2) = (val >> 16) & 0xff;
+ *(u8*)(M.mem_base + addr + 3) = (val >> 24) & 0xff;
+ }
+ else
#endif
- *(u32*)(M.mem_base + addr - 0xC0000) = val;
- }
+ *(u32*)(M.mem_base + addr - 0xC0000) = val;
+ }
else if (addr >= 0xA0000 && addr <= 0xFFFFF) {
#ifdef __BIG_ENDIAN__
- if (addr & 0x3) {
- addr -= 0xA0000;
- writeb(val >> 0, _BE_env.busmem_base, addr);
- writeb(val >> 8, _BE_env.busmem_base, addr + 1);
- writeb(val >> 16, _BE_env.busmem_base, addr + 1);
- writeb(val >> 24, _BE_env.busmem_base, addr + 1);
- }
- else
+ if (addr & 0x3) {
+ addr -= 0xA0000;
+ writeb(val >> 0, _BE_env.busmem_base, addr);
+ writeb(val >> 8, _BE_env.busmem_base, addr + 1);
+ writeb(val >> 16, _BE_env.busmem_base, addr + 1);
+ writeb(val >> 24, _BE_env.busmem_base, addr + 1);
+ }
+ else
#endif
- writel(val, _BE_env.busmem_base, addr - 0xA0000);
- }
+ writel(val, _BE_env.busmem_base, addr - 0xA0000);
+ }
else if (addr > M.mem_size-4) {
DB( printk("mem_write: address %#lx out of range!\n", addr);)
- HALT_SYS();
- }
+ HALT_SYS();
+ }
else {
#ifdef __BIG_ENDIAN__
- if (addr & 0x1) {
- *(u8*)(M.mem_base + addr + 0) = (val >> 0) & 0xff;
- *(u8*)(M.mem_base + addr + 1) = (val >> 8) & 0xff;
- *(u8*)(M.mem_base + addr + 2) = (val >> 16) & 0xff;
- *(u8*)(M.mem_base + addr + 3) = (val >> 24) & 0xff;
- }
- else
+ if (addr & 0x1) {
+ *(u8*)(M.mem_base + addr + 0) = (val >> 0) & 0xff;
+ *(u8*)(M.mem_base + addr + 1) = (val >> 8) & 0xff;
+ *(u8*)(M.mem_base + addr + 2) = (val >> 16) & 0xff;
+ *(u8*)(M.mem_base + addr + 3) = (val >> 24) & 0xff;
+ }
+ else
#endif
- *(u32*)(M.mem_base + addr) = val;
- }
+ *(u32*)(M.mem_base + addr) = val;
+ }
}
/* Debug functions to do ISA/PCI bus port I/O */
{
u8 val = PM_inpb(port);
if (DEBUG_IO())
- printk("%04X:%04X: inb.%04X -> %02X\n",M.x86.saved_cs, M.x86.saved_ip, (ushort)port, val);
+ printk("%04X:%04X: inb.%04X -> %02X\n",M.x86.saved_cs, M.x86.saved_ip, (ushort)port, val);
return val;
}
{
u16 val = PM_inpw(port);
if (DEBUG_IO())
- printk("%04X:%04X: inw.%04X -> %04X\n",M.x86.saved_cs, M.x86.saved_ip, (ushort)port, val);
+ printk("%04X:%04X: inw.%04X -> %04X\n",M.x86.saved_cs, M.x86.saved_ip, (ushort)port, val);
return val;
}
{
u32 val = PM_inpd(port);
if (DEBUG_IO())
- printk("%04X:%04X: inl.%04X -> %08X\n",M.x86.saved_cs, M.x86.saved_ip, (ushort)port, val);
+ printk("%04X:%04X: inl.%04X -> %08X\n",M.x86.saved_cs, M.x86.saved_ip, (ushort)port, val);
return val;
}
void X86API BE_outb(int port, u8 val)
{
if (DEBUG_IO())
- printk("%04X:%04X: outb.%04X <- %02X\n",M.x86.saved_cs, M.x86.saved_ip, (ushort)port, val);
+ printk("%04X:%04X: outb.%04X <- %02X\n",M.x86.saved_cs, M.x86.saved_ip, (ushort)port, val);
PM_outpb(port,val);
}
void X86API BE_outw(int port, u16 val)
{
if (DEBUG_IO())
- printk("%04X:%04X: outw.%04X <- %04X\n",M.x86.saved_cs, M.x86.saved_ip, (ushort)port, val);
+ printk("%04X:%04X: outw.%04X <- %04X\n",M.x86.saved_cs, M.x86.saved_ip, (ushort)port, val);
PM_outpw(port,val);
}
void X86API BE_outl(int port, u32 val)
{
if (DEBUG_IO())
- printk("%04X:%04X: outl.%04X <- %08X\n",M.x86.saved_cs, M.x86.saved_ip, (ushort)port, val);
+ printk("%04X:%04X: outl.%04X <- %08X\n",M.x86.saved_cs, M.x86.saved_ip, (ushort)port, val);
PM_outpd(port,val);
}
#endif