memlayout.h #define P2V(a) ((void *)(((char *) (a)) + KERNBASE))

トップページ
jupiteroak.hatenablog.com


memlayout.h
https://github.com/mit-pdos/xv6-public/blob/master/memlayout.h#L12

#define P2V(a) ((void *)(((char *) (a)) + KERNBASE))

P2Vマクロは、xv6で定められたメモリレイアウトに従って、物理アドレスを仮想アドレスに変換します。

#define KERNBASE 0x80000000         // First kernel virtual address
#define P2V(a) ((void *)(((char *) (a)) + KERNBASE))