freestanding headers

This commit is contained in:
2026-05-10 19:33:29 +02:00
parent 5e0bd98874
commit d65a736012
+13
View File
@@ -6,6 +6,19 @@ Honestly I have no idea. Maybe you have too much free time.
Keep in mind that the Pepper kernel is a personal project and it's full of bugs, inconsistencies, weird ways of doing things (and I don't care because it's my toy). Keep in mind that the Pepper kernel is a personal project and it's full of bugs, inconsistencies, weird ways of doing things (and I don't care because it's my toy).
Now if you still want to write something for this OS, thank you. Follow along. Now if you still want to write something for this OS, thank you. Follow along.
## Headers available in userspace
Of course, all of the freestanding headers are available:
- `<float.h>`: macros for floating-point types
- `<limits.h>`: macros for integer types
- `<iso646.h>`: macros for bitwise and logical operators
- `<stdarg.h>`: variadic function support
- `<stddef.h>`: definitions for `size_t`, `ptrdiff_t`, and others
- `<stdbool.h>`: definitions for boolean types
- `<stdint.h>`: definitions for `int_t` and `uint_t` types
Also available is the `<syscall.h>` header that gives access to low-level system call interface, notably the `syscallX` function family, X being the amount of arguments to use.
## 1. Write the source code ## 1. Write the source code
PepperOS is able to run programs written in x86 assembly, and C programs. PepperOS is able to run programs written in x86 assembly, and C programs.