Age | Commit message (Collapse) | Author |
|
Add a timeout so that if data never arrives, the system doesn't get
locked up.
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>
|
|
Expose I/O taps to userland using a tap message interface. An
application may construct a tap message to send to the kernel requesting
data from a specific tap, if there is data, the buffers will be safely
populated, otherwise some error returned.
An example is accessing the PS/2 keyboard tap:
--
char name[] = "i8042.port.0";
char buf[2] = {0, 0};
struct iotap_msg msg = {
.opcode = IOTAP_OPC_READ,
.buf = buf,
.len = len
};
...
/* muxtap() may be used */
...
--
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
The concept of resource borders is mostly used for resources that can
easily be mapped into memory, synced and contain attributes. However,
some things (e.g., a network resource, keyboard input, etc) may not be
great with raw memory mappings. This commit mitigates this problem.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces scancoding buffering as well as an I/O tap so
that it may be exposed outside of the driver
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This implementation walks through the entire table of registered
interrupt handlers and calls each driver handler.
The driver is to return a value of 1 if the interrupt is theirs and has
been handled, otherwise it is to return 0. The handling core is to
respoond to a 1 by exiting the table walk early, and responds to a 0 by
continuing.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Ensure no uninitialized garbage ends up in the handler structure after
we've allocated it.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit makes the interrupt table global so it can be accessed
through assembly.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit reserves the first 64 vectors for the I/O APIC input lines.
During an IRQ, each handler will be called to see which one handles it.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces the interrupt registration framework for L5 and
accounts for I/O APIC IRQ inputs, and interrupt priority levels encoded
within bits 7:4 of the interrupt vector
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Introduce a helper function to convert legacy ISA IRQ numbers to the GSI
numbers assigned to an I/O APIC pin
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
The I/O tap framework provides a way to bypass the typical device
filesystem interface for applications where more direct access would be
beneficial.
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>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Keep track of how many referencing are on a vnode so one isn't freed
early while another object is still using it.
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 the fd_open() function as apart of the kernel file
descriptor API to open a file and get a file descriptor.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces the system call for mounting filesystems. As of
now, only the fstype and target params are supported
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 a process environment block structure to pass information such
as arguments, argument counts, etc to the process during startup without
having to make a mess on the stack
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 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>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit adds a lookup ID to each symbol as well as ensuring that
they have a defined name even if the requested one is NULL
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>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces a way to allocate and store symbols as structures
consiting of a name and an address. We also provide a way to cache
lookups to provide faster access.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
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>
|
|
This commit introduces lexical, parsing and code generation support for
the return statements. As of now, one is only able to return unsigned integers
but this will be expanded upon in the future
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|