Age | Commit message (Collapse) | Author |
|
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>
|
|
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>
|
|
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>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Introduce initial fcntl flags for file related I/O. This is to be
included on both the user and kernel side.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Introduce a new libc cross() function which acts as a wrapper to the
SYS_cross system call.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
The map callback within the MAC ops returns ssize_t, therefore the
mac_map() wrapper should return the same
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 initial support for mandatory access control. As
one may recall, L5 follows "everything is memory". In order to interact
with a resource, a process must request it from the kernel in the form
of a (sometimes) syncable memory buffer.
Each resource as well as processes have an access level, if a process
attempts to request a resource with a higher access level than it, the
request is rejected by the kernel. However, if a process has a greater
than or equal access level as a resource, the request can be granted.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces this initial bring-up logic for ports on the HBA.
We have allocated the command headers and each FIS RX area for each
respective command slot. More work to be done but this lays the
groundwork
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>
|
|
Typically filesystems are tree-like, however certain filesystems in the
form of images have fixed paths baked into them. This optimizes handling
so there isn't a need to unpack it into a rootfs/tmpfs
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>
|
|
Abort if the host controller does not support 64-bit addressing
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Here we ensure that the port is in a stopped state, we have also added
port descriptor lists to keep track of each port.
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 this initial ahci_init() logic by resetting HBA
state on startup.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
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>
|
|
This commit introduces a new framework we call "clkdev". It is used to
keep track of the clock sources on the system and be able to fetch them
later based on specific attributes.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Here we add a write(2) stub and add it to the UNIX syscall interface. We
also move the UNIX syscall numbers into compat/unix/syscall.h
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Add routine to check if an address is valid within a process's address
space. More work will need to be done with this but this introduces a
great starting point
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>
|
|
The PCI_BAR_IO() checks if the BAR is an I/O type BAR. The value 1 is
returned if true, otherwise 0 if it is a memory type BAR.
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 special frame allocation utility to reserve memory for
DMA done between devices and the host.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit adds a virtual memory range queue to the process descriptor
in order to keep track of mapped pages and free their respective frames
upon program exit.
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>
|
|
This commit introduces the support for having PCI specific device
drivers while providing a tiny AHCI stub that logs the existence of the
host bus adapter. The PCI bus itself has a driver for enumerating the
devices and associating a specific driver to it, the device drivers
themselve must advertise themselves to the PCI driver.
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>
|
|
This commit adds a new 'lookup_type_t' for representing the various
kinds of lookups one can perform on the PCI bus. The actual code to
drive the lookups is exposed as the pci_bus_lookup() routine.
When doing a lookup of a PCI device, you must specify the kind of lookup
to perform. If a PCI_LU_CLASSREV is requested, only the PCI class and
subclass fields in the PCI lookup are used.
If the PCI_LU_VENDEV is requested, only the PCI vendor ID and device ID
are used in the lookup.
Signed-off-by: Ian Moffett <ian@osmora.org>
|