Add PFN related structures and definitions
This commit is contained in:
parent
7193e698f1
commit
befa211aa7
@ -10,6 +10,7 @@
|
|||||||
#define __XTDK_AMD64_MMTYPES_H
|
#define __XTDK_AMD64_MMTYPES_H
|
||||||
|
|
||||||
#include <xtbase.h>
|
#include <xtbase.h>
|
||||||
|
#include <mmtypes.h>
|
||||||
|
|
||||||
|
|
||||||
/* Pages related definitions */
|
/* Pages related definitions */
|
||||||
@ -34,6 +35,9 @@
|
|||||||
/* Minimum number of physical pages needed by the system */
|
/* Minimum number of physical pages needed by the system */
|
||||||
#define MM_MINIMUM_PHYSICAL_PAGES 2048
|
#define MM_MINIMUM_PHYSICAL_PAGES 2048
|
||||||
|
|
||||||
|
/* Default number of secondary colors */
|
||||||
|
#define MM_DEFAULT_SECONDARY_COLORS 64
|
||||||
|
|
||||||
/* Page size enumeration list */
|
/* Page size enumeration list */
|
||||||
typedef enum _PAGE_SIZE
|
typedef enum _PAGE_SIZE
|
||||||
{
|
{
|
||||||
@ -182,9 +186,51 @@ typedef union _MMPTE
|
|||||||
MMPTE_LIST List;
|
MMPTE_LIST List;
|
||||||
} MMPTE, *PMMPTE;
|
} MMPTE, *PMMPTE;
|
||||||
|
|
||||||
/* Page Directory Entry structure definitions */
|
/* Page Frame Number structure definition */
|
||||||
typedef union _MMPTE MMPDE, *PMMPDE;
|
typedef struct _MMPFN
|
||||||
typedef union _MMPTE MMPPE, *PMMPPE;
|
{
|
||||||
typedef union _MMPTE MMPXE, *PMMPXE;
|
union
|
||||||
|
{
|
||||||
|
PFN_NUMBER Flink;
|
||||||
|
ULONG WsIndex;
|
||||||
|
PKEVENT Event;
|
||||||
|
XTSTATUS ReadStatus;
|
||||||
|
SINGLE_LIST_ENTRY NextStackPfn;
|
||||||
|
} u1;
|
||||||
|
PMMPTE PteAddress;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
PFN_NUMBER Blink;
|
||||||
|
ULONG_PTR ShareCount;
|
||||||
|
} u2;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
MMPFNENTRY e1;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
USHORT ShortFlags;
|
||||||
|
USHORT ReferenceCount;
|
||||||
|
} e2;
|
||||||
|
} u3;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
MMPTE OriginalPte;
|
||||||
|
LONG AweReferenceCount;
|
||||||
|
};
|
||||||
|
union
|
||||||
|
{
|
||||||
|
ULONG_PTR EntireFrame;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
ULONG_PTR PteFrame:58;
|
||||||
|
ULONG_PTR InPageError:1;
|
||||||
|
ULONG_PTR VerifierAllocation:1;
|
||||||
|
ULONG_PTR AweAllocation:1;
|
||||||
|
ULONG_PTR LockCharged:1;
|
||||||
|
ULONG_PTR KernelStack:1;
|
||||||
|
ULONG_PTR MustBeCached:1;
|
||||||
|
};
|
||||||
|
} u4;
|
||||||
|
} MMPFN, *PMMPFN;
|
||||||
|
|
||||||
#endif /* __XTDK_AMD64_MMTYPES_H */
|
#endif /* __XTDK_AMD64_MMTYPES_H */
|
||||||
|
@ -38,6 +38,7 @@ typedef struct _KSWITCH_FRAME KSWITCH_FRAME, *PKSWITCH_FRAME;
|
|||||||
typedef struct _KTHREAD_INIT_FRAME KTHREAD_INIT_FRAME, *PKTHREAD_INIT_FRAME;
|
typedef struct _KTHREAD_INIT_FRAME KTHREAD_INIT_FRAME, *PKTHREAD_INIT_FRAME;
|
||||||
typedef struct _KTRAP_FRAME KTRAP_FRAME, *PKTRAP_FRAME;
|
typedef struct _KTRAP_FRAME KTRAP_FRAME, *PKTRAP_FRAME;
|
||||||
typedef struct _KTSS KTSS, *PKTSS;
|
typedef struct _KTSS KTSS, *PKTSS;
|
||||||
|
typedef struct _MMPFN MMPFN, *PMMPFN;
|
||||||
typedef struct _MMPTE_HARDWARE MMPTE_HARDWARE, *PMMPTE_HARDWARE;
|
typedef struct _MMPTE_HARDWARE MMPTE_HARDWARE, *PMMPTE_HARDWARE;
|
||||||
typedef struct _MMPTE_HARDWARE_LARGEPAGE MMPTE_HARDWARE_LARGEPAGE, *PMMPTE_HARDWARE_LARGEPAGE;
|
typedef struct _MMPTE_HARDWARE_LARGEPAGE MMPTE_HARDWARE_LARGEPAGE, *PMMPTE_HARDWARE_LARGEPAGE;
|
||||||
typedef struct _MMPTE_LIST MMPTE_LIST, *PMMPTE_LIST;
|
typedef struct _MMPTE_LIST MMPTE_LIST, *PMMPTE_LIST;
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#define __XTDK_I686_MMTYPES_H
|
#define __XTDK_I686_MMTYPES_H
|
||||||
|
|
||||||
#include <xtbase.h>
|
#include <xtbase.h>
|
||||||
|
#include <mmtypes.h>
|
||||||
|
|
||||||
|
|
||||||
/* Pages related definitions */
|
/* Pages related definitions */
|
||||||
@ -20,6 +21,9 @@
|
|||||||
/* Minimum number of physical pages needed by the system */
|
/* Minimum number of physical pages needed by the system */
|
||||||
#define MM_MINIMUM_PHYSICAL_PAGES 1100
|
#define MM_MINIMUM_PHYSICAL_PAGES 1100
|
||||||
|
|
||||||
|
/* Default number of secondary colors */
|
||||||
|
#define MM_DEFAULT_SECONDARY_COLORS 64
|
||||||
|
|
||||||
/* Page size enumeration list */
|
/* Page size enumeration list */
|
||||||
typedef enum _PAGE_SIZE
|
typedef enum _PAGE_SIZE
|
||||||
{
|
{
|
||||||
@ -144,9 +148,6 @@ typedef union _MMPTE
|
|||||||
MMPTE_LIST List;
|
MMPTE_LIST List;
|
||||||
} MMPTE, *PMMPTE;
|
} MMPTE, *PMMPTE;
|
||||||
|
|
||||||
/* Page Directory Entry structure definition (with PAE support) */
|
|
||||||
typedef union _MMPTE MMPDE, *PMMPDE;
|
|
||||||
|
|
||||||
/* Legacy Page Table entry structure definition (without PAE support) */
|
/* Legacy Page Table entry structure definition (without PAE support) */
|
||||||
typedef struct _HARDWARE_LEGACY_PTE
|
typedef struct _HARDWARE_LEGACY_PTE
|
||||||
{
|
{
|
||||||
@ -254,7 +255,51 @@ typedef union _MMPTE_LEGACY
|
|||||||
MMPTE_LEGACY_LIST List;
|
MMPTE_LEGACY_LIST List;
|
||||||
} MMPTE_LEGACY, *PMMPTE_LEGACY;
|
} MMPTE_LEGACY, *PMMPTE_LEGACY;
|
||||||
|
|
||||||
/* Page Directory Entry structure definition (without PAE support) */
|
/* Page Frame Number structure definition */
|
||||||
typedef union _MMPTE_LEGACY MMPDE_LEGACY, *PMMPDE_LEGACY;
|
typedef struct _MMPFN
|
||||||
|
{
|
||||||
|
union
|
||||||
|
{
|
||||||
|
PFN_NUMBER Flink;
|
||||||
|
ULONG WsIndex;
|
||||||
|
PKEVENT Event;
|
||||||
|
XTSTATUS ReadStatus;
|
||||||
|
SINGLE_LIST_ENTRY NextStackPfn;
|
||||||
|
} u1;
|
||||||
|
PMMPTE PteAddress;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
PFN_NUMBER Blink;
|
||||||
|
ULONG_PTR ShareCount;
|
||||||
|
} u2;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
MMPFNENTRY e1;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
USHORT ShortFlags;
|
||||||
|
USHORT ReferenceCount;
|
||||||
|
} e2;
|
||||||
|
} u3;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
MMPTE OriginalPte;
|
||||||
|
LONG AweReferenceCount;
|
||||||
|
};
|
||||||
|
union
|
||||||
|
{
|
||||||
|
ULONG_PTR EntireFrame;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
ULONG_PTR PteFrame:26;
|
||||||
|
ULONG_PTR InPageError:1;
|
||||||
|
ULONG_PTR VerifierAllocation:1;
|
||||||
|
ULONG_PTR AweAllocation:1;
|
||||||
|
ULONG_PTR LockCharged:1;
|
||||||
|
ULONG_PTR KernelStack:1;
|
||||||
|
ULONG_PTR MustBeCached:1;
|
||||||
|
};
|
||||||
|
} u4;
|
||||||
|
} MMPFN, *PMMPFN;
|
||||||
|
|
||||||
#endif /* __XTDK_I686_MMTYPES_H */
|
#endif /* __XTDK_I686_MMTYPES_H */
|
||||||
|
@ -42,6 +42,7 @@ typedef struct _KSWITCH_FRAME KSWITCH_FRAME, *PKSWITCH_FRAME;
|
|||||||
typedef struct _KTHREAD_INIT_FRAME KTHREAD_INIT_FRAME, *PKTHREAD_INIT_FRAME;
|
typedef struct _KTHREAD_INIT_FRAME KTHREAD_INIT_FRAME, *PKTHREAD_INIT_FRAME;
|
||||||
typedef struct _KTRAP_FRAME KTRAP_FRAME, *PKTRAP_FRAME;
|
typedef struct _KTRAP_FRAME KTRAP_FRAME, *PKTRAP_FRAME;
|
||||||
typedef struct _KTSS KTSS, *PKTSS;
|
typedef struct _KTSS KTSS, *PKTSS;
|
||||||
|
typedef struct _MMPFN MMPFN, *PMMPFN;
|
||||||
typedef struct _MMPTE_HARDWARE MMPTE_HARDWARE, *PMMPTE_HARDWARE;
|
typedef struct _MMPTE_HARDWARE MMPTE_HARDWARE, *PMMPTE_HARDWARE;
|
||||||
typedef struct _MMPTE_LEGACY_HARDWARE MMPTE_LEGACY_HARDWARE, *PMMPTE_LEGACY_HARDWARE;
|
typedef struct _MMPTE_LEGACY_HARDWARE MMPTE_LEGACY_HARDWARE, *PMMPTE_LEGACY_HARDWARE;
|
||||||
typedef struct _MMPTE_LEGACY_LIST MMPTE_LEGACY_LIST, *PMMPTE_LEGACY_LIST;
|
typedef struct _MMPTE_LEGACY_LIST MMPTE_LEGACY_LIST, *PMMPTE_LEGACY_LIST;
|
||||||
|
38
sdk/xtdk/mmtypes.h
Normal file
38
sdk/xtdk/mmtypes.h
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
/**
|
||||||
|
* PROJECT: ExectOS
|
||||||
|
* COPYRIGHT: See COPYING.md in the top level directory
|
||||||
|
* FILE: sdk/xtdk/mmtypes.h
|
||||||
|
* DESCRIPTION: Memory management data structures
|
||||||
|
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __XTDK_MMTYPES_H
|
||||||
|
#define __XTDK_MMTYPES_H
|
||||||
|
|
||||||
|
#include <xtbase.h>
|
||||||
|
|
||||||
|
|
||||||
|
/* Color tables structure definition */
|
||||||
|
typedef struct _MMCOLOR_TABLES
|
||||||
|
{
|
||||||
|
ULONG_PTR Flink;
|
||||||
|
PVOID Blink;
|
||||||
|
ULONG_PTR Count;
|
||||||
|
} MMCOLOR_TABLES, *PMMCOLOR_TABLES;
|
||||||
|
|
||||||
|
/* Page Frame Entry structure definition */
|
||||||
|
typedef struct _MMPFNENTRY
|
||||||
|
{
|
||||||
|
USHORT Modified:1;
|
||||||
|
USHORT ReadInProgress:1;
|
||||||
|
USHORT WriteInProgress:1;
|
||||||
|
USHORT PrototypePte:1;
|
||||||
|
USHORT PageColor:4;
|
||||||
|
USHORT PageLocation:3;
|
||||||
|
USHORT RemovalRequested:1;
|
||||||
|
USHORT CacheAttribute:2;
|
||||||
|
USHORT Rom:1;
|
||||||
|
USHORT ParityError:1;
|
||||||
|
} MMPFNENTRY, *PMMPFNENTRY;
|
||||||
|
|
||||||
|
#endif /* __XTDK_MMTYPES_H */
|
@ -32,6 +32,7 @@
|
|||||||
#include <iotypes.h>
|
#include <iotypes.h>
|
||||||
#include <ketypes.h>
|
#include <ketypes.h>
|
||||||
#include <ldrtypes.h>
|
#include <ldrtypes.h>
|
||||||
|
#include <mmtypes.h>
|
||||||
#include <potypes.h>
|
#include <potypes.h>
|
||||||
#include <pstypes.h>
|
#include <pstypes.h>
|
||||||
#include <rtltypes.h>
|
#include <rtltypes.h>
|
||||||
|
@ -243,6 +243,8 @@ typedef struct _LOADER_GRAPHICS_INFORMATION_BLOCK LOADER_GRAPHICS_INFORMATION_BL
|
|||||||
typedef struct _LOADER_INFORMATION_BLOCK LOADER_INFORMATION_BLOCK, *PLOADER_INFORMATION_BLOCK;
|
typedef struct _LOADER_INFORMATION_BLOCK LOADER_INFORMATION_BLOCK, *PLOADER_INFORMATION_BLOCK;
|
||||||
typedef struct _LOADER_MEMORY_MAPPING LOADER_MEMORY_MAPPING, *PLOADER_MEMORY_MAPPING;
|
typedef struct _LOADER_MEMORY_MAPPING LOADER_MEMORY_MAPPING, *PLOADER_MEMORY_MAPPING;
|
||||||
typedef struct _M128 M128, *PM128;
|
typedef struct _M128 M128, *PM128;
|
||||||
|
typedef struct _MMCOLOR_TABLES MMCOLOR_TABLES, *PMMCOLOR_TABLES;
|
||||||
|
typedef struct _MMPFNENTRY MMPFNENTRY, *PMMPFNENTRY;
|
||||||
typedef struct _PCAT_FIRMWARE_INFORMATION PCAT_FIRMWARE_INFORMATION, *PPCAT_FIRMWARE_INFORMATION;
|
typedef struct _PCAT_FIRMWARE_INFORMATION PCAT_FIRMWARE_INFORMATION, *PPCAT_FIRMWARE_INFORMATION;
|
||||||
typedef struct _PCI_BRIDGE_CONTROL_REGISTER PCI_BRIDGE_CONTROL_REGISTER, *PPCI_BRIDGE_CONTROL_REGISTER;
|
typedef struct _PCI_BRIDGE_CONTROL_REGISTER PCI_BRIDGE_CONTROL_REGISTER, *PPCI_BRIDGE_CONTROL_REGISTER;
|
||||||
typedef struct _PCI_COMMON_CONFIG PCI_COMMON_CONFIG, *PPCI_COMMON_CONFIG;
|
typedef struct _PCI_COMMON_CONFIG PCI_COMMON_CONFIG, *PPCI_COMMON_CONFIG;
|
||||||
|
Loading…
Reference in New Issue
Block a user