| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Co-authored-by: Copilot <copilot@github.com>
|
| |
|
|
|
|
| |
architecture
Co-authored-by: Copilot <copilot@github.com>
|
| | |
|
| |
|
|
| |
Co-authored-by: Copilot <copilot@github.com>
|
| | |
|
| |
|
|
| |
Co-authored-by: Copilot <copilot@github.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
- Updated physical memory management (PMM) to utilize memblock for memory layout and frame allocation.
- Enhanced the virtual memory manager (VMM) to allocate the frame map from memblock, ensuring it starts at the correct virtual address without relocation.
- Improved frame allocation and deallocation functions to handle physical addresses more consistently.
- Adjusted the slab allocator to correctly convert between physical and virtual addresses.
- Refined page fault handling to ensure proper frame allocation and address translation.
- Streamlined the initialization process for PMM and VMM, ensuring a more robust setup of memory structures.
Co-authored-by: Copilot <copilot@github.com>
|
| |
|
|
| |
functionality
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Implemented a self-test runner in `selftest.cc` to invoke all test suites.
- Added tests for atomic operations in `test_atomic.cc`, covering construction, store/load, exchange, arithmetic, and compare-and-swap.
- Created tests for the Flattened Device Tree (FDT) in `test_fdt.cc`, verifying node access and compatibility queries.
- Developed a comprehensive Physical Memory Manager (PMM) test suite in `test_pmm.cc`, including allocation, deallocation, reference counting, and boundary conditions.
- Implemented Red-Black Tree tests in `test_rbtree.cc`, validating insertion, deletion, and iteration.
- Added Slab Allocator tests in `test_slab.cc`, covering various allocation sizes, edge cases, and operator overloads.
- Created Spinlock tests in `test_spinlock.cc`, ensuring proper locking behavior and interrupt state preservation.
- Developed Virtual Memory Area (VMA) tests in `test_vma.cc`, validating region mapping, unmapping, and fault handling.
- Added tests for Virtual Memory Management (VMM) in `test_vmm.cc`, verifying address translation and page alignment.
|
| | |
|
| |
|
|
| |
Cache
|
| | |
|
| |
|
|
| |
from Linux kernel source
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit introduces a variety of string manipulation functions, including:
- `memmem`: Searches for a substring in a memory area.
- `memmove`: Safely copies memory areas, handling overlaps.
- `mempcpy`: Copies memory and returns a pointer to the end of the destination.
- `memrchr`: Finds the last occurrence of a character in a memory area.
- `memset`: Fills a memory area with a specified value.
- `rindex`: Returns the last occurrence of a character in a string.
- `stpcpy` and `stpncpy`: Copies strings and returns a pointer to the end.
- `strcat`, `strchr`, `strcspn`, `strlcat`, `strlcpy`, `strlen`, `strncat`, `strncmp`, `strncpy`, `strnlen`, `strpbrk`, `strrchr`, `strstr`, `strtok`, and `strtok_r`: Various string manipulation functions for concatenation, searching, and tokenization.
Assembly implementations for `memcpy`, `memmove`, and `memset` are also included for optimized performance on x86_64 architectures.
|
| | |
|
| |
|
|
| |
management
|
| | |
|
| | |
|
| | |
|
|
|
- Implement MMU hardware primitives for RISC-V SV39 in mmu.h
- Create trap vector control primitives in trap.h
- Define trap frame structure for RISC-V in trapframe.h
- Add assembly routines for context switching in swtch.S
- Implement trap vector entry/exit in trap_vector.S
- Introduce basic error number definitions in errno.h
- Provide placement new/delete operators in new.h
- Define kernel panic handler in panic.h and implement in panic.cc
- Establish basic type definitions in types.h
- Create the kernel main entry point in main.cc with global initialization
- Add synchronization primitives using spinlocks in spinlock.h and spinlock.cc
- Define per-CPU state tracking for interrupts in cpu_state.h
- Create a linker script for the kernel in linker.ld
- Update module makefiles for kernel and library components
|