More work on Kernel class, syscalls
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
#include "../mmap.hpp"
|
||||
#include "../util.hpp"
|
||||
|
||||
using namespace kernel;
|
||||
using namespace kernelns;
|
||||
|
||||
extern int _kernelEnd;
|
||||
|
||||
|
||||
@@ -140,7 +140,7 @@ void syscallHandler(void* frame)
|
||||
|
||||
}
|
||||
|
||||
kernel::Interrupts::Interrupts()
|
||||
kernelns::Interrupts::Interrupts()
|
||||
{
|
||||
for(unsigned int i = 0; i <= MAX_SYSCALL_ID; i++)
|
||||
syscalls[i] = (void*) NULL;
|
||||
@@ -152,17 +152,17 @@ kernel::Interrupts::Interrupts()
|
||||
lidt();
|
||||
}
|
||||
|
||||
void kernel::Interrupts::enable()
|
||||
void kernelns::Interrupts::enable()
|
||||
{
|
||||
asm("sti");
|
||||
}
|
||||
|
||||
void kernel::Interrupts::disable()
|
||||
void kernelns::Interrupts::disable()
|
||||
{
|
||||
asm("cli");
|
||||
}
|
||||
|
||||
void kernel::Interrupts::addSyscall(unsigned int id, void* function)
|
||||
void kernelns::Interrupts::addSyscall(unsigned int id, void* function)
|
||||
{
|
||||
if(id <= MAX_SYSCALL_ID)
|
||||
syscalls[id] = function;
|
||||
|
||||
@@ -150,7 +150,7 @@ private:
|
||||
uint32_t physicalAddress : 20;
|
||||
};
|
||||
|
||||
int kernel::mmap(void* start, size_t length, int flags)
|
||||
int kernelns::mmap(void* start, size_t length, int flags)
|
||||
{
|
||||
if((size_t) start % 4096 != 0)
|
||||
return -1;
|
||||
@@ -184,7 +184,7 @@ int kernel::mmap(void* start, size_t length, int flags)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int kernel::mmap(void* start, physaddr_t p_start, size_t length, int flags)
|
||||
int kernelns::mmap(void* start, physaddr_t p_start, size_t length, int flags)
|
||||
{
|
||||
if((size_t) start % 4096 != 0 || p_start % 4096 != 0)
|
||||
return -1;
|
||||
@@ -198,7 +198,7 @@ int kernel::mmap(void* start, physaddr_t p_start, size_t length, int flags)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int kernel::mapPage(void* start, physaddr_t p_start, int flags)
|
||||
int kernelns::mapPage(void* start, physaddr_t p_start, int flags)
|
||||
{
|
||||
if((size_t) start % 4096 != 0 || p_start % 4096 != 0)
|
||||
return -1;
|
||||
@@ -228,7 +228,7 @@ int kernel::mapPage(void* start, physaddr_t p_start, int flags)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int kernel::munmap(void* start, size_t length)
|
||||
int kernelns::munmap(void* start, size_t length)
|
||||
{
|
||||
if((size_t) start % 4096 != 0)
|
||||
return -1;
|
||||
@@ -250,7 +250,7 @@ int kernel::munmap(void* start, size_t length)
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool kernel::isMapped(void* addr)
|
||||
bool kernelns::isMapped(void* addr)
|
||||
{
|
||||
PageTableEntry* pageDirectory = (PageTableEntry*) 0xFFFFF000;
|
||||
size_t tableIndex = (size_t) addr / 4096;
|
||||
@@ -263,14 +263,14 @@ bool kernel::isMapped(void* addr)
|
||||
return false;
|
||||
}
|
||||
|
||||
physaddr_t kernel::getPhysicalAddress(void* addr)
|
||||
physaddr_t kernelns::getPhysicalAddress(void* addr)
|
||||
{
|
||||
PageTableEntry* pageTables = (PageTableEntry*) 0xFFC00000;
|
||||
size_t tableIndex = (size_t) addr / 4096;
|
||||
return pageTables[tableIndex].getPhysicalAddress() + ((size_t) addr & 0xFFF);
|
||||
}
|
||||
|
||||
int kernel::createAddressSpace(void* table)
|
||||
int kernelns::createAddressSpace(void* table)
|
||||
{
|
||||
if(((size_t) table & 0xFFF) != 0)
|
||||
return -1;
|
||||
@@ -281,7 +281,7 @@ int kernel::createAddressSpace(void* table)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int kernel::loadAddressSpace(physaddr_t table)
|
||||
int kernelns::loadAddressSpace(physaddr_t table)
|
||||
{
|
||||
if((table & 0xFFF) != 0)
|
||||
return -1;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "multiboot2.hpp"
|
||||
|
||||
using namespace kernel;
|
||||
using namespace kernelns;
|
||||
|
||||
Multiboot2Info::Multiboot2Info(void* tableLocation)
|
||||
{
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "../memorymap.hpp"
|
||||
#include "../module.hpp"
|
||||
|
||||
namespace kernel
|
||||
namespace kernelns
|
||||
{
|
||||
|
||||
class Multiboot2Info
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include <stdbool.h>
|
||||
#include "tty.hpp"
|
||||
|
||||
kernel::TTY::TTY(char* vga)
|
||||
kernelns::TTY::TTY(char* vga)
|
||||
{
|
||||
this->vga = vga;
|
||||
this->cursor = 0;
|
||||
@@ -9,7 +9,7 @@ kernel::TTY::TTY(char* vga)
|
||||
this->base = 10;
|
||||
}
|
||||
|
||||
kernel::TTY& kernel::TTY::operator<<(kernel::TTY::Format fmt)
|
||||
kernelns::TTY& kernelns::TTY::operator<<(kernelns::TTY::Format fmt)
|
||||
{
|
||||
switch(fmt)
|
||||
{
|
||||
@@ -25,42 +25,42 @@ kernel::TTY& kernel::TTY::operator<<(kernel::TTY::Format fmt)
|
||||
}
|
||||
}
|
||||
|
||||
kernel::TTY& kernel::TTY::operator<<(const char* str)
|
||||
kernelns::TTY& kernelns::TTY::operator<<(const char* str)
|
||||
{
|
||||
return printString(str);
|
||||
}
|
||||
|
||||
kernel::TTY& kernel::TTY::operator<<(unsigned int n)
|
||||
kernelns::TTY& kernelns::TTY::operator<<(unsigned int n)
|
||||
{
|
||||
return printNumber(n, base, width);
|
||||
}
|
||||
|
||||
kernel::TTY& kernel::TTY::operator<<(int n)
|
||||
kernelns::TTY& kernelns::TTY::operator<<(int n)
|
||||
{
|
||||
return printNumber((unsigned int) n, base, width);
|
||||
}
|
||||
|
||||
kernel::TTY& kernel::TTY::operator<<(void* n)
|
||||
kernelns::TTY& kernelns::TTY::operator<<(void* n)
|
||||
{
|
||||
return printNumber((unsigned int) n, 16, 8);
|
||||
}
|
||||
|
||||
kernel::TTY& kernel::TTY::operator<<(char c)
|
||||
kernelns::TTY& kernelns::TTY::operator<<(char c)
|
||||
{
|
||||
return putChar(c);
|
||||
}
|
||||
|
||||
void kernel::TTY::setWidth(size_t width)
|
||||
void kernelns::TTY::setWidth(size_t width)
|
||||
{
|
||||
this->width = width;
|
||||
}
|
||||
|
||||
size_t kernel::TTY::getWidth()
|
||||
size_t kernelns::TTY::getWidth()
|
||||
{
|
||||
return width;
|
||||
}
|
||||
|
||||
void kernel::TTY::clear()
|
||||
void kernelns::TTY::clear()
|
||||
{
|
||||
for(int i = 0; i < 80*25; i++)
|
||||
{
|
||||
@@ -69,7 +69,7 @@ void kernel::TTY::clear()
|
||||
cursor = 0;
|
||||
}
|
||||
|
||||
kernel::TTY& kernel::TTY::printNumber(unsigned int n, size_t base,
|
||||
kernelns::TTY& kernelns::TTY::printNumber(unsigned int n, size_t base,
|
||||
size_t width)
|
||||
{
|
||||
const char* digits = "0123456789ABCDEF";
|
||||
@@ -94,7 +94,7 @@ kernel::TTY& kernel::TTY::printNumber(unsigned int n, size_t base,
|
||||
return *this;
|
||||
}
|
||||
|
||||
kernel::TTY& kernel::TTY::printString(const char* str)
|
||||
kernelns::TTY& kernelns::TTY::printString(const char* str)
|
||||
{
|
||||
while(*str)
|
||||
{
|
||||
@@ -104,7 +104,7 @@ kernel::TTY& kernel::TTY::printString(const char* str)
|
||||
return *this;
|
||||
}
|
||||
|
||||
kernel::TTY& kernel::TTY::putChar(char c)
|
||||
kernelns::TTY& kernelns::TTY::putChar(char c)
|
||||
{
|
||||
switch(c)
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
namespace kernel
|
||||
namespace kernelns
|
||||
{
|
||||
|
||||
class TTY
|
||||
|
||||
Reference in New Issue
Block a user