diff options
Diffstat (limited to 'core/include/core.h')
-rw-r--r-- | core/include/core.h | 84 |
1 files changed, 58 insertions, 26 deletions
diff --git a/core/include/core.h b/core/include/core.h index 114b049a..d35bd038 100644 --- a/core/include/core.h +++ b/core/include/core.h @@ -2,8 +2,18 @@ #define CORE_H #include <klibc/compiler.h> +#include <stddef.h> +#include <stdlib.h> +#include <stdbool.h> +#include <inttypes.h> +#include <stdio.h> +#include <dprintf.h> #include <com32.h> +#include <errno.h> #include <syslinux/pmapi.h> +#include <syslinux/sysappend.h> +#include <kaboom.h> +#include <timer.h> extern char core_xfer_buf[65536]; extern char core_cache_buf[65536]; @@ -11,13 +21,34 @@ extern char trackbuf[]; extern char CurrentDirName[]; extern char SubvolName[]; extern char ConfigName[]; +extern char config_cwd[]; extern char KernelName[]; extern char cmd_line[]; extern char ConfigFile[]; +extern char syslinux_banner[]; +extern char copyright_str[]; +extern uint16_t BIOSName; +extern char StackBuf[]; +extern unsigned int __bcopyxx_len; + +extern uint8_t KbdMap[256]; + +extern const uint16_t IPAppends[]; +extern const char numIPAppends[]; + +extern uint16_t SerialPort; +extern uint16_t BaudDivisor; +extern uint8_t FlowOutput; +extern uint8_t FlowInput; +extern uint8_t FlowIgnore; /* diskstart.inc isolinux.asm*/ extern void getlinsec(void); +/* pm.inc */ +void core_pm_null_hook(void); +extern void (*core_pm_hook)(void); + /* getc.inc */ extern void core_open(void); @@ -30,13 +61,18 @@ extern void __idle(void); extern void reset_idle(void); /* mem/malloc.c, mem/free.c, mem/init.c */ -extern void *malloc(size_t); extern void *lmalloc(size_t); extern void *pmapi_lmalloc(size_t); extern void *zalloc(size_t); extern void free(void *); extern void mem_init(void); +/* sysappend.c */ +extern void print_sysappend(void); +extern const char *sysappend_strings[SYSAPPEND_MAX]; +extern uint32_t SysAppends; +extern void sysappend_set_uuid(const uint8_t *uuid); + void __cdecl core_intcall(uint8_t, const com32sys_t *, com32sys_t *); void __cdecl core_farcall(uint32_t, const com32sys_t *, com32sys_t *); int __cdecl core_cfarcall(uint32_t, const void *, uint32_t); @@ -51,31 +87,6 @@ void call16(void (*)(void), const com32sys_t *, com32sys_t *); #define __bss16 __attribute__((nocommon,section(".bss16"))) /* - * Section for very large aligned objects, not zeroed on startup - */ -#define __hugebss __attribute__((nocommon,section(".hugebss"),aligned(4096))) - -/* - * Death! The macro trick is to avoid symbol conflict with - * the real-mode symbol kaboom. - */ -__noreturn _kaboom(void); -#define kaboom() _kaboom() - -/* - * Basic timer function... - */ -extern volatile uint32_t __jiffies, __ms_timer; -static inline uint32_t jiffies(void) -{ - return __jiffies; -} -static inline uint32_t ms_timer(void) -{ - return __ms_timer; -} - -/* * Helper routine to return a specific set of flags */ static inline void set_flags(com32sys_t *regs, uint32_t flags) @@ -88,4 +99,25 @@ static inline void set_flags(com32sys_t *regs, uint32_t flags) regs->eflags.l = eflags; } +extern int start_ldlinux(int argc, char **argv); +extern int create_args_and_load(char *); + +extern void write_serial(char data); +extern void writestr(char *str); +extern void writechr(char data); +extern void crlf(void); +extern int pollchar(void); +extern char getchar(char *hi); + +extern void cleanup_hardware(void); +extern void sirq_cleanup(void); +extern void adjust_screen(void); + +extern void execute(const char *cmdline, uint32_t type, bool sysappend); +extern void load_kernel(const char *cmdline); + +extern void dmi_init(void); + +extern void do_sysappend(char *buf); + #endif /* CORE_H */ |