Project

General

Profile

Actions

Task #6189

closed

Support for page table declaration

Added by Alexander Kamkin over 9 years ago. Updated over 9 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Andrei Tatarnikov
Category:
Template Processor
Target version:
Start date:
07/13/2015
Due date:
07/24/2015
% Done:

100%

Estimated time:
Detected in build:
svn
Published in build:
2.2.12

Description

  1. Page table (PT) is a set of page table entries (PTEs).
  2. PT declaration is a set of address objects (AO) located at a given address in couple with a PTE preparator.
  3. PTE preparator is a function f: AOPTE.
  4. PT declaration leads to data declaration.
Actions #1

Updated by Andrei Tatarnikov over 9 years ago

  • Status changed from New to Open

Syntax - r4463, r4464 (see if you like it)
Skeleton (Ruby stubs) - r4465, r4467.

Actions #2

Updated by Andrei Tatarnikov over 9 years ago

  • % Done changed from 0 to 70

Done - r4469, r4470.

Actions #3

Updated by Andrei Tatarnikov over 9 years ago

  • Status changed from Open to Resolved
  • % Done changed from 70 to 100
Actions #4

Updated by Andrei Tatarnikov over 9 years ago

class PageTableTemplate < MiniMipsBaseTemplate

  def pre
    super

    page_table {
      page_table_preparator { |pte|
        word pte.v, pte.va, pte.pa
      }

      page_table_adapter { |mo|
        page_table_entry(:v => 1, :va => mo.va, :pa => mo.pa)
      }

      org 0x000F0000
      label :page_table

      page_table_entry(:v => 1, :va => 0x0000000, :pa => 0x0001000)
      page_table_entry(:v => 1, :va => 0x0001000, :pa => 0x0002000)
      page_table_entry(:v => 1, :va => 0x0002000, :pa => 0x0003000)

      page_table_entry(
        memory_object(
          :va => 0x000A000..0x000F000, :pa => 0x000F000, :size => 64)
      )
    }

  end

  def run
    # Place holder
    nop
  end

end
Actions #5

Updated by Andrei Tatarnikov over 9 years ago

  • Status changed from Resolved to Closed
  • Published in build set to 2.2.12
Actions

Also available in: Atom PDF