summaryrefslogtreecommitdiff
path: root/kernel/include
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/include')
-rw-r--r--kernel/include/apic.h5
-rw-r--r--kernel/include/containter_of.h20
-rw-r--r--kernel/include/madt.h5
-rw-r--r--kernel/include/process.h1
-rw-r--r--kernel/include/regs.h4
-rw-r--r--kernel/include/userspace.h2
6 files changed, 13 insertions, 24 deletions
diff --git a/kernel/include/apic.h b/kernel/include/apic.h
index 0025e53..991fc10 100644
--- a/kernel/include/apic.h
+++ b/kernel/include/apic.h
@@ -5,6 +5,11 @@
#include <atomic.h>
uint8_t curr_cpu_apic_id(void);
+void clear_apic_errors(void);
+void wait_for_delivery(void);
+void select_ap(uint32_t apic_id);
+void send_init_ipi(uint32_t apic_id);
+void send_sipi(uint32_t apic_id);
void init_ap_cpus(void);
extern mutex_t cnt_lock;
diff --git a/kernel/include/containter_of.h b/kernel/include/containter_of.h
index 9cadd91..9672988 100644
--- a/kernel/include/containter_of.h
+++ b/kernel/include/containter_of.h
@@ -5,7 +5,6 @@
#define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
#define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
#define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
-#define typeof_member(T, m) typeof(((T *)0)->m)
/**
* container_of - cast a member of a structure out to the containing structure
@@ -23,23 +22,4 @@
((type *)(__mptr - offsetof(type, member))); \
})
-/**
- * container_of_safe - cast a member of a structure out to the containing structure
- * @ptr: the pointer to the member.
- * @type: the type of the container struct this is embedded in.
- * @member: the name of the member within the struct.
- *
- * If IS_ERR_OR_NULL(ptr), ptr is returned unchanged.
- */
-#define container_of_safe(ptr, type, member) \
- ({ \
- void *__mptr = (void *)(ptr); \
- static_assert(__same_type(*(ptr), ((type *)0)->member) || \
- __same_type(*(ptr), void), \
- "pointer type mismatch in container_of_safe()"); \
- IS_ERR_OR_NULL(__mptr) ? \
- ERR_CAST(__mptr) : \
- ((type *)(__mptr - offsetof(type, member))); \
- })
-
#endif
diff --git a/kernel/include/madt.h b/kernel/include/madt.h
index 571f92a..b824b38 100644
--- a/kernel/include/madt.h
+++ b/kernel/include/madt.h
@@ -50,6 +50,11 @@ struct MADT_lapic_addr {
uint64_t phys_addr;
} __attribute__((packed));
+void madt_parse_cpu(uint64_t *addr);
+void madt_parse_ioapic(uint64_t *addr);
+void madt_parse_int(uint64_t *addr);
+void madt_parse_lapic_nmi(uint64_t *addr);
+void madt_parse_lapic_addr_ovr(uint64_t *addr);
void parse_madt(void);
#endif
diff --git a/kernel/include/process.h b/kernel/include/process.h
index 14107c2..abbcd08 100644
--- a/kernel/include/process.h
+++ b/kernel/include/process.h
@@ -20,7 +20,6 @@ process_t *init_process(uint64_t priv_lvl, uint64_t rip, uint64_t argc,
uint64_t *argv);
void process_init_wrapper(uint64_t rip, uint64_t argc, uint64_t *argv);
__attribute__((noreturn)) void idle_thread(void);
-__attribute__((noreturn)) void idle_thread2(void);
__attribute__((noreturn)) void remove_current_process(void);
__attribute__((noreturn)) void context_switch(uint64_t irq_rsp);
diff --git a/kernel/include/regs.h b/kernel/include/regs.h
index 67795ae..81ddbe3 100644
--- a/kernel/include/regs.h
+++ b/kernel/include/regs.h
@@ -23,8 +23,8 @@
#define RIP_OFF 0x88
#define CS_OFF 0x90
#define RFLAGS_OFF 0x98
-#define RSP_OFF 0x100
-#define SS_OFF 0x108
+#define RSP_OFF 0xA0
+#define SS_OFF 0xA8
struct regs_t {
uint64_t r15;
diff --git a/kernel/include/userspace.h b/kernel/include/userspace.h
index e03695d..ebd483e 100644
--- a/kernel/include/userspace.h
+++ b/kernel/include/userspace.h
@@ -1,7 +1,7 @@
#ifndef USERSPACE_H
#define USERSPACE_H
+void init_userspace(void);
void begin_userspace(void);
-void jump_userspace(void);
#endif