The Pedigree Project 0.1
Classes | Macros | Typedefs | Functions | Variables

x64 processor-specific kernel More...

+ Collaboration diagram for x64:

Classes

class  HostedStackFrame
 
class  X64StackFrame
 
struct  X64UserEntryMetadata
 
class  X64InterruptState
 
class  X64SyscallState
 
class  X64ProcessorState
 
class  X64SchedulerState
 
struct  X64TaskStateSegment
 
class  X64GdtManager
 
class  X64InterruptManager
 
class  X64SyscallManager
 
class  X64VirtualAddressSpace
 

Macros

#define PAGE_SIZE   4096
 

Typedefs

typedef signed char X64int8_t
 
typedef unsigned char X64uint8_t
 
typedef signed short X64int16_t
 
typedef unsigned short X64uint16_t
 
typedef signed int X64int32_t
 
typedef unsigned int X64uint32_t
 
typedef signed long X64int64_t
 
typedef unsigned long X64uint64_t
 
typedef X64int64_t X64intptr_t
 
typedef X64uint64_t X64uintptr_t
 
typedef X64uint64_t X64physical_uintptr_t
 
typedef X64uint64_t X64processor_register_t
 
typedef X64int64_t X64ssize_t
 
typedef X64uint64_t X64size_t
 
typedef X64uint16_t X64io_port_t
 
typedef signed char X64int8_t
 
typedef unsigned char X64uint8_t
 
typedef signed short X64int16_t
 
typedef unsigned short X64uint16_t
 
typedef signed int X64int32_t
 
typedef unsigned int X64uint32_t
 
typedef signed long X64int64_t
 
typedef unsigned long X64uint64_t
 
typedef X64int64_t X64intptr_t
 
typedef X64uint64_t X64uintptr_t
 
typedef X64uint64_t X64physical_uintptr_t
 
typedef X64uint64_t X64processor_register_t
 
typedef X64int64_t X64ssize_t
 
typedef X64uint64_t X64size_t
 
typedef X64uint16_t X64io_port_t
 

Functions

EXPORTED_PUBLIC void pedigree_materialize_user_entry ()
 
uintptr_t physicalAddress (physical_uintptr_t address) PURE
 
template<typename T >
T * physicalAddress (T *pAddress) PURE
 

Variables

struct X64UserEntryMetadata PACKED
 
struct X64TaskStateSegment PACKED
 

Detailed Description

x64 processor-specific kernel

x64 processor-specific kernel

Macro Definition Documentation

◆ PAGE_SIZE

#define PAGE_SIZE   4096

Define the size of one physical page

Definition at line 65 of file system/include/pedigree/kernel/processor/x64/types.h.

Typedef Documentation

◆ X64int16_t [1/2]

typedef signed short X64int16_t

Define an 16bit signed integer type

Definition at line 32 of file modules/subsys/native/include/pedigree/native/x64/types.h.

◆ X64int16_t [2/2]

typedef signed short X64int16_t

Define an 16bit signed integer type

Definition at line 32 of file system/include/pedigree/kernel/processor/x64/types.h.

◆ X64int32_t [1/2]

typedef signed int X64int32_t

Define a 32bit signed integer type

Definition at line 36 of file modules/subsys/native/include/pedigree/native/x64/types.h.

◆ X64int32_t [2/2]

typedef signed int X64int32_t

Define a 32bit signed integer type

Definition at line 36 of file system/include/pedigree/kernel/processor/x64/types.h.

◆ X64int64_t [1/2]

typedef signed long X64int64_t

Define a 64bit signed integer type

Definition at line 40 of file modules/subsys/native/include/pedigree/native/x64/types.h.

◆ X64int64_t [2/2]

typedef signed long X64int64_t

Define a 64bit signed integer type

Definition at line 40 of file system/include/pedigree/kernel/processor/x64/types.h.

◆ X64int8_t [1/2]

typedef signed char X64int8_t

Define an 8bit signed integer type

Definition at line 28 of file modules/subsys/native/include/pedigree/native/x64/types.h.

◆ X64int8_t [2/2]

typedef signed char X64int8_t

Define an 8bit signed integer type

Definition at line 28 of file system/include/pedigree/kernel/processor/x64/types.h.

◆ X64intptr_t [1/2]

Define a signed integer type for pointer arithmetic

Definition at line 45 of file modules/subsys/native/include/pedigree/native/x64/types.h.

◆ X64intptr_t [2/2]

Define a signed integer type for pointer arithmetic

Definition at line 45 of file system/include/pedigree/kernel/processor/x64/types.h.

◆ X64io_port_t [1/2]

Define an I/O port type

Definition at line 61 of file modules/subsys/native/include/pedigree/native/x64/types.h.

◆ X64io_port_t [2/2]

Define an I/O port type

Definition at line 61 of file system/include/pedigree/kernel/processor/x64/types.h.

◆ X64physical_uintptr_t [1/2]

Define a unsigned integer type for physical pointer arithmetic

Definition at line 50 of file modules/subsys/native/include/pedigree/native/x64/types.h.

◆ X64physical_uintptr_t [2/2]

Define a unsigned integer type for physical pointer arithmetic

Definition at line 50 of file system/include/pedigree/kernel/processor/x64/types.h.

◆ X64processor_register_t [1/2]

Define an unsigned integer type for the processor registers

Definition at line 53 of file modules/subsys/native/include/pedigree/native/x64/types.h.

◆ X64processor_register_t [2/2]

Define an unsigned integer type for the processor registers

Definition at line 53 of file system/include/pedigree/kernel/processor/x64/types.h.

◆ X64size_t [1/2]

Define size_t

Definition at line 58 of file modules/subsys/native/include/pedigree/native/x64/types.h.

◆ X64size_t [2/2]

Define size_t

Definition at line 58 of file system/include/pedigree/kernel/processor/x64/types.h.

◆ X64ssize_t [1/2]

Define ssize_t

Definition at line 56 of file modules/subsys/native/include/pedigree/native/x64/types.h.

◆ X64ssize_t [2/2]

Define ssize_t

Definition at line 56 of file system/include/pedigree/kernel/processor/x64/types.h.

◆ X64uint16_t [1/2]

typedef unsigned short X64uint16_t

Define an 16bit unsigned integer type

Definition at line 34 of file modules/subsys/native/include/pedigree/native/x64/types.h.

◆ X64uint16_t [2/2]

typedef unsigned short X64uint16_t

Define an 16bit unsigned integer type

Definition at line 34 of file system/include/pedigree/kernel/processor/x64/types.h.

◆ X64uint32_t [1/2]

typedef unsigned int X64uint32_t

Define a 32bit unsigned integer type

Definition at line 38 of file modules/subsys/native/include/pedigree/native/x64/types.h.

◆ X64uint32_t [2/2]

typedef unsigned int X64uint32_t

Define a 32bit unsigned integer type

Definition at line 38 of file system/include/pedigree/kernel/processor/x64/types.h.

◆ X64uint64_t [1/2]

typedef unsigned long X64uint64_t

Define a 64bit unsigned integer type

Definition at line 42 of file modules/subsys/native/include/pedigree/native/x64/types.h.

◆ X64uint64_t [2/2]

typedef unsigned long X64uint64_t

Define a 64bit unsigned integer type

Definition at line 42 of file system/include/pedigree/kernel/processor/x64/types.h.

◆ X64uint8_t [1/2]

typedef unsigned char X64uint8_t

Define an 8bit unsigned integer type

Definition at line 30 of file modules/subsys/native/include/pedigree/native/x64/types.h.

◆ X64uint8_t [2/2]

typedef unsigned char X64uint8_t

Define an 8bit unsigned integer type

Definition at line 30 of file system/include/pedigree/kernel/processor/x64/types.h.

◆ X64uintptr_t [1/2]

Define an unsigned integer type for pointer arithmetic

Definition at line 47 of file modules/subsys/native/include/pedigree/native/x64/types.h.

◆ X64uintptr_t [2/2]

Define an unsigned integer type for pointer arithmetic

Definition at line 47 of file system/include/pedigree/kernel/processor/x64/types.h.

Function Documentation

◆ physicalAddress() [1/2]

uintptr_t physicalAddress ( physical_uintptr_t  address)
inline

◆ physicalAddress() [2/2]

template<typename T >
T * physicalAddress ( T *  pAddress)
inline

Get the virtual address from the physical address. This is possible on x64 because the whole physical memory is mapped into the virtual address space

Parameters
[in]pAddressthe physical address
Returns
the virtual address

Definition at line 49 of file utils.h.