Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2024-04-23 | Implementation of riscv_hwprobe syscall from Linux (#325) | Wojciech Muła | 1 | -0/+51 | |
See: https://www.kernel.org/doc/html/latest/arch/riscv/hwprobe.html | |||||
2024-03-22 | Implement syscall readlinkat and readv (#318) | mylai-mtk | 1 | -0/+87 | |
* Implement syscall readlinkat * Implement syscall readv by read syscalls Since pk lacks kernel-space dynamic memory management, we implement readv with normal read syscalls rather than forwarding it to spike | |||||
2022-04-30 | Fix a file leak in function `at_kfd` (#276) | MaxXing | 1 | -1/+3 | |
2022-04-11 | Handle unimplemented syscalls gracefully | Andrew Waterman | 1 | -11/+1 | |
We previously kernel-panicked because that made it more obvious when a syscall implementation was missing. These days, it's more common that the C library will do something sensible in response to returning -ENOSYS. Favor that approach to avoid frustrating users. | |||||
2022-04-08 | Stub out sysinfo syscall | Andrew Waterman | 1 | -0/+1 | |
2022-01-09 | fix file leak | Andrew Waterman | 1 | -1/+1 | |
Eliminate excess reference count when associating fd with file. Fixes #258 | |||||
2021-08-27 | pk: correct the handling of SYS_getcwd (#250) | Saleem Abdulrasool | 1 | -1/+1 | |
`SYS_getcwd` is different from `getcwd` in that the return value is < 0 on failure otherwise it is the length of the string. The proxy kernel was treating 0 as success and all other values as error. As a result, we would never return a valid value for `getcwd`. The following program now executes properly with the Proxy Kernel: ```c #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <linux/limits.h> int main(int argc, char **argv) { unsigned char buffer[PATH_MAX + 1] = {0}; if (getcwd(buffer, PATH_MAX)) printf("cwd: %s\n", buffer); return EXIT_SUCCESS; } ``` | |||||
2021-03-25 | pk: support >2 GiB of user memory for RV64 | Andrew Waterman | 1 | -0/+2 | |
Previously, the pk would always run from virtual address MEM_START. Instead, remap it into the negative virtual addresses, allowing user processes to expand beyond MEM_START. | |||||
2021-03-25 | Add some missing syscall stubs | Andrew Waterman | 1 | -0/+8 | |
2021-03-25 | pk: only access user memory through explicit accessors | Andrew Waterman | 1 | -57/+177 | |
Enforced with sstatus.SUM. | |||||
2021-03-25 | Add `statx` syscall (#234) | huaixv | 1 | -0/+20 | |
2020-11-29 | Remove use of copy_stat() from sys_fstat and sys_lstat (#228) | Marcus Comstedt | 1 | -2/+4 | |
2020-11-17 | Remove use of copy_stat() from sys_fstatat | Marcus Comstedt | 1 | -1/+1 | |
The system call should return the stat struct in kernel format, not libc format. | |||||
2020-03-16 | Fix CPI calcualtion for -s option (#192) | davidmetz | 1 | -1/+1 | |
This attempt at rounding leads to wrong results, for example: 314689951 cycles 314690101 instructions 0.90 CPI With my change results in: 314689951 cycles 314690101 instructions 0.99 CPI I think this was supposed to be part of rounding behaviour but it doesn't work if only the final digit does it and there is no carry... Instead I changed it to truncate after the second digit | |||||
2019-10-22 | Implement dup3 syscall (#162) | Luís Marques | 1 | -0/+16 | |
2019-10-22 | Make performance counters always 64 bits wide (#178) | Luís Marques | 1 | -12/+13 | |
This prevents the counters from easily overflowing for a 32-bit pk. | |||||
2019-02-28 | Stub out madvise syscall (#145) | Luís Marques | 1 | -0/+1 | |
2019-01-04 | Implement clock_gettime syscall (#139) | Luís Marques | 1 | -1/+10 | |
2018-02-01 | Bump the Linux version PK claims to support | Andrew Waterman | 1 | -1/+1 | |
This makes it more compatible with recent glibc. | |||||
2017-08-29 | Stub out sys_prlimit64 | Andrew Waterman | 1 | -0/+1 | |
2016-12-06 | avoid non-standard predefined macros | Andrew Waterman | 1 | -1/+1 | |
2016-11-13 | For RV32, mmap offset is in 4 KiB increments | Andrew Waterman | 1 | -2/+6 | |
2016-11-13 | Add syscall stubs to get through libpthread initializers | Andrew Waterman | 1 | -0/+2 | |
2016-08-10 | when -s is passed, print time, instret, cycle, and CPI | Andrew Waterman | 1 | -2/+10 | |
2016-07-12 | Remove uarch counters | Andrew Waterman | 1 | -1/+0 | |
We'll re-add support for the generic performance counter facility once it exists. | |||||
2016-04-30 | Move DRAM to high addresses | Andrew Waterman | 1 | -11/+11 | |
2016-04-20 | pk: proxy chdir syscall to fesvr | Garret Kelly | 1 | -0/+6 | |
2016-04-06 | Don't assume existence of uarch counters | Andrew Waterman | 1 | -25/+1 | |
2016-03-09 | Refactor pk, bbl, machine into separate libraries | Andrew Waterman | 1 | -1/+1 | |
Yuck. | |||||
2016-03-05 | Disentangle PK and BBL a bit | Andrew Waterman | 1 | -1/+2 | |
2016-02-19 | Fix struct stat size mismatch for RV32 | Andrew Waterman | 1 | -4/+8 | |
2016-02-19 | Remove incorrect code supporting ELF32 on RV64 and vice-versa | Andrew Waterman | 1 | -34/+12 | |
This is technically possible by running an RV32 supervisor on an RV64 machine, but the M-mode and S-mode code would need to be compiled and linked separately. | |||||
2016-01-18 | add renameat syscall | Colin Schmidt | 1 | -0/+13 | |
2015-09-14 | Add ftruncate syscall | Andrew Waterman | 1 | -0/+15 | |
2015-09-11 | Stub out a few system calls | Andrew Waterman | 1 | -0/+4 | |
2015-05-10 | Split pk functionality into pk and bbl | Andrew Waterman | 1 | -2/+1 | |
pk is now an AEE only (i.e. it can only execute user programs). bbl is now an SEE only (i.e. it can only host kernels). | |||||
2015-03-12 | Update to new privileged spec | Andrew Waterman | 1 | -12/+21 | |
2015-02-09 | work in progress on new supervisor spec | Andrew Waterman | 1 | -1/+0 | |
2015-01-26 | return -ENOSYS for ioctl, rather than aborting | Andrew Waterman | 1 | -0/+1 | |
2015-01-20 | Support linkat, unlinkat, mkdirat syscalls | Andrew Waterman | 1 | -58/+81 | |
Also, old-style syscalls e.g. open are now implemented with e.g. openat. | |||||
2014-10-26 | Don't rely on the C library | Andrew Waterman | 1 | -3/+9 | |
2014-09-11 | Support glibc 2.20 programs | Andrew Waterman | 1 | -1/+6 | |
2014-08-10 | Fix uarch counter printout type. | Christopher Celio | 1 | -1/+1 | |
2014-08-07 | Added "-c" option to track uarch counter info. | Christopher Celio | 1 | -0/+24 | |
2014-06-13 | Changes to allow spike & RTL behavior to better match each other. | Christopher Celio | 1 | -0/+1 | |
- EI turned off on sys_exit. - IM/IP cleared on start. - badvaddr only saved to tf on page faults. | |||||
2014-05-27 | Allow mmap to map new segments larger than 1 page on top of existing ↵ | Colin Schmidt | 1 | -5/+6 | |
mappings and add mprotect syscall | |||||
2014-05-22 | Add several syscalls, and move syscall header file from newlib | Colin Schmidt | 1 | -6/+142 | |
syscalls added (openat, access, accessat, faccessat, etc.) | |||||
2014-02-04 | Abandon MIPS convention for indicating syscall errors in register a3 | Andrew Waterman | 1 | -47/+50 | |
2013-12-13 | Add times syscall | Andrew Waterman | 1 | -12/+37 | |
2013-11-25 | Update to new privileged ISA | Andrew Waterman | 1 | -1/+0 | |