Commit Graph

214 Commits

Author SHA1 Message Date
Enrico Fraccaroli (Galfurian) 4e35a1682f Clean up some comments in slab, and use round_up function instead of a custom one. 2023-06-27 11:13:54 -04:00
Enrico Fraccaroli (Galfurian) b7c82d7333 Rewrite realpath without memory allocation. 2023-06-23 15:02:17 -04:00
Enrico Fraccaroli (Galfurian) 7972ddeac7 - Add missing comments;
- Reimplement a more safer dirname;
- Implement a simple and safe tokenize function;
2023-06-23 14:37:24 -04:00
Enrico Fraccaroli (Galfurian) 8b6a72af3e Set logging to INFO for kheap. 2023-06-23 11:25:52 -04:00
Enrico Fraccaroli (Galfurian) ef6ef96576 Standardize the way we generate random numbers. 2023-06-22 15:42:00 -04:00
Enrico Fraccaroli (Galfurian) 87a796b440 Use bitfields to handle free blocks. Add check when creating new VM area. 2023-06-22 12:03:53 -04:00
Enrico Fraccaroli (Galfurian) 2cd03ccfe0 Check correctness of the kheap split and merge. Update memory test. 2023-06-22 11:08:39 -04:00
Enrico Fraccaroli (Galfurian) 90487afffc Use that beautiful list_head to implement the heap. 2023-06-19 19:32:10 -04:00
Enrico Fraccaroli (Galfurian) 96ee8198f8 Keep track of the tail of the heap, and of previous free blocks. 2023-06-19 19:06:12 -04:00
Enrico Fraccaroli (Galfurian) a872442aa3 Finish reworking the heap. 2023-06-19 17:44:27 -04:00
Enrico Fraccaroli (Galfurian) eb74fae1fd Add round_up math function. Add toggle_bit function. Minor clean up of the kheap code. 2023-06-16 10:18:22 -04:00
Enrico Fraccaroli (Galfurian) bb8bb799f9 Map the start of the brk to an helper structure. 2023-06-15 16:39:35 -04:00
Enrico Fraccaroli (Galfurian) 537c3a70bb Make find_vm_area public, so that kheap can use it too. 2023-06-15 14:42:36 -04:00
Enrico Fraccaroli (Galfurian) 8266274e84 Minor cleanup of the memory management code. 2023-06-15 14:37:39 -04:00
Enrico Fraccaroli (Galfurian) 3f2756ccf4 Implement a first version of mmap and munmap. 2023-06-14 12:57:11 -04:00
Enrico Fraccaroli (Galfurian) af77072301 Keep VM areas sorted, and add function to destroy VM areas. 2023-06-14 12:54:16 -04:00
Enrico Fraccaroli (Galfurian) 7c9e0fea03 Add functions to find a VM area, check if an address range is valid, and find a suitable spot of a given size for a new VM area. 2023-06-14 12:50:40 -04:00
Enrico Fraccaroli (Galfurian) 4275002414 Fix wrong type. 2023-06-14 12:49:16 -04:00
Enrico Fraccaroli (Galfurian) c5a62dda05 Disable logging. 2023-06-14 12:48:53 -04:00
Enrico Fraccaroli (Galfurian) fb0323c8ce Create a temporary solution to call a 6-arguments system call (specifically, mmap). 2023-06-09 15:36:03 -04:00
Enrico Fraccaroli (Galfurian) b0f7ceec1b Remove unused includes 2023-06-09 14:31:40 -04:00
Enrico Fraccaroli (Galfurian) d90e7ff02b Move list_head in libc 2023-06-09 10:45:51 -04:00
Enrico Fraccaroli (Galfurian) fb559d6f1b Finish testing message queues. 2023-06-09 10:03:40 -04:00
Enrico Fraccaroli (Galfurian) c17153318c Finish the implementation for message send, and receive. Implement their IPC_NOWAIT behaviour. 2023-06-08 17:06:42 -04:00
Enrico Fraccaroli (Galfurian) f515c44eb3 Implement message send and receive functions. 2023-06-08 16:38:42 -04:00
Enrico Fraccaroli (Galfurian) 8f6ff5a59a Add the core for creating a message queue. Write the code for sending messages. 2023-06-08 15:46:50 -04:00
Enrico Fraccaroli (Galfurian) e5370dff36 Prepare main structure for managing message queues. 2023-06-08 10:51:33 -04:00
Enrico Fraccaroli (Galfurian) 2fcce9360c Merge branch 'develop' into feature/ipc_msg 2023-06-08 10:45:35 -04:00
Enrico Fraccaroli (Galfurian) 63d36004b3 Move the pointer to the semaphores back into the kernel-only data structure sem_info_t. 2023-06-08 10:45:26 -04:00
Enrico Fraccaroli (Galfurian) ca3c769467 Initialize the message queue data structures. 2023-06-08 10:37:45 -04:00
Enrico Fraccaroli (Galfurian) a9cd9db8c6 Enable and disable scheduling feedback from cmake. 2023-06-02 13:58:57 -04:00
Enrico Fraccaroli (Galfurian) 523cf39b5a Merge branch 'feature/Feature-Semaphores' into develop 2023-06-02 13:50:20 -04:00
Enrico Fraccaroli (Galfurian) 8891ed7d7a Fix semop return type. Do some minor style-based fixes. 2023-06-02 13:49:10 -04:00
Enrico Fraccaroli (Galfurian) 116f4a50f7 Reorganize includes 2023-05-31 08:56:52 -04:00
Enrico Fraccaroli (Galfurian) db050db01c Move list of semaphores inside semid_ds structure. 2023-05-24 13:31:44 -04:00
Enrico Fraccaroli (Galfurian) 1acec3e7b3 Fix third test program. Fix EAGAIN message. 2023-05-23 14:05:41 -04:00
Enrico Fraccaroli (Galfurian) 3ae9258347 Fix permission management for IPC and also for EXT2. 2023-05-23 13:40:02 -04:00
Enrico Fraccaroli e7c0334ac0 Hide semaphore info from user-space (WIP). 2023-05-23 10:43:52 -04:00
Enrico Fraccaroli (Galfurian) a9d84f3a5d Add functions to copy semaphore structures. 2023-05-23 09:43:19 -04:00
Enrico Fraccaroli (Galfurian) 3e03f1e6fd Clean up the semget example. Clean up the return values of semop function. 2023-05-19 14:24:04 -04:00
Enrico Fraccaroli (Galfurian) 9f63a93d63 Properly handle ipc and sem permissions. Fix return error codes. Fix private key generation. 2023-05-17 15:23:42 -04:00
Enrico Fraccaroli 97eedf450d Create ipc code for managing all ipcs and their keys 2023-05-10 14:21:54 -04:00
Enrico Fraccaroli 19e8ad309f Move IPC stuff from the libc side, inside the sys folder. 2023-05-08 12:53:17 +02:00
Enrico Fraccaroli e19354a9ee Implement ipcs mechanisms. 2023-04-27 10:10:34 +02:00
Enrico Fraccaroli bd3c8fb4fe Write procfs function for IPC semaphores. Clean up the semaphores code. 2023-04-27 09:47:24 +02:00
Enrico Fraccaroli 2198df5576 Prepare IPC procfs system. 2023-04-26 10:37:43 +02:00
Aldegheri Alessandro 09f0d145d0 IPCS, IPCRM, IPC_NOWAIT currently working 2023-04-22 16:14:40 +02:00
Aldegheri Alessandro b9244ab96b Merge between nsops fix and current ipcs and ipcrm implementation 2023-04-22 14:38:56 +02:00
Aldegheri Alessandro ef1ae0f3c7 Currently working on ipcs and ipcrm commands 2023-04-22 14:33:13 +02:00
Enrico Fraccaroli 20db826dd4 Fix scheduling feedback on file 2023-04-22 11:54:55 +02:00