Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions litebox_platform_lvbs/src/mshv/vtl1_mem_layout.rs
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,10 +25,10 @@ pub const VTL1_PTE_0_PAGE: usize = 5;
pub const VTL1_KERNEL_STACK_PAGE: usize = VTL1_PTE_0_PAGE + VSM_SK_PTE_PAGES_COUNT;

/// PDPT page for the Phase 1 high-canonical PML4 entry. Placed after the
/// VTL0-reserved special pages (GDT, TSS, PT pages, stack, boot params,
/// cmdline) so that all 8 VTL0 PTE pages remain available for the
/// high-canonical mapping. This page is within the VTL0 identity-mapped
/// 16 MiB region but is otherwise unused memory.
/// VTL0-reserved special pages (GDT, TSS, PT pages, and stack) so that all 8
/// VTL0 PTE pages remain available for the high-canonical mapping. This page
/// is within the VTL0 identity-mapped 16 MiB region but is otherwise unused
/// memory.
pub const VTL1_REMAP_PDPT_PAGE: usize = VTL1_KERNEL_STACK_PAGE + 1;

/// PDE page for the Phase 1 high-canonical mapping. PDE entries point to
Expand Down
28 changes: 14 additions & 14 deletions litebox_runner_lvbs/src/main.rs
Original file line numberDiff line numberDiff line change
Expand Up@@ -176,16 +176,16 @@ unsafe fn apply_relocations() {
/// │ PML4 (page 2, from VTL0) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [0] → VTL0 PDPT (page 3) ← identity │ kept (harmless) │
/// │ │ [256] → new PDPT (page 16) ← high-canon │ Phase 1 adds │
/// │ │ [256] → new PDPT (page 14) ← high-canon │ Phase 1 adds │
/// │ │ ... │ │
/// │ └──────────────────────────────────────────────┘ │
/// │ │
/// │ New PDPT (page 16) │
/// │ New PDPT (page 14) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [pdpt_idx] → new PDE (page 17) │ │
/// │ │ [pdpt_idx] → new PDE (page 15) │ │
/// │ └──────────────────────────────────────────────┘ │
/// │ │
/// │ New PDE (page 17) │
/// │ New PDE (page 15) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [pde+0] → VTL0 PTE page 5 (2 MiB, 4KB pgs) │ reused as-is │
/// │ │ [pde+1] → VTL0 PTE page 6 │ │
Expand DownExpand Up@@ -213,7 +213,7 @@ unsafe fn apply_relocations() {
/// │ The entire low half [0, 0x7FFF_FFFF_F000) is now available │
/// │ for user-space (TAs / Linux apps). │
/// │ │
/// │ Reclaim all Phase 1 pages (2–12, 16–17) back to the allocator. │
/// │ Reclaim all Phase 1 pages (2–12, 14–15) back to the allocator. │
/// └─────────────────────────────────────────────────────────────────────┘
/// ```
///
Expand All@@ -229,22 +229,22 @@ unsafe fn apply_relocations() {
/// means the existing PTE pages can be **reused as-is** for the
/// high-canonical mapping; we only need a new PDPT page and a new PDE page.
///
/// The PDPT and PDE pages are allocated from unused memory after the
/// VTL0-reserved special pages (pages 16–17), preserving all 8 PTE pages
/// for the high-canonical mapping and covering the full 16 MiB.
/// The PDPT and PDE pages are allocated from unused memory after the boot
/// stack page (pages 14–15), preserving all 8 PTE pages for the high-canonical
/// mapping and covering the full 16 MiB.
///
/// ## Page table pages used
///
/// | page | constant | purpose |
/// |------|-----------------------|----------------------------------------|
/// | 16 | `VTL1_REMAP_PDPT_PAGE`| PDPT for the high-canonical PML4 entry |
/// | 17 | `VTL1_REMAP_PDE_PAGE` | PDE pointing to PTE pages 5–12 |
/// | 14 | `VTL1_REMAP_PDPT_PAGE`| PDPT for the high-canonical PML4 entry |
/// | 15 | `VTL1_REMAP_PDE_PAGE` | PDE pointing to PTE pages 5–12 |
///
/// ## Algorithm
///
/// 1. Compute PML4/PDPT/PDE indices from `memory_base + KERNEL_OFFSET`.
/// 2. Zero and populate a PDPT page (page 16).
/// 3. Zero and populate a PDE page (page 17) pointing to all 8 VTL0 PTE
/// 2. Zero and populate a PDPT page (page 14).
/// 3. Zero and populate a PDE page (page 15) pointing to all 8 VTL0 PTE
/// pages 5–12 (4KB page mappings, no huge pages).
/// 4. Wire PML4 → PDPT → PDE.
/// 5. Flush TLB and jump to `continue_boot` at the high-canonical address.
Expand DownExpand Up@@ -280,12 +280,12 @@ unsafe fn remap_to_high_canonical() -> ! {
let pml4_pa = cr3 & CR3_ADDR_MASK;
let pml4_ptr = pml4_pa as *mut u64;

// Set up the PDPT page (page 16)
// Set up the PDPT page.
let pdpt_page_pa = memory_base + (VTL1_REMAP_PDPT_PAGE * vtl1_mem_layout::PAGE_SIZE) as u64;
let pdpt_ptr = pdpt_page_pa as *mut u64;
unsafe { core::ptr::write_bytes(pdpt_ptr, 0, ENTRIES_PER_PT_PAGE) };

// Set up the PDE page (page 17)
// Set up the PDE page.
let pde_page_pa = memory_base + (VTL1_REMAP_PDE_PAGE * vtl1_mem_layout::PAGE_SIZE) as u64;
let pde_ptr = pde_page_pa as *mut u64;
unsafe { core::ptr::write_bytes(pde_ptr, 0, ENTRIES_PER_PT_PAGE) };
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions litebox_platform_lvbs/src/mshv/vtl1_mem_layout.rs
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,10 +25,10 @@ pub const VTL1_PTE_0_PAGE: usize = 5;
pub const VTL1_KERNEL_STACK_PAGE: usize = VTL1_PTE_0_PAGE + VSM_SK_PTE_PAGES_COUNT;

/// PDPT page for the Phase 1 high-canonical PML4 entry. Placed after the
/// VTL0-reserved special pages (GDT, TSS, PT pages, stack, boot params,
/// cmdline) so that all 8 VTL0 PTE pages remain available for the
/// high-canonical mapping. This page is within the VTL0 identity-mapped
/// 16 MiB region but is otherwise unused memory.
/// VTL0-reserved special pages (GDT, TSS, PT pages, and stack) so that all 8
/// VTL0 PTE pages remain available for the high-canonical mapping. This page
/// is within the VTL0 identity-mapped 16 MiB region but is otherwise unused
/// memory.
pub const VTL1_REMAP_PDPT_PAGE: usize = VTL1_KERNEL_STACK_PAGE + 1;

/// PDE page for the Phase 1 high-canonical mapping. PDE entries point to
Expand Down
28 changes: 14 additions & 14 deletions litebox_runner_lvbs/src/main.rs
Original file line numberDiff line numberDiff line change
Expand Up@@ -176,16 +176,16 @@ unsafe fn apply_relocations() {
/// │ PML4 (page 2, from VTL0) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [0] → VTL0 PDPT (page 3) ← identity │ kept (harmless) │
/// │ │ [256] → new PDPT (page 16) ← high-canon │ Phase 1 adds │
/// │ │ [256] → new PDPT (page 14) ← high-canon │ Phase 1 adds │
/// │ │ ... │ │
/// │ └──────────────────────────────────────────────┘ │
/// │ │
/// │ New PDPT (page 16) │
/// │ New PDPT (page 14) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [pdpt_idx] → new PDE (page 17) │ │
/// │ │ [pdpt_idx] → new PDE (page 15) │ │
/// │ └──────────────────────────────────────────────┘ │
/// │ │
/// │ New PDE (page 17) │
/// │ New PDE (page 15) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [pde+0] → VTL0 PTE page 5 (2 MiB, 4KB pgs) │ reused as-is │
/// │ │ [pde+1] → VTL0 PTE page 6 │ │
Expand DownExpand Up@@ -213,7 +213,7 @@ unsafe fn apply_relocations() {
/// │ The entire low half [0, 0x7FFF_FFFF_F000) is now available │
/// │ for user-space (TAs / Linux apps). │
/// │ │
/// │ Reclaim all Phase 1 pages (2–12, 16–17) back to the allocator. │
/// │ Reclaim all Phase 1 pages (2–12, 14–15) back to the allocator. │
/// └─────────────────────────────────────────────────────────────────────┘
/// ```
///
Expand All@@ -229,22 +229,22 @@ unsafe fn apply_relocations() {
/// means the existing PTE pages can be **reused as-is** for the
/// high-canonical mapping; we only need a new PDPT page and a new PDE page.
///
/// The PDPT and PDE pages are allocated from unused memory after the
/// VTL0-reserved special pages (pages 16–17), preserving all 8 PTE pages
/// for the high-canonical mapping and covering the full 16 MiB.
/// The PDPT and PDE pages are allocated from unused memory after the boot
/// stack page (pages 14–15), preserving all 8 PTE pages for the high-canonical
/// mapping and covering the full 16 MiB.
///
/// ## Page table pages used
///
/// | page | constant | purpose |
/// |------|-----------------------|----------------------------------------|
/// | 16 | `VTL1_REMAP_PDPT_PAGE`| PDPT for the high-canonical PML4 entry |
/// | 17 | `VTL1_REMAP_PDE_PAGE` | PDE pointing to PTE pages 5–12 |
/// | 14 | `VTL1_REMAP_PDPT_PAGE`| PDPT for the high-canonical PML4 entry |
/// | 15 | `VTL1_REMAP_PDE_PAGE` | PDE pointing to PTE pages 5–12 |
///
/// ## Algorithm
///
/// 1. Compute PML4/PDPT/PDE indices from `memory_base + KERNEL_OFFSET`.
/// 2. Zero and populate a PDPT page (page 16).
/// 3. Zero and populate a PDE page (page 17) pointing to all 8 VTL0 PTE
/// 2. Zero and populate a PDPT page (page 14).
/// 3. Zero and populate a PDE page (page 15) pointing to all 8 VTL0 PTE
/// pages 5–12 (4KB page mappings, no huge pages).
/// 4. Wire PML4 → PDPT → PDE.
/// 5. Flush TLB and jump to `continue_boot` at the high-canonical address.
Expand DownExpand Up@@ -280,12 +280,12 @@ unsafe fn remap_to_high_canonical() -> ! {
let pml4_pa = cr3 & CR3_ADDR_MASK;
let pml4_ptr = pml4_pa as *mut u64;

// Set up the PDPT page (page 16)
// Set up the PDPT page.
let pdpt_page_pa = memory_base + (VTL1_REMAP_PDPT_PAGE * vtl1_mem_layout::PAGE_SIZE) as u64;
let pdpt_ptr = pdpt_page_pa as *mut u64;
unsafe { core::ptr::write_bytes(pdpt_ptr, 0, ENTRIES_PER_PT_PAGE) };

// Set up the PDE page (page 17)
// Set up the PDE page.
let pde_page_pa = memory_base + (VTL1_REMAP_PDE_PAGE * vtl1_mem_layout::PAGE_SIZE) as u64;
let pde_ptr = pde_page_pa as *mut u64;
unsafe { core::ptr::write_bytes(pde_ptr, 0, ENTRIES_PER_PT_PAGE) };
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions litebox_platform_lvbs/src/mshv/vtl1_mem_layout.rs
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,10 +25,10 @@ pub const VTL1_PTE_0_PAGE: usize = 5;
pub const VTL1_KERNEL_STACK_PAGE: usize = VTL1_PTE_0_PAGE + VSM_SK_PTE_PAGES_COUNT;

/// PDPT page for the Phase 1 high-canonical PML4 entry. Placed after the
/// VTL0-reserved special pages (GDT, TSS, PT pages, stack, boot params,
/// cmdline) so that all 8 VTL0 PTE pages remain available for the
/// high-canonical mapping. This page is within the VTL0 identity-mapped
/// 16 MiB region but is otherwise unused memory.
/// VTL0-reserved special pages (GDT, TSS, PT pages, and stack) so that all 8
/// VTL0 PTE pages remain available for the high-canonical mapping. This page
/// is within the VTL0 identity-mapped 16 MiB region but is otherwise unused
/// memory.
pub const VTL1_REMAP_PDPT_PAGE: usize = VTL1_KERNEL_STACK_PAGE + 1;

/// PDE page for the Phase 1 high-canonical mapping. PDE entries point to
Expand Down
28 changes: 14 additions & 14 deletions litebox_runner_lvbs/src/main.rs
Original file line numberDiff line numberDiff line change
Expand Up@@ -176,16 +176,16 @@ unsafe fn apply_relocations() {
/// │ PML4 (page 2, from VTL0) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [0] → VTL0 PDPT (page 3) ← identity │ kept (harmless) │
/// │ │ [256] → new PDPT (page 16) ← high-canon │ Phase 1 adds │
/// │ │ [256] → new PDPT (page 14) ← high-canon │ Phase 1 adds │
/// │ │ ... │ │
/// │ └──────────────────────────────────────────────┘ │
/// │ │
/// │ New PDPT (page 16) │
/// │ New PDPT (page 14) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [pdpt_idx] → new PDE (page 17) │ │
/// │ │ [pdpt_idx] → new PDE (page 15) │ │
/// │ └──────────────────────────────────────────────┘ │
/// │ │
/// │ New PDE (page 17) │
/// │ New PDE (page 15) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [pde+0] → VTL0 PTE page 5 (2 MiB, 4KB pgs) │ reused as-is │
/// │ │ [pde+1] → VTL0 PTE page 6 │ │
Expand DownExpand Up@@ -213,7 +213,7 @@ unsafe fn apply_relocations() {
/// │ The entire low half [0, 0x7FFF_FFFF_F000) is now available │
/// │ for user-space (TAs / Linux apps). │
/// │ │
/// │ Reclaim all Phase 1 pages (2–12, 16–17) back to the allocator. │
/// │ Reclaim all Phase 1 pages (2–12, 14–15) back to the allocator. │
/// └─────────────────────────────────────────────────────────────────────┘
/// ```
///
Expand All@@ -229,22 +229,22 @@ unsafe fn apply_relocations() {
/// means the existing PTE pages can be **reused as-is** for the
/// high-canonical mapping; we only need a new PDPT page and a new PDE page.
///
/// The PDPT and PDE pages are allocated from unused memory after the
/// VTL0-reserved special pages (pages 16–17), preserving all 8 PTE pages
/// for the high-canonical mapping and covering the full 16 MiB.
/// The PDPT and PDE pages are allocated from unused memory after the boot
/// stack page (pages 14–15), preserving all 8 PTE pages for the high-canonical
/// mapping and covering the full 16 MiB.
///
/// ## Page table pages used
///
/// | page | constant | purpose |
/// |------|-----------------------|----------------------------------------|
/// | 16 | `VTL1_REMAP_PDPT_PAGE`| PDPT for the high-canonical PML4 entry |
/// | 17 | `VTL1_REMAP_PDE_PAGE` | PDE pointing to PTE pages 5–12 |
/// | 14 | `VTL1_REMAP_PDPT_PAGE`| PDPT for the high-canonical PML4 entry |
/// | 15 | `VTL1_REMAP_PDE_PAGE` | PDE pointing to PTE pages 5–12 |
///
/// ## Algorithm
///
/// 1. Compute PML4/PDPT/PDE indices from `memory_base + KERNEL_OFFSET`.
/// 2. Zero and populate a PDPT page (page 16).
/// 3. Zero and populate a PDE page (page 17) pointing to all 8 VTL0 PTE
/// 2. Zero and populate a PDPT page (page 14).
/// 3. Zero and populate a PDE page (page 15) pointing to all 8 VTL0 PTE
/// pages 5–12 (4KB page mappings, no huge pages).
/// 4. Wire PML4 → PDPT → PDE.
/// 5. Flush TLB and jump to `continue_boot` at the high-canonical address.
Expand DownExpand Up@@ -280,12 +280,12 @@ unsafe fn remap_to_high_canonical() -> ! {
let pml4_pa = cr3 & CR3_ADDR_MASK;
let pml4_ptr = pml4_pa as *mut u64;

// Set up the PDPT page (page 16)
// Set up the PDPT page.
let pdpt_page_pa = memory_base + (VTL1_REMAP_PDPT_PAGE * vtl1_mem_layout::PAGE_SIZE) as u64;
let pdpt_ptr = pdpt_page_pa as *mut u64;
unsafe { core::ptr::write_bytes(pdpt_ptr, 0, ENTRIES_PER_PT_PAGE) };

// Set up the PDE page (page 17)
// Set up the PDE page.
let pde_page_pa = memory_base + (VTL1_REMAP_PDE_PAGE * vtl1_mem_layout::PAGE_SIZE) as u64;
let pde_ptr = pde_page_pa as *mut u64;
unsafe { core::ptr::write_bytes(pde_ptr, 0, ENTRIES_PER_PT_PAGE) };
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions litebox_platform_lvbs/src/mshv/vtl1_mem_layout.rs
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,10 +25,10 @@ pub const VTL1_PTE_0_PAGE: usize = 5;
pub const VTL1_KERNEL_STACK_PAGE: usize = VTL1_PTE_0_PAGE + VSM_SK_PTE_PAGES_COUNT;

/// PDPT page for the Phase 1 high-canonical PML4 entry. Placed after the
/// VTL0-reserved special pages (GDT, TSS, PT pages, stack, boot params,
/// cmdline) so that all 8 VTL0 PTE pages remain available for the
/// high-canonical mapping. This page is within the VTL0 identity-mapped
/// 16 MiB region but is otherwise unused memory.
/// VTL0-reserved special pages (GDT, TSS, PT pages, and stack) so that all 8
/// VTL0 PTE pages remain available for the high-canonical mapping. This page
/// is within the VTL0 identity-mapped 16 MiB region but is otherwise unused
/// memory.
pub const VTL1_REMAP_PDPT_PAGE: usize = VTL1_KERNEL_STACK_PAGE + 1;

/// PDE page for the Phase 1 high-canonical mapping. PDE entries point to
Expand Down
28 changes: 14 additions & 14 deletions litebox_runner_lvbs/src/main.rs
Original file line numberDiff line numberDiff line change
Expand Up@@ -176,16 +176,16 @@ unsafe fn apply_relocations() {
/// │ PML4 (page 2, from VTL0) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [0] → VTL0 PDPT (page 3) ← identity │ kept (harmless) │
/// │ │ [256] → new PDPT (page 16) ← high-canon │ Phase 1 adds │
/// │ │ [256] → new PDPT (page 14) ← high-canon │ Phase 1 adds │
/// │ │ ... │ │
/// │ └──────────────────────────────────────────────┘ │
/// │ │
/// │ New PDPT (page 16) │
/// │ New PDPT (page 14) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [pdpt_idx] → new PDE (page 17) │ │
/// │ │ [pdpt_idx] → new PDE (page 15) │ │
/// │ └──────────────────────────────────────────────┘ │
/// │ │
/// │ New PDE (page 17) │
/// │ New PDE (page 15) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [pde+0] → VTL0 PTE page 5 (2 MiB, 4KB pgs) │ reused as-is │
/// │ │ [pde+1] → VTL0 PTE page 6 │ │
Expand DownExpand Up@@ -213,7 +213,7 @@ unsafe fn apply_relocations() {
/// │ The entire low half [0, 0x7FFF_FFFF_F000) is now available │
/// │ for user-space (TAs / Linux apps). │
/// │ │
/// │ Reclaim all Phase 1 pages (2–12, 16–17) back to the allocator. │
/// │ Reclaim all Phase 1 pages (2–12, 14–15) back to the allocator. │
/// └─────────────────────────────────────────────────────────────────────┘
/// ```
///
Expand All@@ -229,22 +229,22 @@ unsafe fn apply_relocations() {
/// means the existing PTE pages can be **reused as-is** for the
/// high-canonical mapping; we only need a new PDPT page and a new PDE page.
///
/// The PDPT and PDE pages are allocated from unused memory after the
/// VTL0-reserved special pages (pages 16–17), preserving all 8 PTE pages
/// for the high-canonical mapping and covering the full 16 MiB.
/// The PDPT and PDE pages are allocated from unused memory after the boot
/// stack page (pages 14–15), preserving all 8 PTE pages for the high-canonical
/// mapping and covering the full 16 MiB.
///
/// ## Page table pages used
///
/// | page | constant | purpose |
/// |------|-----------------------|----------------------------------------|
/// | 16 | `VTL1_REMAP_PDPT_PAGE`| PDPT for the high-canonical PML4 entry |
/// | 17 | `VTL1_REMAP_PDE_PAGE` | PDE pointing to PTE pages 5–12 |
/// | 14 | `VTL1_REMAP_PDPT_PAGE`| PDPT for the high-canonical PML4 entry |
/// | 15 | `VTL1_REMAP_PDE_PAGE` | PDE pointing to PTE pages 5–12 |
///
/// ## Algorithm
///
/// 1. Compute PML4/PDPT/PDE indices from `memory_base + KERNEL_OFFSET`.
/// 2. Zero and populate a PDPT page (page 16).
/// 3. Zero and populate a PDE page (page 17) pointing to all 8 VTL0 PTE
/// 2. Zero and populate a PDPT page (page 14).
/// 3. Zero and populate a PDE page (page 15) pointing to all 8 VTL0 PTE
/// pages 5–12 (4KB page mappings, no huge pages).
/// 4. Wire PML4 → PDPT → PDE.
/// 5. Flush TLB and jump to `continue_boot` at the high-canonical address.
Expand DownExpand Up@@ -280,12 +280,12 @@ unsafe fn remap_to_high_canonical() -> ! {
let pml4_pa = cr3 & CR3_ADDR_MASK;
let pml4_ptr = pml4_pa as *mut u64;

// Set up the PDPT page (page 16)
// Set up the PDPT page.
let pdpt_page_pa = memory_base + (VTL1_REMAP_PDPT_PAGE * vtl1_mem_layout::PAGE_SIZE) as u64;
let pdpt_ptr = pdpt_page_pa as *mut u64;
unsafe { core::ptr::write_bytes(pdpt_ptr, 0, ENTRIES_PER_PT_PAGE) };

// Set up the PDE page (page 17)
// Set up the PDE page.
let pde_page_pa = memory_base + (VTL1_REMAP_PDE_PAGE * vtl1_mem_layout::PAGE_SIZE) as u64;
let pde_ptr = pde_page_pa as *mut u64;
unsafe { core::ptr::write_bytes(pde_ptr, 0, ENTRIES_PER_PT_PAGE) };
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions litebox_platform_lvbs/src/mshv/vtl1_mem_layout.rs
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,10 +25,10 @@ pub const VTL1_PTE_0_PAGE: usize = 5;
pub const VTL1_KERNEL_STACK_PAGE: usize = VTL1_PTE_0_PAGE + VSM_SK_PTE_PAGES_COUNT;

/// PDPT page for the Phase 1 high-canonical PML4 entry. Placed after the
/// VTL0-reserved special pages (GDT, TSS, PT pages, stack, boot params,
/// cmdline) so that all 8 VTL0 PTE pages remain available for the
/// high-canonical mapping. This page is within the VTL0 identity-mapped
/// 16 MiB region but is otherwise unused memory.
/// VTL0-reserved special pages (GDT, TSS, PT pages, and stack) so that all 8
/// VTL0 PTE pages remain available for the high-canonical mapping. This page
/// is within the VTL0 identity-mapped 16 MiB region but is otherwise unused
/// memory.
pub const VTL1_REMAP_PDPT_PAGE: usize = VTL1_KERNEL_STACK_PAGE + 1;

/// PDE page for the Phase 1 high-canonical mapping. PDE entries point to
Expand Down
28 changes: 14 additions & 14 deletions litebox_runner_lvbs/src/main.rs
Original file line numberDiff line numberDiff line change
Expand Up@@ -176,16 +176,16 @@ unsafe fn apply_relocations() {
/// │ PML4 (page 2, from VTL0) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [0] → VTL0 PDPT (page 3) ← identity │ kept (harmless) │
/// │ │ [256] → new PDPT (page 16) ← high-canon │ Phase 1 adds │
/// │ │ [256] → new PDPT (page 14) ← high-canon │ Phase 1 adds │
/// │ │ ... │ │
/// │ └──────────────────────────────────────────────┘ │
/// │ │
/// │ New PDPT (page 16) │
/// │ New PDPT (page 14) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [pdpt_idx] → new PDE (page 17) │ │
/// │ │ [pdpt_idx] → new PDE (page 15) │ │
/// │ └──────────────────────────────────────────────┘ │
/// │ │
/// │ New PDE (page 17) │
/// │ New PDE (page 15) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [pde+0] → VTL0 PTE page 5 (2 MiB, 4KB pgs) │ reused as-is │
/// │ │ [pde+1] → VTL0 PTE page 6 │ │
Expand DownExpand Up@@ -213,7 +213,7 @@ unsafe fn apply_relocations() {
/// │ The entire low half [0, 0x7FFF_FFFF_F000) is now available │
/// │ for user-space (TAs / Linux apps). │
/// │ │
/// │ Reclaim all Phase 1 pages (2–12, 16–17) back to the allocator. │
/// │ Reclaim all Phase 1 pages (2–12, 14–15) back to the allocator. │
/// └─────────────────────────────────────────────────────────────────────┘
/// ```
///
Expand All@@ -229,22 +229,22 @@ unsafe fn apply_relocations() {
/// means the existing PTE pages can be **reused as-is** for the
/// high-canonical mapping; we only need a new PDPT page and a new PDE page.
///
/// The PDPT and PDE pages are allocated from unused memory after the
/// VTL0-reserved special pages (pages 16–17), preserving all 8 PTE pages
/// for the high-canonical mapping and covering the full 16 MiB.
/// The PDPT and PDE pages are allocated from unused memory after the boot
/// stack page (pages 14–15), preserving all 8 PTE pages for the high-canonical
/// mapping and covering the full 16 MiB.
///
/// ## Page table pages used
///
/// | page | constant | purpose |
/// |------|-----------------------|----------------------------------------|
/// | 16 | `VTL1_REMAP_PDPT_PAGE`| PDPT for the high-canonical PML4 entry |
/// | 17 | `VTL1_REMAP_PDE_PAGE` | PDE pointing to PTE pages 5–12 |
/// | 14 | `VTL1_REMAP_PDPT_PAGE`| PDPT for the high-canonical PML4 entry |
/// | 15 | `VTL1_REMAP_PDE_PAGE` | PDE pointing to PTE pages 5–12 |
///
/// ## Algorithm
///
/// 1. Compute PML4/PDPT/PDE indices from `memory_base + KERNEL_OFFSET`.
/// 2. Zero and populate a PDPT page (page 16).
/// 3. Zero and populate a PDE page (page 17) pointing to all 8 VTL0 PTE
/// 2. Zero and populate a PDPT page (page 14).
/// 3. Zero and populate a PDE page (page 15) pointing to all 8 VTL0 PTE
/// pages 5–12 (4KB page mappings, no huge pages).
/// 4. Wire PML4 → PDPT → PDE.
/// 5. Flush TLB and jump to `continue_boot` at the high-canonical address.
Expand DownExpand Up@@ -280,12 +280,12 @@ unsafe fn remap_to_high_canonical() -> ! {
let pml4_pa = cr3 & CR3_ADDR_MASK;
let pml4_ptr = pml4_pa as *mut u64;

// Set up the PDPT page (page 16)
// Set up the PDPT page.
let pdpt_page_pa = memory_base + (VTL1_REMAP_PDPT_PAGE * vtl1_mem_layout::PAGE_SIZE) as u64;
let pdpt_ptr = pdpt_page_pa as *mut u64;
unsafe { core::ptr::write_bytes(pdpt_ptr, 0, ENTRIES_PER_PT_PAGE) };

// Set up the PDE page (page 17)
// Set up the PDE page.
let pde_page_pa = memory_base + (VTL1_REMAP_PDE_PAGE * vtl1_mem_layout::PAGE_SIZE) as u64;
let pde_ptr = pde_page_pa as *mut u64;
unsafe { core::ptr::write_bytes(pde_ptr, 0, ENTRIES_PER_PT_PAGE) };
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions litebox_platform_lvbs/src/mshv/vtl1_mem_layout.rs
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,10 +25,10 @@ pub const VTL1_PTE_0_PAGE: usize = 5;
pub const VTL1_KERNEL_STACK_PAGE: usize = VTL1_PTE_0_PAGE + VSM_SK_PTE_PAGES_COUNT;

/// PDPT page for the Phase 1 high-canonical PML4 entry. Placed after the
/// VTL0-reserved special pages (GDT, TSS, PT pages, stack, boot params,
/// cmdline) so that all 8 VTL0 PTE pages remain available for the
/// high-canonical mapping. This page is within the VTL0 identity-mapped
/// 16 MiB region but is otherwise unused memory.
/// VTL0-reserved special pages (GDT, TSS, PT pages, and stack) so that all 8
/// VTL0 PTE pages remain available for the high-canonical mapping. This page
/// is within the VTL0 identity-mapped 16 MiB region but is otherwise unused
/// memory.
pub const VTL1_REMAP_PDPT_PAGE: usize = VTL1_KERNEL_STACK_PAGE + 1;

/// PDE page for the Phase 1 high-canonical mapping. PDE entries point to
Expand Down
28 changes: 14 additions & 14 deletions litebox_runner_lvbs/src/main.rs
Original file line numberDiff line numberDiff line change
Expand Up@@ -176,16 +176,16 @@ unsafe fn apply_relocations() {
/// │ PML4 (page 2, from VTL0) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [0] → VTL0 PDPT (page 3) ← identity │ kept (harmless) │
/// │ │ [256] → new PDPT (page 16) ← high-canon │ Phase 1 adds │
/// │ │ [256] → new PDPT (page 14) ← high-canon │ Phase 1 adds │
/// │ │ ... │ │
/// │ └──────────────────────────────────────────────┘ │
/// │ │
/// │ New PDPT (page 16) │
/// │ New PDPT (page 14) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [pdpt_idx] → new PDE (page 17) │ │
/// │ │ [pdpt_idx] → new PDE (page 15) │ │
/// │ └──────────────────────────────────────────────┘ │
/// │ │
/// │ New PDE (page 17) │
/// │ New PDE (page 15) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [pde+0] → VTL0 PTE page 5 (2 MiB, 4KB pgs) │ reused as-is │
/// │ │ [pde+1] → VTL0 PTE page 6 │ │
Expand DownExpand Up@@ -213,7 +213,7 @@ unsafe fn apply_relocations() {
/// │ The entire low half [0, 0x7FFF_FFFF_F000) is now available │
/// │ for user-space (TAs / Linux apps). │
/// │ │
/// │ Reclaim all Phase 1 pages (2–12, 16–17) back to the allocator. │
/// │ Reclaim all Phase 1 pages (2–12, 14–15) back to the allocator. │
/// └─────────────────────────────────────────────────────────────────────┘
/// ```
///
Expand All@@ -229,22 +229,22 @@ unsafe fn apply_relocations() {
/// means the existing PTE pages can be **reused as-is** for the
/// high-canonical mapping; we only need a new PDPT page and a new PDE page.
///
/// The PDPT and PDE pages are allocated from unused memory after the
/// VTL0-reserved special pages (pages 16–17), preserving all 8 PTE pages
/// for the high-canonical mapping and covering the full 16 MiB.
/// The PDPT and PDE pages are allocated from unused memory after the boot
/// stack page (pages 14–15), preserving all 8 PTE pages for the high-canonical
/// mapping and covering the full 16 MiB.
///
/// ## Page table pages used
///
/// | page | constant | purpose |
/// |------|-----------------------|----------------------------------------|
/// | 16 | `VTL1_REMAP_PDPT_PAGE`| PDPT for the high-canonical PML4 entry |
/// | 17 | `VTL1_REMAP_PDE_PAGE` | PDE pointing to PTE pages 5–12 |
/// | 14 | `VTL1_REMAP_PDPT_PAGE`| PDPT for the high-canonical PML4 entry |
/// | 15 | `VTL1_REMAP_PDE_PAGE` | PDE pointing to PTE pages 5–12 |
///
/// ## Algorithm
///
/// 1. Compute PML4/PDPT/PDE indices from `memory_base + KERNEL_OFFSET`.
/// 2. Zero and populate a PDPT page (page 16).
/// 3. Zero and populate a PDE page (page 17) pointing to all 8 VTL0 PTE
/// 2. Zero and populate a PDPT page (page 14).
/// 3. Zero and populate a PDE page (page 15) pointing to all 8 VTL0 PTE
/// pages 5–12 (4KB page mappings, no huge pages).
/// 4. Wire PML4 → PDPT → PDE.
/// 5. Flush TLB and jump to `continue_boot` at the high-canonical address.
Expand DownExpand Up@@ -280,12 +280,12 @@ unsafe fn remap_to_high_canonical() -> ! {
let pml4_pa = cr3 & CR3_ADDR_MASK;
let pml4_ptr = pml4_pa as *mut u64;

// Set up the PDPT page (page 16)
// Set up the PDPT page.
let pdpt_page_pa = memory_base + (VTL1_REMAP_PDPT_PAGE * vtl1_mem_layout::PAGE_SIZE) as u64;
let pdpt_ptr = pdpt_page_pa as *mut u64;
unsafe { core::ptr::write_bytes(pdpt_ptr, 0, ENTRIES_PER_PT_PAGE) };

// Set up the PDE page (page 17)
// Set up the PDE page.
let pde_page_pa = memory_base + (VTL1_REMAP_PDE_PAGE * vtl1_mem_layout::PAGE_SIZE) as u64;
let pde_ptr = pde_page_pa as *mut u64;
unsafe { core::ptr::write_bytes(pde_ptr, 0, ENTRIES_PER_PT_PAGE) };
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions litebox_platform_lvbs/src/mshv/vtl1_mem_layout.rs
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,10 +25,10 @@ pub const VTL1_PTE_0_PAGE: usize = 5;
pub const VTL1_KERNEL_STACK_PAGE: usize = VTL1_PTE_0_PAGE + VSM_SK_PTE_PAGES_COUNT;

/// PDPT page for the Phase 1 high-canonical PML4 entry. Placed after the
/// VTL0-reserved special pages (GDT, TSS, PT pages, stack, boot params,
/// cmdline) so that all 8 VTL0 PTE pages remain available for the
/// high-canonical mapping. This page is within the VTL0 identity-mapped
/// 16 MiB region but is otherwise unused memory.
/// VTL0-reserved special pages (GDT, TSS, PT pages, and stack) so that all 8
/// VTL0 PTE pages remain available for the high-canonical mapping. This page
/// is within the VTL0 identity-mapped 16 MiB region but is otherwise unused
/// memory.
pub const VTL1_REMAP_PDPT_PAGE: usize = VTL1_KERNEL_STACK_PAGE + 1;

/// PDE page for the Phase 1 high-canonical mapping. PDE entries point to
Expand Down
28 changes: 14 additions & 14 deletions litebox_runner_lvbs/src/main.rs
Original file line numberDiff line numberDiff line change
Expand Up@@ -176,16 +176,16 @@ unsafe fn apply_relocations() {
/// │ PML4 (page 2, from VTL0) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [0] → VTL0 PDPT (page 3) ← identity │ kept (harmless) │
/// │ │ [256] → new PDPT (page 16) ← high-canon │ Phase 1 adds │
/// │ │ [256] → new PDPT (page 14) ← high-canon │ Phase 1 adds │
/// │ │ ... │ │
/// │ └──────────────────────────────────────────────┘ │
/// │ │
/// │ New PDPT (page 16) │
/// │ New PDPT (page 14) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [pdpt_idx] → new PDE (page 17) │ │
/// │ │ [pdpt_idx] → new PDE (page 15) │ │
/// │ └──────────────────────────────────────────────┘ │
/// │ │
/// │ New PDE (page 17) │
/// │ New PDE (page 15) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [pde+0] → VTL0 PTE page 5 (2 MiB, 4KB pgs) │ reused as-is │
/// │ │ [pde+1] → VTL0 PTE page 6 │ │
Expand DownExpand Up@@ -213,7 +213,7 @@ unsafe fn apply_relocations() {
/// │ The entire low half [0, 0x7FFF_FFFF_F000) is now available │
/// │ for user-space (TAs / Linux apps). │
/// │ │
/// │ Reclaim all Phase 1 pages (2–12, 16–17) back to the allocator. │
/// │ Reclaim all Phase 1 pages (2–12, 14–15) back to the allocator. │
/// └─────────────────────────────────────────────────────────────────────┘
/// ```
///
Expand All@@ -229,22 +229,22 @@ unsafe fn apply_relocations() {
/// means the existing PTE pages can be **reused as-is** for the
/// high-canonical mapping; we only need a new PDPT page and a new PDE page.
///
/// The PDPT and PDE pages are allocated from unused memory after the
/// VTL0-reserved special pages (pages 16–17), preserving all 8 PTE pages
/// for the high-canonical mapping and covering the full 16 MiB.
/// The PDPT and PDE pages are allocated from unused memory after the boot
/// stack page (pages 14–15), preserving all 8 PTE pages for the high-canonical
/// mapping and covering the full 16 MiB.
///
/// ## Page table pages used
///
/// | page | constant | purpose |
/// |------|-----------------------|----------------------------------------|
/// | 16 | `VTL1_REMAP_PDPT_PAGE`| PDPT for the high-canonical PML4 entry |
/// | 17 | `VTL1_REMAP_PDE_PAGE` | PDE pointing to PTE pages 5–12 |
/// | 14 | `VTL1_REMAP_PDPT_PAGE`| PDPT for the high-canonical PML4 entry |
/// | 15 | `VTL1_REMAP_PDE_PAGE` | PDE pointing to PTE pages 5–12 |
///
/// ## Algorithm
///
/// 1. Compute PML4/PDPT/PDE indices from `memory_base + KERNEL_OFFSET`.
/// 2. Zero and populate a PDPT page (page 16).
/// 3. Zero and populate a PDE page (page 17) pointing to all 8 VTL0 PTE
/// 2. Zero and populate a PDPT page (page 14).
/// 3. Zero and populate a PDE page (page 15) pointing to all 8 VTL0 PTE
/// pages 5–12 (4KB page mappings, no huge pages).
/// 4. Wire PML4 → PDPT → PDE.
/// 5. Flush TLB and jump to `continue_boot` at the high-canonical address.
Expand DownExpand Up@@ -280,12 +280,12 @@ unsafe fn remap_to_high_canonical() -> ! {
let pml4_pa = cr3 & CR3_ADDR_MASK;
let pml4_ptr = pml4_pa as *mut u64;

// Set up the PDPT page (page 16)
// Set up the PDPT page.
let pdpt_page_pa = memory_base + (VTL1_REMAP_PDPT_PAGE * vtl1_mem_layout::PAGE_SIZE) as u64;
let pdpt_ptr = pdpt_page_pa as *mut u64;
unsafe { core::ptr::write_bytes(pdpt_ptr, 0, ENTRIES_PER_PT_PAGE) };

// Set up the PDE page (page 17)
// Set up the PDE page.
let pde_page_pa = memory_base + (VTL1_REMAP_PDE_PAGE * vtl1_mem_layout::PAGE_SIZE) as u64;
let pde_ptr = pde_page_pa as *mut u64;
unsafe { core::ptr::write_bytes(pde_ptr, 0, ENTRIES_PER_PT_PAGE) };
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions litebox_platform_lvbs/src/mshv/vtl1_mem_layout.rs
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,10 +25,10 @@ pub const VTL1_PTE_0_PAGE: usize = 5;
pub const VTL1_KERNEL_STACK_PAGE: usize = VTL1_PTE_0_PAGE + VSM_SK_PTE_PAGES_COUNT;

/// PDPT page for the Phase 1 high-canonical PML4 entry. Placed after the
/// VTL0-reserved special pages (GDT, TSS, PT pages, stack, boot params,
/// cmdline) so that all 8 VTL0 PTE pages remain available for the
/// high-canonical mapping. This page is within the VTL0 identity-mapped
/// 16 MiB region but is otherwise unused memory.
/// VTL0-reserved special pages (GDT, TSS, PT pages, and stack) so that all 8
/// VTL0 PTE pages remain available for the high-canonical mapping. This page
/// is within the VTL0 identity-mapped 16 MiB region but is otherwise unused
/// memory.
pub const VTL1_REMAP_PDPT_PAGE: usize = VTL1_KERNEL_STACK_PAGE + 1;

/// PDE page for the Phase 1 high-canonical mapping. PDE entries point to
Expand Down
28 changes: 14 additions & 14 deletions litebox_runner_lvbs/src/main.rs
Original file line numberDiff line numberDiff line change
Expand Up@@ -176,16 +176,16 @@ unsafe fn apply_relocations() {
/// │ PML4 (page 2, from VTL0) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [0] → VTL0 PDPT (page 3) ← identity │ kept (harmless) │
/// │ │ [256] → new PDPT (page 16) ← high-canon │ Phase 1 adds │
/// │ │ [256] → new PDPT (page 14) ← high-canon │ Phase 1 adds │
/// │ │ ... │ │
/// │ └──────────────────────────────────────────────┘ │
/// │ │
/// │ New PDPT (page 16) │
/// │ New PDPT (page 14) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [pdpt_idx] → new PDE (page 17) │ │
/// │ │ [pdpt_idx] → new PDE (page 15) │ │
/// │ └──────────────────────────────────────────────┘ │
/// │ │
/// │ New PDE (page 17) │
/// │ New PDE (page 15) │
/// │ ┌──────────────────────────────────────────────┐ │
/// │ │ [pde+0] → VTL0 PTE page 5 (2 MiB, 4KB pgs) │ reused as-is │
/// │ │ [pde+1] → VTL0 PTE page 6 │ │
Expand DownExpand Up@@ -213,7 +213,7 @@ unsafe fn apply_relocations() {
/// │ The entire low half [0, 0x7FFF_FFFF_F000) is now available │
/// │ for user-space (TAs / Linux apps). │
/// │ │
/// │ Reclaim all Phase 1 pages (2–12, 16–17) back to the allocator. │
/// │ Reclaim all Phase 1 pages (2–12, 14–15) back to the allocator. │
/// └─────────────────────────────────────────────────────────────────────┘
/// ```
///
Expand All@@ -229,22 +229,22 @@ unsafe fn apply_relocations() {
/// means the existing PTE pages can be **reused as-is** for the
/// high-canonical mapping; we only need a new PDPT page and a new PDE page.
///
/// The PDPT and PDE pages are allocated from unused memory after the
/// VTL0-reserved special pages (pages 16–17), preserving all 8 PTE pages
/// for the high-canonical mapping and covering the full 16 MiB.
/// The PDPT and PDE pages are allocated from unused memory after the boot
/// stack page (pages 14–15), preserving all 8 PTE pages for the high-canonical
/// mapping and covering the full 16 MiB.
///
/// ## Page table pages used
///
/// | page | constant | purpose |
/// |------|-----------------------|----------------------------------------|
/// | 16 | `VTL1_REMAP_PDPT_PAGE`| PDPT for the high-canonical PML4 entry |
/// | 17 | `VTL1_REMAP_PDE_PAGE` | PDE pointing to PTE pages 5–12 |
/// | 14 | `VTL1_REMAP_PDPT_PAGE`| PDPT for the high-canonical PML4 entry |
/// | 15 | `VTL1_REMAP_PDE_PAGE` | PDE pointing to PTE pages 5–12 |
///
/// ## Algorithm
///
/// 1. Compute PML4/PDPT/PDE indices from `memory_base + KERNEL_OFFSET`.
/// 2. Zero and populate a PDPT page (page 16).
/// 3. Zero and populate a PDE page (page 17) pointing to all 8 VTL0 PTE
/// 2. Zero and populate a PDPT page (page 14).
/// 3. Zero and populate a PDE page (page 15) pointing to all 8 VTL0 PTE
/// pages 5–12 (4KB page mappings, no huge pages).
/// 4. Wire PML4 → PDPT → PDE.
/// 5. Flush TLB and jump to `continue_boot` at the high-canonical address.
Expand DownExpand Up@@ -280,12 +280,12 @@ unsafe fn remap_to_high_canonical() -> ! {
let pml4_pa = cr3 & CR3_ADDR_MASK;
let pml4_ptr = pml4_pa as *mut u64;

// Set up the PDPT page (page 16)
// Set up the PDPT page.
let pdpt_page_pa = memory_base + (VTL1_REMAP_PDPT_PAGE * vtl1_mem_layout::PAGE_SIZE) as u64;
let pdpt_ptr = pdpt_page_pa as *mut u64;
unsafe { core::ptr::write_bytes(pdpt_ptr, 0, ENTRIES_PER_PT_PAGE) };

// Set up the PDE page (page 17)
// Set up the PDE page.
let pde_page_pa = memory_base + (VTL1_REMAP_PDE_PAGE * vtl1_mem_layout::PAGE_SIZE) as u64;
let pde_ptr = pde_page_pa as *mut u64;
unsafe { core::ptr::write_bytes(pde_ptr, 0, ENTRIES_PER_PT_PAGE) };
Expand Down