Age | Commit message (Collapse) | Author |
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Introduce a new resource deallocation function that destroys a specified
virtual address space.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces new functions that will be useful for
having multiple processes run on the system.
- Add md_proc_yield()
- Add md_proc_kick()
- Add md_sched_switch()
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Add a testing program for ELF loading purposes. This is to be removed in
later versions of Lunos
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces load balancing of processes between cores by
using a scalable "CPU arbiter" which decides how to fetch the next core
descriptor.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
It is best to return NULL when there is no next CPU instead of wrapping
so we have an indicator at where the list ends.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Use the OSMORA kernel configuration framework to add options for L5Lunos
to parse during early startup.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces a new cpu_get() function to acquire a specific
CPU by using a logical ID as an index.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
|
|
This commit introduces several new functions for switching the processor
into a ring three context along with its task's respective process
descriptors to be implemented correctly.
- Add md_set_ip() to update proc instruction pointer
- Add stack definitions
- Add stack mapping logic
...
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces several new functions for switching the processor
into a ring three context along with its task's respective process
descriptors to be implemented correctly.
- Add md_set_ip() to update proc instruction pointer
- Add stack definitions
- Add stack mapping logic
...
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Allocate more than one frame that exists and increment by one if zero.
We also did some style fix ups, added an #undef and a break.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Add a current processor field to the processor core descriptor in order
to keep track of which process is currently running.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Store a trapframe in the process control block so that state may be
saved and restored between contexts
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Condence the page table write into a single line and point the next
table as a virtual address
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Introduce lazy allocation in the vm_map() function. When passing a zero
value to any of the base address fields of the map spec, allocate our
own memory.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces a new mmu_write_vas() function to allow the
caller to change the virtual address space used by the current
processor.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces the initial logic for putting process descriptors
in an initialized state. This commit also introduces the process control
block definition.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces the ability to create new virtual address spaces
for user programs and a zeroed lower half.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Place a guard page at the end of every mapping to catch overflows before
they start corrupting the system.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Introduce a machine independent mechanism to map multiple pages through
the new vm_map() function
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Verify the edge case where firmware may want to move/remap the Local APIC
MMIO base as we are making an assumption that the base starts at
0xFEE00000.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|