More stuff
This commit is contained in:
parent
4ae060bd5d
commit
d4be0f4fd5
|
@ -13,7 +13,7 @@ COPTIM=-O2
|
|||
CLDSCR=-T kernel.ld
|
||||
CWARNS=-pedantic -Wall -Wextra -Werror
|
||||
CFLAGS=-nostdlib -ffreestanding -mcmodel=large -mno-red-zone -mno-mmx -mno-sse -mno-sse2
|
||||
CINCLUDES=-I./kaleid
|
||||
CINCLUDES=-isystem.
|
||||
CDEFINES=
|
||||
|
||||
CC=$(CCNAME) $(COPTIM) $(CWARNS) $(CFLAGS) $(CDEFINES) $(CINCLUDES)
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#define _KALCOMM_ASSERT_H
|
||||
|
||||
#ifndef _KALCOMM_COMMON_H
|
||||
# error "don't include common/types.h without common/common.h"
|
||||
# error "don't include kaleid/common/types.h without kaleid/common/common.h"
|
||||
#endif
|
||||
|
||||
#ifdef _OSK_SOURCE
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#define _KALCOMM_ATOMIC_H
|
||||
|
||||
#ifndef _KALCOMM_COMMON_H
|
||||
# error "don't include common/types.h without common/common.h"
|
||||
# error "don't include kaleid/common/types.h without kaleid/common/common.h"
|
||||
#endif
|
||||
|
||||
// atomic_t defined in common/types.h
|
||||
|
|
|
@ -42,13 +42,13 @@
|
|||
#endif
|
||||
|
||||
#ifdef _KALEID_KERNEL
|
||||
# include "kernel/config.h"
|
||||
# include <kaleid/kernel/config.h>
|
||||
#endif
|
||||
|
||||
#include "common/types.h"
|
||||
#include "common/atomic.h"
|
||||
#include "common/status.h"
|
||||
#include "common/assert.h"
|
||||
#include <kaleid/common/types.h>
|
||||
#include <kaleid/common/atomic.h>
|
||||
#include <kaleid/common/status.h>
|
||||
#include <kaleid/common/assert.h>
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#define _KALCOMM_CONVERT_H
|
||||
|
||||
#ifndef _KALCOMM_COMMON_H
|
||||
#include "common/common.h"
|
||||
#include <kaleid/common/common.h>
|
||||
#endif
|
||||
|
||||
#ifndef _OSK_SOURCE
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
// Desc: Conversion utilities //
|
||||
//----------------------------------------------------------------------------//
|
||||
|
||||
#include "common/string.h"
|
||||
#include <kaleid/common/string.h>
|
||||
|
||||
//
|
||||
// Digits table for bases <=36
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
// Desc: mem*() functions //
|
||||
//----------------------------------------------------------------------------//
|
||||
|
||||
#include "common/memory.h"
|
||||
#include <kaleid/common/memory.h>
|
||||
|
||||
//
|
||||
// Set "bytes"-many bytes starting from ptr to val
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
// Desc: sprintf()-related functions //
|
||||
//----------------------------------------------------------------------------//
|
||||
|
||||
#include "common/string.h"
|
||||
#include <kaleid/common/string.h>
|
||||
|
||||
//
|
||||
// Format str according to fmt using ellipsed arguments
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
// Desc: Implementation of describe_status() //
|
||||
//----------------------------------------------------------------------------//
|
||||
|
||||
#include "common/common.h"
|
||||
#include <kaleid/common/common.h>
|
||||
|
||||
static const char *descriptions[] = {
|
||||
[-SUCCESS] = "Success",
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
// Desc: String-related functions //
|
||||
//----------------------------------------------------------------------------//
|
||||
|
||||
#include "common/string.h"
|
||||
#include <kaleid/common/string.h>
|
||||
|
||||
// TODO multibyte, assembly
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#define _KALCOMM_MEMORY_H
|
||||
|
||||
#ifndef _KALCOMM_COMMON_H
|
||||
# include "common/common.h"
|
||||
# include <kaleid/common/common.h>
|
||||
#endif
|
||||
|
||||
#ifndef _OSK_SOURCE
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#define _KALCOMM_STATUS_H
|
||||
|
||||
#ifndef _KALCOMM_COMMON_H
|
||||
# error "don't include common/types.h without common/common.h"
|
||||
# error "don't include kaleid/common/types.h without kaleid/common/common.h"
|
||||
#endif
|
||||
|
||||
#ifndef _OSK_SOURCE
|
||||
|
|
|
@ -12,11 +12,11 @@
|
|||
#define _KALCOMM_STRING_H
|
||||
|
||||
#ifndef _KALCOMM_COMMON_H
|
||||
# include "common/common.h"
|
||||
# include <kaleid/common/common.h>
|
||||
#endif
|
||||
|
||||
#ifndef _KALCOMM_CONVERT_H
|
||||
# include "common/convert.h"
|
||||
# include <kaleid/common/convert.h>
|
||||
#endif
|
||||
|
||||
#ifndef _OSK_SOURCE
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
// XXX to be improved before being brought back
|
||||
// to be tested with more alignment sizes
|
||||
|
||||
#include "common/memory.h"
|
||||
#include <kaleid/common/memory.h>
|
||||
|
||||
// to be moved
|
||||
#define QWORD_SIZE 8
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
#define _KALCOMM_TYPES_H
|
||||
|
||||
#ifndef _KALCOMM_COMMON_H
|
||||
# error "don't include common/types.h without common/common.h"
|
||||
# error "don't include kaleid/common/types.h without kaleid/common/common.h"
|
||||
#endif
|
||||
|
||||
typedef unsigned char uchar;
|
||||
|
|
|
@ -7,18 +7,25 @@
|
|||
// Desc: Kernel entry point //
|
||||
//----------------------------------------------------------------------------//
|
||||
|
||||
#include "kernel/init.h"
|
||||
#include "kernel/ke/panic.h"
|
||||
#include "kernel/io/terminal.h"
|
||||
#include <kaleid/kernel/init.h>
|
||||
#include <kaleid/kernel/ke/panic.h>
|
||||
#include <kaleid/kernel/io/terminal.h>
|
||||
|
||||
//
|
||||
// Entry point of kaleid-kernel.elf
|
||||
//
|
||||
void kstart(void)
|
||||
void DosStartKern(void)
|
||||
{
|
||||
// we're not ready to deal with interrupts
|
||||
DosDisableInterrupts();
|
||||
|
||||
// booting!
|
||||
DosSetKernState(KSTATE_INIT);
|
||||
|
||||
// kernel terminals
|
||||
DosInitTerms();
|
||||
|
||||
// we're out
|
||||
DosPanic("Goodbye World :(");
|
||||
}
|
||||
|
||||
|
|
|
@ -10,10 +10,10 @@
|
|||
#ifndef _KALKERN_INIT_H
|
||||
#define _KALKERN_INIT_H
|
||||
|
||||
#include "common/common.h"
|
||||
#include <kaleid/common/common.h>
|
||||
|
||||
// kernel entry point
|
||||
void kstart(void);
|
||||
void DosStartKern(void);
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
// Desc: Ports I/O //
|
||||
//----------------------------------------------------------------------------//
|
||||
|
||||
#include "kernel/io/ports.h"
|
||||
#include <kaleid/kernel/io/ports.h>
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#define _KALKERN_IO_PORTS_H
|
||||
|
||||
#ifndef _KALCOMM_COMMON_H
|
||||
#include "common/common.h"
|
||||
#include <kaleid/common/common.h>
|
||||
#endif
|
||||
|
||||
#define DosWriteByteOnPort(port,val) asm volatile ("outb %1, %0" : : "dN" (port), "a" (value))
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
// Desc: Early terminal functions //
|
||||
//----------------------------------------------------------------------------//
|
||||
|
||||
#include "kernel/io/terminal.h"
|
||||
#include <kaleid/kernel/io/terminal.h>
|
||||
|
||||
//
|
||||
// VGA-related macros
|
||||
|
@ -17,7 +17,7 @@
|
|||
#define ComputeEntry(ch, cl) (((ushort)(ch)) | (ushort)(cl) << 8)
|
||||
|
||||
//
|
||||
// VGA output
|
||||
// VGA output
|
||||
//
|
||||
static terminal_t _vga_term = {
|
||||
.kt_buffer = (ushort *)0xB8000,
|
||||
|
@ -37,6 +37,13 @@ static terminal_t _vga_term = {
|
|||
//
|
||||
terminal_t *stdout;
|
||||
|
||||
#ifndef _NO_DEBUG
|
||||
//
|
||||
// Debugging terminal
|
||||
//
|
||||
terminal_t *stddbg;
|
||||
#endif
|
||||
|
||||
//
|
||||
// Initialize standard output
|
||||
//
|
||||
|
@ -46,6 +53,7 @@ void DosInitTerms(void)
|
|||
|
||||
#ifndef _NO_DEBUG
|
||||
_vga_term.kt_init = TRUE;
|
||||
stddbg = &_vga_term;
|
||||
#endif
|
||||
|
||||
// to be switched to VESA
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#define _KALKERN_IO_KTERM_H
|
||||
|
||||
#ifndef _KALCOMM_COMMON_H
|
||||
#include "common/common.h"
|
||||
#include <kaleid/common/common.h>
|
||||
#endif
|
||||
|
||||
// all available colors
|
||||
|
@ -53,10 +53,12 @@ status_t DosChTermColor(terminal_t *, uchar);
|
|||
void DosPutOnTerm_Unlocked(terminal_t *, char);
|
||||
#endif
|
||||
|
||||
#define ktclear() kterm_clear(kt_stdout)
|
||||
#define ktputch(c) kterm_putch(kt_stdout, (c))
|
||||
#define ktprint(s) kterm_print(kt_stdout, (s))
|
||||
#define ktchcol(c) kterm_change_color(kt_stdout, (c))
|
||||
#ifndef _NO_DEBUG
|
||||
extern terminal_t *stddbg;
|
||||
# define DebugLog(...) DosPutOnTerm(stddbg, __VA_ARGS__)
|
||||
#else
|
||||
# define DebugLog(...)
|
||||
#endif
|
||||
|
||||
#define DosLockTerm(kt)
|
||||
#define DosTryLockTerm(kt)
|
||||
|
|
|
@ -7,9 +7,9 @@
|
|||
// Desc: How NOT to panic 101 //
|
||||
//----------------------------------------------------------------------------//
|
||||
|
||||
#include "kernel/ke/panic.h"
|
||||
#include "kernel/ke/state.h"
|
||||
#include "kernel/io/terminal.h"
|
||||
#include <kaleid/kernel/ke/panic.h>
|
||||
#include <kaleid/kernel/ke/state.h>
|
||||
#include <kaleid/kernel/io/terminal.h>
|
||||
|
||||
//
|
||||
// Panic message
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
#ifndef _KALKERN_KE_PANIC_H
|
||||
#define _KALKERN_KE_PANIC_H
|
||||
|
||||
#include "kernel/ke/state.h"
|
||||
#include <kaleid/kernel/ke/state.h>
|
||||
|
||||
extern const char *__panicstr;
|
||||
noreturn void DosPanic(const char *);
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
// Desc: Current kernel state //
|
||||
//----------------------------------------------------------------------------//
|
||||
|
||||
#include "kernel/ke/state.h"
|
||||
#include <kaleid/kernel/ke/state.h>
|
||||
|
||||
//
|
||||
// Current kernel state
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#define _KALKERN_KE_STATE_H
|
||||
|
||||
#ifndef _KALCOMM_COMMON_H
|
||||
#include "common/common.h"
|
||||
#include <kaleid/common/common.h>
|
||||
#endif
|
||||
|
||||
// XXX improve this
|
||||
|
|
|
@ -8,5 +8,5 @@
|
|||
// Only exists to trigger Neox //
|
||||
//----------------------------------------------------------------------------//
|
||||
|
||||
#include "kernel/mm/malloc.h"
|
||||
#include <kaleid/kernel/mm/malloc.h>
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#ifndef _KALKERN_MM_MALLOC_H
|
||||
#define _KALKERN_MM_MALLOC_H
|
||||
|
||||
#include "common/common.h"
|
||||
#include <kaleid/common/common.h>
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -11,9 +11,9 @@
|
|||
#include <stdio.h>
|
||||
#define KEEP_KALCOMM_TYPES_MINIMAL
|
||||
|
||||
#include "common/common.h"
|
||||
#include "common/string.h"
|
||||
#include "common/memory.h"
|
||||
#include <kaleid/common/common.h>
|
||||
#include <kaleid/common/string.h>
|
||||
#include <kaleid/common/memory.h>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
ENTRY(kstart)
|
||||
ENTRY(DosStartKern)
|
||||
SECTIONS
|
||||
{
|
||||
. = 0x4000; /* XXX 0x4000 is temporary */
|
||||
|
|
Loading…
Reference in New Issue