Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pde_2mb_64 is invalid #4

Closed
can1357 opened this issue Mar 1, 2019 · 1 comment
Closed

pde_2mb_64 is invalid #4

can1357 opened this issue Mar 1, 2019 · 1 comment

Comments

@can1357
Copy link

can1357 commented Mar 1, 2019

Hey!
pde_2mb_64 seems to be a duplicate of pdpte_1gb_64 as:

/**
* @brief Format of a 4-Level Page-Directory Entry that Maps a 2-MByte Page
*/
typedef union
{
	struct
	{
...
		/**
		* [Bits 47:30] Physical address of the 1-GByte page referenced by this entry.
		*/
		uint64_t page_frame_number : 18;
#define PDE_2MB_64_PAGE_FRAME_NUMBER_BIT                             30
#define PDE_2MB_64_PAGE_FRAME_NUMBER_FLAG                            0xFFFFC0000000
#define PDE_2MB_64_PAGE_FRAME_NUMBER_MASK                            0x3FFFF
#define PDE_2MB_64_PAGE_FRAME_NUMBER(_)                              (((_) >> 30) & 0x3FFFF)
		uint64_t reserved2 : 4;

...
	};

	uint64_t flags;
} pde_2mb_64;

Although the entry in intel-documentation declares:

(M–1):21 Physical address of the 2-MByte page referenced by this entry

Not too sure what the problem is as I haven't gone over project source but wanted to let you know.


P.S. I'd like to thank you for the time you spent on this great project, it's truely an invaluable resource.

@wbenny wbenny closed this as completed in 879fe5a Mar 31, 2019
@wbenny
Copy link
Collaborator

wbenny commented Mar 31, 2019

Good catch, thanks a lot!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants