Commit Graph

1388 Commits

Author SHA1 Message Date
K. Lange
b95f27dc60 aarch64: Add a tty driver for the pl011 uart 2022-02-11 11:55:36 +09:00
K. Lange
85274e61ad aarch64: cleanup 2022-02-11 11:54:28 +09:00
K. Lange
8062fdda17 aarch64: fix mmu_first_n_frames since ram moved 2022-02-09 23:14:50 +09:00
K. Lange
a72352d163 aarch64: start work on interrupt dispatch 2022-02-09 21:02:00 +09:00
K. Lange
8c7e6209f4 aarch64: increase inital stack size for kernel startup 2022-02-09 21:01:26 +09:00
K. Lange
b55964e451 aarch64: flip smp mutex after doing init for better startup synchronization 2022-02-09 21:01:09 +09:00
K. Lange
2c5a6db126 procfs: avoid crashes on empty module, filesystem tables 2022-02-07 12:47:58 +09:00
K. Lange
1ed8ba466c aarch64: Actually reset kernel stack on exec 2022-02-07 12:46:13 +09:00
K. Lange
82090737dd aarch64: basic kernel tracebacks on el1-el1 fault 2022-02-07 12:38:30 +09:00
K. Lange
9f03252e3a aarch64: Load kernel symbol table 2022-02-06 21:23:35 +09:00
K. Lange
e1e66bf6cd aarch64: be more flexible about where the kernel is physically 2022-02-06 21:10:20 +09:00
K. Lange
097662ef3d x86_64: fix segfault not being delivered due to cow regression 2022-02-06 15:04:21 +09:00
K. Lange
92ae583c5b aarch64: smp: reorder barriers before enabling MMU 2022-02-03 17:48:51 +09:00
K. Lange
3368796328 aarch64: retrieve MIDR per-core 2022-02-03 08:27:33 +09:00
K. Lange
07e97e2784 aarch64: A better memcpy for arm 2022-02-03 08:15:02 +09:00
K. Lange
afab2320bf aarch64: SMP 2022-02-03 00:08:47 +09:00
K. Lange
187b331e9e ptrace: fix delivery of final signals, improve dbg 2022-02-02 20:53:23 +09:00
K. Lange
4c04e01f61 aarch64: basic tracing support 2022-02-02 20:52:56 +09:00
K. Lange
ca7c67ca5d aarch64: signal delivery 2022-02-02 17:37:09 +09:00
K. Lange
7238f0f2a5 aarch64: virtio: bind more keys, scroll wheel 2022-02-02 16:11:35 +09:00
K. Lange
10010578bf aarch64: Fixup cpuinfo, improve cpu-name 2022-02-02 13:22:20 +09:00
K. Lange
79bd90e44c aarch64: Start calling this 2.1.0 2022-02-02 12:56:55 +09:00
K. Lange
0bb91b0edb aarch64: split up assembly, add more comments 2022-02-02 12:49:04 +09:00
K. Lange
18a4e78336 aarch64: More cleanup 2022-02-02 12:08:44 +09:00
K. Lange
d3b4b6fab2 aarch64: virtio input devices, nearly complete 2022-02-01 17:06:07 +09:00
K. Lange
e8d78f00fc aarch64: reorganize 2022-02-01 13:27:49 +09:00
K. Lange
981d578ad3 aarch64: Initial timer interrupt support 2022-02-01 13:01:59 +09:00
K. Lange
fb578d9ae5 aarch64: procfs things 2022-02-01 08:29:01 +09:00
K. Lange
bf40d8f289 aarch64: some memory size management 2022-02-01 06:54:59 +09:00
K. Lange
f0d7ed7743 aarch64: fixup clone(), add mmu_free(), cache stuff for ld.so 2022-01-31 21:08:11 +09:00
K. Lange
c3311fe272 insmod: not available on aarch64 yet 2022-01-30 21:35:46 +09:00
K. Lange
4f510c7fef x86_64: fixup include paths; mmu.h is shared now 2022-01-30 21:28:10 +09:00
K. Lange
b53a56fe72 aarch64: begin work on new target 2022-01-30 21:25:27 +09:00
K. Lange
442d61ae5e gzip: Some const correctness maybe helps 2022-01-12 18:52:52 +09:00
K. Lange
19508075e4 kernel: Don't mark process running if it is exiting... 2022-01-08 17:44:39 +09:00
K. Lange
d7595b2b81 v2.0.1 2022-01-04 08:35:14 +09:00
K. Lange
cac1eca676 kernel: extend kernel heap sbrk sanity check
We use sbrk() to set up the memory for physical page
reference counting, and the previous limit was causing
panics on boot with >60GB of RAM. Oops.
2021-12-12 12:55:09 +09:00
K. Lange
0d9dbb80fc base: Prepare for 2.0.0 2021-12-06 11:32:23 +09:00
K. Lange
0c6f58277c v1.99.10 2021-12-01 21:32:59 +09:00
K. Lange
345a6312db kernel: Possibly fix sporadic lockup in compositor? 2021-12-01 20:17:55 +09:00
K. Lange
658ae81f65 kernel: cleanup things introduced in COW 2021-12-01 09:19:25 +09:00
K. Lange
18174e46de kernel: Implement basic copy-on-write for fork() 2021-11-30 22:26:45 +09:00
K. Lange
de0bda736a kernel: at least add full lead comments to everything 2021-11-26 11:31:10 +09:00
K. Lange
c572a5c148 kernel: clean up kernel/arch/x86_64/{cmos,pit}.c 2021-11-26 11:05:46 +09:00
K. Lange
574267fd1a kernel: cleanup kernel/generic.c 2021-11-26 10:29:28 +09:00
K. Lange
e6313efcfc kernel: cleanup kernel/arch/x86_64/user.c 2021-11-26 10:28:23 +09:00
K. Lange
35423ecc66 kernel: cleanup kernel/arch/x86_64/smp.c 2021-11-26 10:27:39 +09:00
K. Lange
80cf1a1f15 kernel: cleanup kernel/arch/x86_64/idt.c 2021-11-26 09:52:05 +09:00
K. Lange
5b16cd6ce4 kernel: bad ordering of list insert / wakeup caused crashes 2021-11-24 17:34:06 +09:00
K. Lange
ade7d13707 x86_64: fixup bad memory walk when doing backtraces 2021-11-24 17:33:38 +09:00
K. Lange
045431b2de kernel: prevent modules from being loaded multiple times 2021-11-18 19:47:28 +09:00
K. Lange
fb30aae90d tarfs: throw EROFS on create 2021-11-17 19:18:56 +09:00
K. Lange
d90d6e1963 kernel: Add simple mutex with a wait queue 2021-11-17 19:13:33 +09:00
K. Lange
f3759daadf ioctl: request should be 'unsigned long' 2021-11-15 21:51:33 +09:00
K. Lange
f7a29b90af kernel: Use local APIC timer for preemption on APs, not an IPI 2021-11-14 17:16:20 +09:00
K. Lange
697200013a v1.99.9 2021-11-09 13:28:16 +09:00
K. Lange
a5079f93b0 lfbvideo: Keep resolution set by loader if none specified by args 2021-11-05 07:53:35 +09:00
K. Lange
43b6bd32e3 kernel: exclude serial ports from pts numbering; start numbering at 1 2021-11-04 19:17:21 +09:00
K. Lange
96cb5d9c01 lfbvideo: Don't map EGA/VGA text mode range as WC as apparently things don't like that 2021-11-01 19:07:09 +09:00
K. Lange
ac35ad0bbd x86_64: Don't wrap version codename in quotes as we're doing that directly now 2021-10-30 15:24:36 +09:00
K. Lange
119c42077d kernel: Put codename string in quotes for stylistic reasons 2021-10-30 08:53:49 +09:00
K. Lange
d6fc131912 kernel: Export sys_ functions so they appear in symbol table 2021-10-28 07:51:20 +09:00
K. Lange
a83d641d2c mmu: Be more clear about what's happening when we run out of RAM 2021-10-28 07:48:25 +09:00
K. Lange
d79bf46731 fbterm: Move log to center, set bg to black 2021-10-26 16:14:38 +09:00
K. Lange
49342b7996 net: try to actually track received packet sizes... 2021-10-25 18:27:08 +09:00
K. Lange
073e43384c kmalloc: Use existing assertion infrastructure 2021-10-25 18:25:21 +09:00
K. Lange
4b62e4ab22 assert: use dprintf, not printf, when printing assertion message 2021-10-25 18:24:49 +09:00
K. Lange
465c82a5f8 irq: Mark isr_common as global so it shows up in symbol table 2021-10-25 18:23:50 +09:00
K. Lange
1bb382de12 kernel: Print gs alongside other registers in panic 2021-10-25 18:23:33 +09:00
K. Lange
95ef9f02ac fbterm: Support 24bpp framebuffers 2021-10-25 13:50:08 +09:00
K. Lange
8839e4357c multiboot: Correctly pass bits-per-pixel from framebuffer data 2021-10-25 13:49:57 +09:00
K. Lange
f0091f8f87 ringbuffer: don't use heap allocator if buffer size is one page 2021-10-24 19:52:51 +09:00
K. Lange
591a074608 pipe: Embiggen pipe buffers 2021-10-24 19:39:42 +09:00
K. Lange
e3b713487c pipe: Make pipes more direct with ring buffer usage 2021-10-24 18:12:20 +09:00
K. Lange
ca8fc639db kernel: Fix gdt install clobbering symbol table, or whatever else ends up after it 2021-10-24 16:23:56 +09:00
K. Lange
ce1e9b4e03 socket: Purge rx queue when socket closes? 2021-10-23 12:42:48 +09:00
K. Lange
8b363c878b mmu: Fixup mapping for physical memory address >4GiB 2021-10-23 12:19:41 +09:00
K. Lange
1ed5ea6404 net: net_udp_send() should return size of data sent 2021-10-22 15:39:21 +09:00
K. Lange
f300386d13 net: initial loopback interface support 2021-10-22 15:36:03 +09:00
K. Lange
3decb96169 v1.99.8 2021-10-21 11:18:42 +09:00
K. Lange
08820eca71 kernel: oops 2021-10-21 09:35:02 +09:00
K. Lange
bf6d5f765d kernel: make_process_ready may be called with sleep_lock already acquired? 2021-10-21 08:48:26 +09:00
K. Lange
55835ab494 fbterm: Only enable scrolling by default on vga terminal 2021-10-20 19:39:47 +09:00
K. Lange
1efc36e51a kernel: Fixup bad lock ordering in process_awaken_signal 2021-10-20 19:37:31 +09:00
K. Lange
b6caef5d7e x86_64: Cleanup boot messages to fit in vga text mode better 2021-10-20 18:49:40 +09:00
K. Lange
0f2d7334b0 fbterm: VGA backend, enable scrolling by default 2021-10-20 18:49:07 +09:00
K. Lange
038727eb1a x86_64: Support multiboot2 loaders 2021-10-20 16:03:05 +09:00
K. Lange
043b3797f7 x86_64: Mark kernel with AOUT_KLUDGE address parameters so the 64-bit ELF can be booted directly 2021-10-20 16:02:46 +09:00
K. Lange
76191f89fb kernel: Print tracebacks for more fatal errors 2021-10-20 10:33:58 +09:00
K. Lange
32c3bf1825 insmod: Support passing arguments to modules 2021-10-20 10:33:35 +09:00
K. Lange
c366ea2dfd kernel: Initial pass at new debug printf interface 2021-10-19 20:29:14 +09:00
K. Lange
7ce16a005d net: Oops, we broke UDP sends 2021-10-13 10:50:05 +09:00
K. Lange
526c8fc55e smp: allow command line override for where to scan for RSDP 2021-10-12 22:23:58 +09:00
K Lange
751f78ef2f net: don't explode without a network 2021-10-12 21:15:44 +09:00
K. Lange
a8ca76845c smp: Don't just fatal() if there's too many cores; initialize up to 32 2021-10-12 20:04:38 +09:00
K Lange
72825a7d46 lfbvideo: recalculate vmware memory size on display change 2021-10-09 22:06:31 +09:00
K. Lange
05e224dee7 kernel: Better fault reports 2021-10-04 20:34:42 +09:00
K. Lange
495d1a196a kernel: Use 'Misaka' as the system named presented by the kernel 2021-09-30 10:37:46 +09:00
K. Lange
1f0d982240 kernel: Initial try at actual user buffer validation 2021-09-29 14:07:32 +09:00
K Lange
62368bbf44 tcp: Fixup socket receive buffers 2021-09-27 21:09:28 +09:00
K. Lange
fe6402ba18 v1.99.7 2021-09-27 15:31:47 +09:00
K. Lange
0caa949550 ptrace: Inform non-parent tracer when tracee exits 2021-09-25 07:16:47 +09:00
K Lange
aa8fdab570 ptrace: support tracing from non-parent process 2021-09-24 19:15:06 +09:00
K. Lange
41ba264cdc ptrace: PTRACE_SINGLESTEP 2021-09-24 14:41:17 +09:00
K. Lange
9e19ebb93a ptrace: Update status before setting suspended flag 2021-09-24 13:10:19 +09:00
K. Lange
c8a37456ec ptrace: POKEDATA, permission fixes for PEEKDATA 2021-09-24 12:00:46 +09:00
K. Lange
5d7eec4cee ptrace: avoid suggesting process terminated when continuing from ptrace_signal 2021-09-24 07:30:21 +09:00
K. Lange
0146b31837 ptrace: Allow separate tracing of signals and syscalls 2021-09-24 00:11:14 +09:00
K. Lange
8859849452 kernel: Acquire a lock around waitpid condition changes 2021-09-24 00:10:30 +09:00
K. Lange
470b2bfabb ptrace: Catch signals, start work on debugger 2021-09-22 20:32:21 +09:00
K. Lange
6899683bb4 strace: Initial support for a ptrace() mechanism, strace tool 2021-09-22 15:33:02 +09:00
K. Lange
f8ba7b9002 syscall: PTR_VALIDATE explicitly does not check null... 2021-09-18 20:00:02 +09:00
K. Lange
44651da833 v1.99.6 2021-09-18 13:55:16 +09:00
K. Lange
aabbde7877 net: another batch of rewrites 2021-09-17 21:03:53 +09:00
K. Lange
88bcaba5e7 ping: shoddy implementation 2021-09-17 12:39:04 +09:00
K. Lange
e33d883ce5 lfbvideo: Fallback to port-IO driver if MMIO isn't available 2021-09-15 20:39:59 +09:00
K. Lange
39ebb4b6c0 procfs: quick-and-dirty /proc/kallsyms, missing modules 2021-09-13 18:56:55 +09:00
K. Lange
c24d743740 mmu: Reserve a few more initial PTs so we can support 64GiB of memory 2021-09-13 09:39:04 +09:00
K. Lange
04b21aed13 mmu: Actually read multiboot mmap data 2021-09-12 22:40:29 +09:00
K. Lange
0068e25073 pex: Cleanup pipes? 2021-09-12 14:04:11 +09:00
K. Lange
5816937516 pex: Actually try to close server endpoints 2021-09-12 13:23:38 +09:00
K. Lange
cce8885060 tmpfs: Make total block allocations available through a procfs entry 2021-09-10 09:28:42 +09:00
K. Lange
37df43dcaf tcp: Time out connection after 3 attempts, reduce time between resends 2021-09-09 20:17:29 +09:00
K. Lange
b96af51342 tcp: handle connection refused 2021-09-09 20:13:48 +09:00
K. Lange
ab7e89baa7 net: Handle signals 2021-09-09 20:04:20 +09:00
K. Lange
8269614da7 net: Maybe allow udp binds? 2021-09-09 20:03:58 +09:00
K. Lange
c0cb37f971 net: ongoing network work 2021-09-09 19:42:19 +09:00
K. Lange
e842cd6aa2 ipv4: Don't wait so long for initial arp response 2021-09-09 12:23:11 +09:00
K. Lange
e87f09a1b4 piix4: move to module, only load in virtualbox 2021-09-09 12:22:30 +09:00
K. Lange
637529efff tmpfs: finer-grained locks, use global mmu mapping 2021-09-08 22:02:54 +09:00
K. Lange
3af34cce04 ipv4: try to arp local stuff? 2021-09-08 19:33:20 +09:00
K. Lange
fd10920585 net: e1000 receive fixes? 2021-09-08 19:11:28 +09:00
K. Lange
a941c3a20d pci: Implement PIIX4 PIRQ remapping 2021-09-06 21:03:00 +09:00
K. Lange
8a944f4a83 smp: Co-opt Multiboot's config_table member to sneak ACPI tables to kernel 2021-09-06 19:46:36 +09:00
K. Lange
42146f042c procfs: cleanup /proc/idle format 2021-09-05 14:16:15 +09:00
K. Lange
3a08644de6 kernel: Higher resolution CpuPermille 2021-09-05 14:05:37 +09:00
K. Lange
2c45d0b5d0 kernel: times() can take NULL 2021-09-05 13:48:17 +09:00
K. Lange
bafc85f675 kernel: more sensible idle tracking 2021-09-05 11:35:38 +09:00
K. Lange
780aa1b534 top: Track multiple slices of usage, show averages 2021-09-05 11:04:47 +09:00
K. Lange
bb7b9c26d7 kernel: track idle task usage 2021-09-03 16:44:49 +09:00
K. Lange
f41c0717b5 kernel: Track relative CPU usage over one-second spans 2021-09-03 10:17:10 +09:00
K. Lange
efec80cb38 times: rudimentary support for process times 2021-09-02 23:08:18 +09:00
K. Lange
6eaeff3451 smp: Force userspace preemption on other cores. 2021-09-02 21:38:30 +09:00
K. Lange
1d4fbc41b3 kernel: Should not need to use temporary buffer for fxsave/rstr 2021-09-02 18:04:44 +09:00
K. Lange
98bcb40671 nproc: Expose processor count and use it to pick between yielding and non-yielding spin locks 2021-09-02 17:27:21 +09:00
K. Lange
783e6d69d6 chown: fixup semantics, support names in command 2021-09-02 15:10:12 +09:00
K. Lange
4dc97e7bf1 v1.99.5 2021-09-01 20:32:09 +09:00
K. Lange
a77d0ef85a smp: Memory invalidation fixes 2021-09-01 19:55:00 +09:00
K Lange
403b1ecfcb serial: should be owned by 'dialout' group 2021-08-31 22:40:49 +09:00
K. Lange
8984cc8f71 groups: First pass at support for supplementary group lists 2021-08-31 20:46:48 +09:00
K. Lange
8775a28209 groups: Initial support for gids. 2021-08-31 19:47:04 +09:00
K. Lange
afdf9671a6 vfs: Allow 'filesystems' that are partition mappers to not return a node 2021-08-31 16:56:18 +09:00
K. Lange
61b7444192 kernel: restore debug prints for a page fault in the kernel, since SMP failures are rare now 2021-08-20 17:14:40 +09:00
K. Lange
a34dadba37 kernel: fix getpgid(pid != 0) 2021-08-20 17:10:35 +09:00
K. Lange
7609912b03 v1.99.4 2021-08-20 09:24:28 +09:00
K. Lange
17dfed4cfd kernel: use that new sleep_on_unlocking in ringbuffers 2021-08-16 18:29:08 +09:00
K. Lange
c130197ab8 kernel: fixup lock ordering around process_timeout_sleep 2021-08-16 17:20:28 +09:00
K. Lange
91efdaa9f7 xhci: convert to module 2021-08-08 16:37:19 +09:00
K. Lange
ced8bcba96 kernel: restore fprintf() for printing to vfs nodes (character devices) 2021-08-08 16:36:57 +09:00
K. Lange
7c7ec4689a xhci: cleanup 2021-08-04 19:35:55 +09:00
K. Lange
82714d4183 xhci: userspace-queryable debug interface 2021-08-01 17:28:52 +09:00
K. Lange
22a6c0ca3a text: Add some macros so we can more easily swap out the bitmap font 2021-07-22 17:06:43 +09:00
K. Lange
f57679e0b4 v1.99.3 2021-07-19 20:10:12 +09:00
K. Lange
6b308e5fc1 i965: Send mode change signal? 2021-07-19 19:50:41 +09:00
K. Lange
d406a6948f modules: track loaded sizes so we can free modules later 2021-07-19 10:28:26 +09:00
K. Lange
9ad39394e4 modules: list modules in /proc/modules 2021-07-17 20:18:02 +09:00
K. Lange
236c8bacb3 modules: Reimplement loadable kernel modules 2021-07-17 18:55:54 +09:00
K. Lange
8e4640e1d7 xhci: start on controller driver 2021-07-14 10:44:46 +09:00
K. Lange
a96089e9d9 sysfunc: actually bother validating some values 2021-07-12 06:28:17 +09:00
K. Lange
a2d63a6125 ps2hid: Fixup initialization sequence; unbreaks scrollwheel in vbox 2021-07-08 18:46:04 +09:00
K. Lange
2891185341 net: disable debug prints during TCP connection 2021-07-07 19:13:33 +09:00
K. Lange
62128bd1aa kernel: (needs review) let threads sleep on their own children? 2021-06-23 22:42:48 +09:00
K. Lange
a1065c7c47 vfs: ramdisk length needs to be updated on the *original* node 2021-06-22 07:42:10 +09:00
K. Lange
40821160c1 vfs: copied nodes should get their own refcounts 2021-06-22 07:41:55 +09:00
K. Lange
a99b958c18 v1.99.2 2021-06-20 21:25:14 +09:00
K. Lange
3fb82c1e85 net: return eof when socket is closed and no data is available 2021-06-19 15:50:14 +09:00
K. Lange
653d6a7035 net: select random sequence number to start 2021-06-19 13:11:43 +09:00
K. Lange
8b6d3784ea tcp: fixup connect retry 2021-06-18 21:42:52 +09:00
K. Lange
ac7c4cd2c5 net: don't dynamically allocate hashmaps and lists? 2021-06-18 21:42:35 +09:00
K. Lange
e6721fc10f pex: don't leave invalid connections with the server read/write methods? 2021-06-18 21:41:44 +09:00
K. Lange
d5358b7e97 net: fix bad copy in ICMP ECHO 2021-06-18 21:41:17 +09:00
K. Lange
886d1afe9e net: various 2021-06-18 20:08:33 +09:00
K. Lange
71bd62d516 net: actually try to figure out destination hardware addresses 2021-06-18 18:54:34 +09:00
K. Lange
d8dc85e507 net: don't duplicate struct layout in e1000 device object 2021-06-18 15:20:22 +09:00
K. Lange
1467ec050e net: various improvements to still terrible network stack 2021-06-16 23:14:58 +09:00
K. Lange
8b1973d31e pci: handle setups without a host bridge? 2021-06-15 21:18:14 +09:00
K. Lange
83987b292c v1.99.1 2021-06-15 19:50:33 +09:00
K. Lange
87d6784633 net: silence the network stack unless MISAKA_DEBUG_NET is defined 2021-06-15 19:29:57 +09:00
K. Lange
a4436581ed net: hack up some fin packets 2021-06-15 19:19:54 +09:00
K. Lange
c38143fa81 net: silence more debug messages 2021-06-15 17:16:09 +09:00
K. Lange
fc9ca3d955 net: try to get the package manager working 2021-06-15 17:04:02 +09:00
K. Lange
ef1026fb40 net: complete most of a TCP stream? 2021-06-14 21:35:28 +09:00
K. Lange
23e1b8811e net: we really need some proper blocking queue primitives 2021-06-14 20:13:14 +09:00
K. Lange
ccc6379c39 net: tcp: basic syn/ack receipt? 2021-06-14 18:55:03 +09:00
K. Lange
80564085e1 e1000: should probably keep using whatever was in the card after reset 2021-06-14 18:54:51 +09:00
K. Lange
fdc1f653d6 net: more tcp; timeout nameserver lookups 2021-06-14 15:00:46 +09:00
K. Lange
4d8ee9840a net: hacked up udp stuff, dns resolver 2021-06-14 14:18:23 +09:00
K. Lange
cea3703f3e net: initialize e1000e better? 2021-06-14 11:58:28 +09:00
K. Lange
914dc15f02 lfbvideo: Ensure we map enough space for large preset video modes 2021-06-13 15:59:14 +09:00
K. Lange
2eb83c5ecd ps2hid: give up on PS/2 if trying to empty input buffer doesn't work after 1024 tries 2021-06-13 15:59:14 +09:00