Age | Commit message (Collapse) | Author |
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Introduce support for returning symbols or strings in memory by using
the symbol table and REX prefixes for 64-bit register accesses
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Introduce register allocation via a bitmap where each bit corresponds to
a specific register index.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit adds a 32-bit register ID list as well as the beginning of
ABI specific values
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Use clang during early state until we configure our own cross compiler
for L5
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
To ensure that all residual data does not remain for the mapping in its
table, we write a flat zero if prot is also zero i.e., no permissions
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 function to halt all processor cores on the machine excluding self.
This may be used for emergency conditions on the system.
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 support for sending inter-processor interrupts on
the mainbus to other cores on the machine.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
These sometimes cause issues so we are better off just stripping them
from the final binary.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
As of now, the bootloader handles setting up the MMIO regions and we'll
need huge page support (2 megs) for reassigning MMIO space
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Add new clock device callback to get the elapsed time from the timer
being initialized, in microseconds.
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 adds support for page-level cacheability attributes. We have
added the pmap_set_cache() as well as some MMU_CACHE_* bits
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit handles base address registers by storing them in a bar
array within the PCI device structure. We also introduced a helper
header to perform operations with BARs such as getting the length of
their underlying region
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Introduce a new proc_self() function to get the current running process
on the current CPU core.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
The '.modules' section stores the list of modules to bring up on early
boot.
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>
|
|
Use the current platform latch when selecting a syscall window from the
current domain.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
A syscall domain in the L5 kernel is a fixed list of "syscall windows",
each syscall window represents a specific platform and/or syscall model.
A platform latch within each domain determines which window / platform
should be visible. Since syscall domains are per-process, these changes
are local to their respective processes.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Add a new function to kill processes and clean them up. They will then
be marked as EXITING and it is up to the parent to do the rest.
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>
|
|
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>
|
|
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>
|
|
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>
|
|
|
|
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>
|
|
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>
|
|
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>
|