BarryServer : Git

All the code for all my projects
// BarryServer : Git / Nucleus / blob / 4f822f67ee63ef4245ad6bfcd0e3fe04ff6f34a0 / kernel / main.c

// Related

Nucleus

Barry Stack-based page frame allocator 4f822f6 (3 years, 3 months ago)
/*
 * This file contains the entrance point for the Kernel proper.  The code here
 * is called by the bootloader when it finishes.  The kmain routine is
 * responsible for setting up memory and starting the processes running.
 */

#include <stdint.h>
#include <string.h>
#include "multiboot.h"
#include "../memory/memory.h"

extern char _bss[], _end[];

/* Kernel main function */
_Noreturn void
kmain(uint32_t esp, struct MultibootInfo *mbinfo)
{
	void *ebda = (void *) (*((uint16_t *) 0x040E) << 4);
	memset(_bss, 0, _end - _bss);

	/* Setup frame allocator */
	init_frames(mbinfo->mmapLen, (void *) mbinfo->mmapAddr);

	while (1);
}