26 lines
753 B
C
26 lines
753 B
C
#ifndef COSMOPOLITAN_TOOL_BUILD_LIB_PML4T_H_
|
|
#define COSMOPOLITAN_TOOL_BUILD_LIB_PML4T_H_
|
|
#include "tool/build/lib/machine.h"
|
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
|
COSMOPOLITAN_C_START_
|
|
|
|
#define IsValidPage(x) ((x)&1)
|
|
#define MaskPageAddr(x) ((x)&0x00007ffffffff000)
|
|
#define UnmaskPageAddr(x) SignExtendAddr(MaskPageAddr(x))
|
|
#define SignExtendAddr(x) ((int64_t)((uint64_t)(x) << 16) >> 16)
|
|
|
|
struct ContiguousMemoryRanges {
|
|
size_t i, n;
|
|
struct ContiguousMemoryRange {
|
|
int64_t a;
|
|
int64_t b;
|
|
} * p;
|
|
};
|
|
|
|
void FindContiguousMemoryRanges(struct Machine *,
|
|
struct ContiguousMemoryRanges *);
|
|
|
|
COSMOPOLITAN_C_END_
|
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
|
#endif /* COSMOPOLITAN_TOOL_BUILD_LIB_PML4T_H_ */
|