summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
28 hoursoasm: emit: Remove extra newlineIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
29 hoursproject: Bump version to 2.4mainIan Moffett
- [kernel]: Avoid make panic screen configurable [0] - [kernel]: Avoid using kprintf() during panic [1] - [kernel]: Add sys/crypto/* [2] - [kernel/amd64]: Get CPU family and model number [3] - [kernel/amd64]: Track interrupt count [4] - [usr: libc]: Add math.h + musl math impl port [5] - [sys]: Add 64-bit atomic operations in sys/atomic.h [6] - [kernel: sched]: Sort out MI/MD context switch logic [7] - [kernel]: Add kernel accounting information [8] - [usr]: Add 'kstat' program [9] - [kernel: sched]: Add support for CPU pinning [10] Commits referenced: [0]: 85ddd63bddfa20bedce3a387c69dcf66f882a8ea [1]: a789a2d36560f64952dcfc25d330f1ac04206c14 [2]: 2a93cf52e5386eb1b3586565af6a06ade4d32a66 [3]: 2f1902f6e554f6bc36b5a3e4cf8add8c3e5197cc [4]: 25d4aca4bf49bdbee6a7a35ef5d63ae45138ddf5 [5]: 30634165980deaeead9f4e71e0ff6a5c9d897776 [6]: a66c3f8d3d1f70beb3147999db21229803eb7021 [7]: f6900b5c3b4832f48359fd761b80f8693a6735e8 [8]: 8a3973e46941b6a8c88a49594364a04ee4b1d84e [9]: d6bd4640721867f59d89c68fddb15098524c56c8 [10]: 3c9e0969840d47a812f5e65fa43f694f2e7f3ff3 ... Signed-off-by: Ian Moffett <ian@osmora.org>
29 hoursusr: Add initial OSMX64 emulator sourcesIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
30 hoursoasm: emit: Handle increment/decrement operationsIan Moffett
Implement the initial encoding logic for INC/DEC instructions. Signed-off-by: Ian Moffett <ian@osmora.org>
30 hoursoasm: emit: Add 'unused' field to instructionIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
30 hourskernel: tmpfs: Fixup real_size computationIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
30 hoursoasm: emit: Fix typoIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
30 hoursoasm: parse: Add TT_INC to parse_tok()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
30 hoursoasm: emit: Don't use TAILQ_FOREACH for processingIan Moffett
In order to have more control over the flow at which we grab the next tokens, we should roll our own loop by hand using TAILQ_FIRST() and TAILQ_NEXT() Signed-off-by: Ian Moffett <ian@osmora.org>
32 hourskernel: subr: Check uaddr against mmap ledgerIan Moffett
When validating memory addresses coming from userspace, we currently only check if it is within range of the program stack or data. However, data may also be allocated in the heap which involves addresses stored in the memory map ledger. In order for user programs to be able to pass references to that kind of memory to syscalls, we must be able to check the addresses against ledger entries as well. Signed-off-by: Ian Moffett <ian@osmora.org>
36 hoursoasm: Add initial codegen emit sourcesIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
36 hoursbuild: Remove 'BLACKLIST'Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
36 hoursoasm: Open and grab fd for binary output fileIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
36 hoursoasm: parse: Add tok_is_xreg() helperIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
36 hoursoasm: lex: Convert and store <imm> to uint16_tIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
36 hoursoasm: lex: Free tokenstr on errorIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2 daysusr: oasm: Free pointers on error pathsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2 daysusr: oasm: Add initial parsing logicIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2 daysusr: oasm: Add IMM tokstr entryIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2 daysusr: oasm: Lex registers and operandsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2 daysusr: oasm: Add log.cIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2 daysusr: oasm: Store last token and line numberIan Moffett
Keep track of the last token type (for parser) and keep track of the current line number for debugging. Signed-off-by: Ian Moffett <ian@osmora.org>
2 daysusr: oasm: Add register token typesIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2 daysusr: oasm: Add quotes around token nameIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2 daysusr: Add initial "oasm" assembler workIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
3 daysusr: osh: Introduce '&' for background tasksIan Moffett
Previously, when running programs from the shell. The execution must finish before anything else can be done. This commit allows users to add an ampersand ('&') after the command in order to run it in the background. This is an example of its usage: -- @ beep at 400 Hz for 9000ms (to annoy people for fun). @ We will be running it in the background and do a 'kstat' @ to see that the number of tasks have increased. beep 400 9000 & kstat .. -- Signed-off-by: Ian Moffett <ian@osmora.org>
3 daysusr: osh: Refactor parsing logicIan Moffett
- Add parse_line() to simplify parsing user input - Fixup style ... Signed-off-by: Ian Moffett <ian@osmora.org>
3 dayskernel: kconf: Seperate shared options to sys/confIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
3 daysusr: osh: Only write printable charactersIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
4 daysusr: nerve: Add 'peek' verb to nerve(1)Ian Moffett
While poking at a nerve can be very useful, there are times where we need to peek at them to see their current state. This commit introduces the 'peek' verb to do exactly that. Here is how one may peek at the console features: -- [chloe::osmora]~ nerve peek consfeat ansi_esc=1 show_curs=1 -- Signed-off-by: Ian Moffett <ian@osmora.org>
4 daysman: nerve: List 'consfeat' nerve endingIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
4 daysusr: nerve: Convert nerve name in nerve_to_def()Ian Moffett
Add helper to convert nerve name into numeric nerve type so that peek_nerve() may be implemented while keeping things clean. Signed-off-by: Ian Moffett <ian@osmora.org>
4 daysusr: nerve: Ensure nerve packet does not overflowIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
4 daysusr: nerve: Use 32 bit datum rather than 8 bitIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
4 daysusr: Add 'whoami' programIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
4 daysusr: nerve: Add 'consfeat' nerveIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
4 daysusr: nerve: Write 'c' directlyIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
4 daysdocs: man: Add nerve(1)Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
4 daysusr.bin: Add 'nerve' program to poke ctlfsIan Moffett
The 'nerve' program allows users to poke at a ctlfs entry and write their own data. Signed-off-by: Ian Moffett <ian@osmora.org>
5 dayskernel/amd64: mp: Pin one idle thread to each coreIan Moffett
Each core on the CPU gets one idle thread so that it is always up to something. To ensure these threads are not bouncing wildly between cores and are always ready for their respective processor to take when they have no threads to grab. We must call proc_pin() on each for every processor. Signed-off-by: Ian Moffett <ian@osmora.org>
5 daysdocs: man: Add cat(1)Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
5 daysdocs: man: Add exit(2)Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
5 daysdocs: man: Add mex(1)Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
5 daysdocs: man: Add echo(1)Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
5 daysdocs: man: Add beep(1)Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
5 dayskernel: sched: Add support for CPU pinningIan Moffett
This commit introduces support for pinning processes to specific cores which can be useful for things like, keeping core-specific workthreads running on their respective processors as well as mitigating very specific cases of false-sharing and performance degradation caused by a thread jumping between cores which requires cache-line entries to be thrashed around between them. Threads pinned to a specific core will always see their cached data in the same L1, L2, etc. Signed-off-by: Ian Moffett <ian@osmora.org>
5 dayskernel: spawn: Deprecate SPAWN_WAITIan Moffett
Deprecate SPAWN_WAIT in favor of waitpid() Signed-off-by: Ian Moffett <ian@osmora.org>
5 dayslib: libc: Add waitpid()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
5 dayskernel: spawn: Add waitpid()Ian Moffett
Add waitpid() in preparation of deprecating SPAWN_WAIT. Signed-off-by: Ian Moffett <ian@osmora.org>
5 dayskernel/amd64: Set up seperate syscall stackIan Moffett
It is a good idea to have a completely different stack during syscalls. This commit implements a TSS IST entry for syscalls. Signed-off-by: Ian Moffett <ian@osmora.org>