20 lines
365 B
C
20 lines
365 B
C
#pragma once
|
|
|
|
#include <zinnia/errno.h>
|
|
#include <zinnia/types.h>
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
struct stack {
|
|
uintptr_t base;
|
|
phys_t phys;
|
|
size_t size;
|
|
};
|
|
|
|
errno_t stack_init(struct stack* ks, size_t size);
|
|
void stack_destroy(struct stack* ks);
|
|
|
|
static inline uintptr_t kernel_stack_top(struct stack* ks) {
|
|
return ks->base + ks->size;
|
|
}
|