提交 ae103416 编写于 作者: Z Zihao Yu

engine: move paddr.h out of engine

上级 f83d322e
......@@ -10,6 +10,8 @@ void* guest_to_host(paddr_t addr);
/* convert the host virtual address in NEMU to guest physical address in the guest program */
paddr_t host_to_guest(void *addr);
#include <paddr.h>
word_t paddr_ifetch(paddr_t addr, int len);
word_t paddr_read(paddr_t addr, int len);
void paddr_write(paddr_t addr, word_t data, int len);
#endif
#ifndef __PADDR_H__
#define __PADDR_H__
#include <common.h>
word_t paddr_ifetch(paddr_t addr, int len);
word_t paddr_read(paddr_t addr, int len);
void paddr_write(paddr_t addr, word_t data, int len);
#endif
#ifndef __PADDR_H__
#define __PADDR_H__
#include <common.h>
static inline uint64_t paddr_ifetch(paddr_t addr, int len) {
uint8_t paddr_ifetch8 (paddr_t addr);
uint16_t paddr_ifetch16(paddr_t addr);
uint32_t paddr_ifetch32(paddr_t addr);
uint64_t paddr_ifetch64(paddr_t addr);
switch (len) {
case 1: return paddr_ifetch8 (addr);
case 2: return paddr_ifetch16(addr);
case 4: return paddr_ifetch32(addr);
#ifdef ISA64
case 8: return paddr_ifetch64(addr);
#endif
default: assert(0);
}
}
static inline uint64_t paddr_read(paddr_t addr, int len) {
uint8_t paddr_read8 (paddr_t addr);
uint16_t paddr_read16(paddr_t addr);
uint32_t paddr_read32(paddr_t addr);
uint64_t paddr_read64(paddr_t addr);
switch (len) {
case 1: return paddr_read8 (addr);
case 2: return paddr_read16(addr);
case 4: return paddr_read32(addr);
#ifdef ISA64
case 8: return paddr_read64(addr);
#endif
default: assert(0);
}
}
static inline void paddr_write(paddr_t addr, uint64_t data, int len) {
void paddr_write8 (paddr_t addr, uint8_t data);
void paddr_write16(paddr_t addr, uint16_t data);
void paddr_write32(paddr_t addr, uint32_t data);
void paddr_write64(paddr_t addr, uint64_t data);
switch (len) {
case 1: paddr_write8 (addr, data); break;
case 2: paddr_write16(addr, data); break;
case 4: paddr_write32(addr, data); break;
#ifdef ISA64
case 8: paddr_write64(addr, data); break;
#endif
default: assert(0);
}
}
#endif
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册