summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2024-04-22 20:17:44 -0400
committerIan Moffett <ian@osmora.org>2024-04-22 20:17:44 -0400
commit9ea4f985a53a893d3a125dad776905f04905151d (patch)
tree566ba2e3fdf822e55a57032cbb019fad09eb4dfa
parentb90f77b95cd1509754b8038db10dde36c679c052 (diff)
kernel: auxv: Add AT_PAGESIZE
Signed-off-by: Ian Moffett <ian@osmora.org>
-rw-r--r--lib/libc/include/sys/auxv.h3
-rw-r--r--sys/include/sys/loader.h1
-rw-r--r--sys/kern/kern_sched.c1
3 files changed, 4 insertions, 1 deletions
diff --git a/lib/libc/include/sys/auxv.h b/lib/libc/include/sys/auxv.h
index b06d01c..a776e05 100644
--- a/lib/libc/include/sys/auxv.h
+++ b/lib/libc/include/sys/auxv.h
@@ -41,8 +41,9 @@
#define AT_SECURE 6
#define AT_RANDOM 7
#define AT_EXECFN 8
+#define AT_PAGESIZE 9
-#define AT_MAX_COUNT 9
+#define AT_MAX_COUNT 10
struct auxv_entry {
uint64_t tag;
diff --git a/sys/include/sys/loader.h b/sys/include/sys/loader.h
index b1f06c1..297c18d 100644
--- a/sys/include/sys/loader.h
+++ b/sys/include/sys/loader.h
@@ -44,6 +44,7 @@
#define AT_SECURE 6
#define AT_RANDOM 7
#define AT_EXECFN 8
+#define AT_PAGESIZE 9
#define STACK_PUSH(ptr, val) *(--ptr) = val
#define AUXVAL(ptr, tag, val) __extension__ ({ \
diff --git a/sys/kern/kern_sched.c b/sys/kern/kern_sched.c
index 9551265..a8aa23c 100644
--- a/sys/kern/kern_sched.c
+++ b/sys/kern/kern_sched.c
@@ -179,6 +179,7 @@ sched_init_stack(void *stack_top, char *argvp[], char *envp[], struct auxval aux
AUXVAL(sp, AT_ENTRY, auxv.at_entry);
AUXVAL(sp, AT_PHDR, auxv.at_phdr);
AUXVAL(sp, AT_PHNUM, auxv.at_phnum);
+ AUXVAL(sp, AT_PAGESIZE, vm_get_page_size());
STACK_PUSH(sp, 0);
/* Copy envp pointers */