Commit Graph

664 Commits

Author SHA1 Message Date
8infy db55f99e23 Integrate uACPI & remove own ACPI parsing code
This commit adds uACPI as a submodule and removes all handwritten table
parsing code as well as struct definitions, since they now work via
uACPI. There's also now an ability to shut down by using the power
button.
2024-09-01 23:12:44 +03:00
8infy 476d4bad74 io: add outw & inw helpers 2024-09-01 23:12:44 +03:00
8infy 1042c1b1b0 time: introduce a new timespec_ns helper
This just returns the total number of elapsed nanoseconds given a
timespec struct.
2024-09-01 23:12:44 +03:00
8infy f306edb5ec semaphore: introduce a semaphore_reset helper
This simply clears the internal counter of a semaphore.
2024-09-01 23:12:44 +03:00
8infy 7136e96fdb spinlock: introduce helpers that clear & restore interrupts
These are just wrappers around acquire/release that clear and restore
interrupts respectively.
2024-09-01 23:12:44 +03:00
8infy f93470be2a mutex: introduce a MUTEX_ACQUIRE_TIMED helper
This is just based on the previously added semaphore_timedwait.
2024-09-01 19:40:21 +03:00
8infy 7e3922c7ad semaphore: add a new semaphore_timedwait helper
This is the same as semaphore_wait except it allows for the acquire
attempt to time out after a given period of time.
2024-09-01 19:39:25 +03:00
8infy 0854d08020 interrupt: add a new 'priv' field
This field is needed for interrupt handlers that need context in order
to know what to do.
2024-09-01 19:37:22 +03:00
8infy 6154318ab3 kernel: add a helper to retrieve the bsp CPU
This is useful to be able to e.g. set affinity for the BSP CPU.
2024-09-01 19:37:09 +03:00
8infy 0ecbbff4d1 kernel: initialize pci earlier
There's no reason to initialize PCI so late, and this will be needed
by the following commits.
2024-09-01 19:34:21 +03:00
Matheus fc09d39895 jobctl: allow tty stealing 2024-08-28 20:26:43 -03:00
Matheus 62d0cd1706 auth: AUTH_ACTIONS_FILESYSTEM_RENAME 2024-08-27 22:20:22 -03:00
Matheus ba6506b9d7 auth: filesystem unlink action check + add parent vnode to auth_filesystem_check 2024-08-27 21:46:33 -03:00
Matheus 284d91f6e7 hda: add missing header to fix compilation 2024-08-27 21:02:26 -03:00
Matheus f55b51a06d vfs: finish new locking scheme 2024-08-27 21:02:12 -03:00
Matheus 8f6bc6c4c1 vfs: rewrite vfs_link 2024-08-26 23:02:06 -03:00
Matheus 76c74cfca1 vfs: change VOP_UNLINK parameters, more fixes 2024-08-26 22:41:01 -03:00
Matheus 0236ad663f syscalls: fix more deadlocks and issues 2024-08-26 22:40:06 -03:00
Matheus 42bda0bf92 vfs: redo locking 2024-08-26 21:47:23 -03:00
Matheus da150523ba vfs: leave handling of VOP_LOCK and VOP_UNLOCK to each filesystem 2024-08-26 18:45:17 -03:00
Matheus 84c47f07c9 auth: signals 2024-08-26 17:45:05 -03:00
Matheus fdcda428f9 cred: setuid, setgid, seteuid, setegid and auth check 2024-08-25 16:08:06 -03:00
Matheus 87adc4d10a setpgid: check if pid is the current proc or a child 2024-08-25 12:51:10 -03:00
Matheus 58f3129da2 vfs: add VOP_ACCESS check to vfs_create 2024-08-25 12:07:30 -03:00
Matheus d7b33ffe42 devfs: call VOP_CREATE directly instead of using vfs_create 2024-08-25 12:07:09 -03:00
Matheus 12dd3dc089 mmap: check file permissions before allowing it to be mapped 2024-08-25 11:58:09 -03:00
Matheus 914e075397 localsock: check for file permissions 2024-08-25 11:29:55 -03:00
Matheus 4d3e2b7494 mouse: change mode to 0666 2024-08-25 11:29:23 -03:00
Matheus cb1cf8a31f utime: proper auth checks 2024-08-24 23:16:55 -03:00
Matheus 0e0471f8ee open: make file truncation require FILE_WRITE 2024-08-24 23:16:30 -03:00
Matheus 193f5b49b9 mount: call into auth 2024-08-24 22:56:22 -03:00
Matheus 2190b331e8 link: call VOP_ACCESS 2024-08-24 22:43:18 -03:00
Matheus 7afed7daee sethostname: do auth check 2024-08-24 22:34:26 -03:00
Matheus 807c27e7f5 getdent: make sure fd is readable 2024-08-24 22:33:58 -03:00
Matheus 4308317ea5 execve: SUID and SGID 2024-08-24 21:53:05 -03:00
Matheus cd51d4eaf0 auth: chroot 2024-08-24 21:52:44 -03:00
Matheus 806fa3a333 devfs: take cred struct in devfs_register 2024-08-24 21:51:55 -03:00
Matheus 357f5c65cf vfs: access check on vfs_lookup 2024-08-24 20:21:42 -03:00
Matheus 4d51507953 auth: initial implementation + some filesystem checks 2024-08-24 20:01:01 -03:00
Matheus ecd4a72677 itimer: allow interrupts to happen while waiting to schedule on a specific cpu 2024-08-22 20:17:32 -03:00
Matheus 5bc363d1ee tcp: remove assert 2024-08-22 00:14:55 -03:00
Matheus c5531bc12b tmpfs: return ENXIO if trying to open socket 2024-08-22 00:02:03 -03:00
Matheus 0adbb989ef ext2: return ENXIO if trying to open socket 2024-08-22 00:01:36 -03:00
Matheus f8a5d9426b vmm: send SIGBUS on vmm OOM 2024-08-21 23:52:14 -03:00
Matheus 679aa1a69d cpu: handle SIGFPE 2024-08-21 23:48:54 -03:00
Matheus 13d34e49ae ringbuffer: better operations 2024-08-21 23:40:01 -03:00
Matheus fb24745071 string: better memset and memcpy 2024-08-21 23:23:58 -03:00
Matheus ad6fb43623 syscalls: mprotect 2024-08-21 21:34:26 -03:00
Matheus dd75dc2d87 vmm: vmm_changemmuflags 2024-08-21 21:33:29 -03:00
Matheus 2550f167d4 vfs: fix include 2024-08-17 15:24:28 -03:00