summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
28 hourskernel: driver: Only init non-deferred driversexptIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
28 hourskernel: syslog: Remove unused variableIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
28 hoursrc: Execute /usr/sbin/inject on initIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
28 hoursusr.sbin: Add 'inject' program for loading KRQsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
28 hoursusr: libc: Add inject() implementationIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
28 hoursusr.bin: osh: Allow execution of direct pathsIan Moffett
This commit allows the end-user to supply a path (e.g., /usr/bin/mrow) straight to the shell to be interpreted as a binary executable path. Signed-off-by: Ian Moffett <ian@osmora.org>
28 hoursusr: Add 'echo' program to replace osh builtinIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
28 hoursusr.bin: osh: Rename 'i' to 'buf_i'Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
28 hourskernel: Introduce SYS_inject syscallIan Moffett
The SYS_inject syscall will allow the user to inject Kernel Runtime Quantums (KRQs) into the running kernel. As of now, set paths are not supported and the initial implementation includes a NULL path used to load all deferrable drivers. Previously during kernel startup, all deferrable drivers were loaded automatically. This commit makes it so that they are only loaded when sys_inject() is called with a NULL path. Signed-off-by: Ian Moffett <ian@osmora.org>
28 hoursusr.sbin: init: Allow start path to be overriddenIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
28 hoursbuild: Rename hyra-kernel to hyra.krqIan Moffett
This commit prepares for Hyra Kernel Runtime Quantums (KRQs) which allows one to make the kernel more modular Signed-off-by: Ian Moffett <ian@osmora.org>
29 hoursusr.bin: osh: Ensure argv is zerored per commandIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
45 hourskernel: panic: Implement fresh panic screenIan Moffett
Clear the screen and tweak console foreground/background to urgent looking colors during a system panic Signed-off-by: Ian Moffett <ian@osmora.org>
45 hourskernel: panic: Remove redundant newlineIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
45 hourskernel: syslog: Remove problematic lockIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
45 hourskernel/amd64: trap: Wrap regdump into a panic()Ian Moffett
- Rename regdump() to trap_fatal() - Use panic() rather than kprintf() Signed-off-by: Ian Moffett <ian@osmora.org>
45 hourskernel/amd64: trap: Restore IPL during user trapsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2 daysusr.bin: Add initial getconf implIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2 daysusr: libc: Implement POSIX sysconf()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2 daysusr: libc: Store auxiliary vector tag/value pairsIan Moffett
This commit introduces the global libc '__libc_auxv' containing auxiliary vector entries as per the System V Application Binary Interface Signed-off-by: Ian Moffett <ian@osmora.org>
2 dayskernel: exec_elf64: Ensure '.bss' is zero filledmainIan Moffett
Implement logic to go through the section header table and explicitly zero fill all entries of type SHT_NOBITS Signed-off-by: Ian Moffett <ian@osmora.org>
2 daysusr.bin: osh: Ignore tab as inputIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2 dayskernel: cons: Handle horizontal tabs ('\t')Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2 daysusr.bin: cat: Use fgets() in catIan Moffett
Implement line-by-line reading with fgets() instead of relying on read() Signed-off-by: Ian Moffett <ian@osmora.org>
2 daysusr: libc: Implement fgets()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2 daysusr: libc: Implement fopen() and fclose()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
3 dayskernel/amd64: mp: Give each core an idle threadIan Moffett
Having the same amount of idle threads per core allow the CPU to always have a thread assigned to one of its cores even when there are currently no other threads for it to take. Signed-off-by: Ian Moffett <ian@osmora.org>
3 dayskernel: descrip: Validate operations against sealIan Moffett
Ensure file I/O operations match the seal that their respective file descriptors were set with. Signed-off-by: Ian Moffett <ian@osmora.org>
3 dayskernel: Add initial support for tmpfsIan Moffett
Introduce the initial support for tmpfs, a readable and writable in-memory filesystem. Signed-off-by: Ian Moffett <ian@osmora.org>
3 dayskernel: vfs: Add support for O_CREAT flagIan Moffett
Add support for the O_CREAT flag which allows file creation upon an open() call. Signed-off-by: Ian Moffett <ian@osmora.org>
4 dayskernel: namei: Add NAMEI_WANTPARENT flagIan Moffett
In some lookup cases, we may only be interested in the parent component. For example, the parent of "/foo/bar/mrow" is "/foo/bar/". The NAMEI_WANTPARENT asks namei to only look for the parent rather than the full path. Signed-off-by: Ian Moffett <ian@osmora.org>
5 dayskernel: Add "starting init" message for verbosityIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
5 dayskernel/amd64: Deprecate reboot keyIan Moffett
Remove logic to reboot machine by simply pressing a key. Signed-off-by: Ian Moffett <ian@osmora.org>
5 dayskernel/amd64: mc1468xx: Implement date settingIan Moffett
Implement logic to update the date returned by the MC1468XX/RTC chip. This can be used to later implement some sort of time synchronization protocol or manual setting of the date. Signed-off-by: Ian Moffett <ian@osmora.org>
5 dayskernel/amd64: mc1468xx: Add 2000 to the yearIan Moffett
The year register of the RTC does not keep track of the century so default to 2000 until we figure out the non-standard century register. Signed-off-by: Ian Moffett <ian@osmora.org>
5 dayskernel/amd64: i8042: Use DMI for quirk checkingIan Moffett
On certain embedded controllers (ECs) like the EC present on the Thinkpad T420s, writes to the i8042 controller configuration byte are not very liked by the EC internal logic and thus result in them asserting an NMI as a certain host bus error. To workaround this, Hyra falls back to polling on these specific devices. Previously, Hyra did not have DMI/SMBIOS capabilities and therefore had to rely on assuming *all* Lenovo devices were "hostile". As of now since we are capable grabbing the product version from DMI, we can target specific devices like the T420s and this commit provides that logic. This commit additionally implements logic to enable interrupts on PS/2 port 0 (aka the keyboard). Signed-off-by: Ian Moffett <ian@osmora.org>
5 dayskernel/amd64: Throw away any pre-kernel huge pagesIan Moffett
Before the Hyra kernel starts up, the Limine bootloader creates a mapping of the first 4 GiB of memory (identity mapped for base revisions of zero and mapped to the HDDM on higher base revisions). However, it usually will create a huge mapping over this which would be problematic during remaps of device MMIO base addresses as they typically reside at the 4 GiB region of RAM and as of this commit, huge pages are not a supported feature of the Hyra AMD64 pmap layer. Signed-off-by: Ian Moffett <ian@osmora.org>
5 dayskernel/amd64: Only use USER_DS in md_td_kick()Ian Moffett
The function md_td_kick() is only used for user threads and there is no need reference any kernel segments. Furthermore, the previous code would introduce a bug where rpl would always be 0. Signed-off-by: Ian Moffett <ian@osmora.org>
6 daysdocs: Update title of Hyra photoIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
6 daysdocs: Update hyra.pngIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
6 dayskernel: Add SMBIOS/DMI supportIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
6 daysusr.bin: elfdump: Fix argument orderIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysrc: init.rc: Play startup toneIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysusr.sbin: init: Don't wait for init.rc to finishIan Moffett
Waiting for the init script to finish would waste time and slow down the shell handoff Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysusr.bin: osh: Clear argv after script commandIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysusr: Start shell + rc through /usr/sbin/initIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysusr.bin: Add initial 'cat' implementationIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysusr: rc: Add header comment in init.rcIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysusr.bin: osh: Add commentsIan Moffett
Introduce comments for the OSH interpreter. Comments are denoted by '@' and are ignored by OSH. Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysusr.bin: osh: Skip blank newlines in scriptsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>