1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 14:48:14 +00:00

Implement errno in LibC.

This also meant I had to implement BSS (SHT_NOBITS) sections in ELFLoader.
I also added an strerror() so we can print out what the errors are.
This commit is contained in:
Andreas Kling 2018-10-25 12:06:00 +02:00
parent 434b6a8688
commit 260b14e505
14 changed files with 209 additions and 27 deletions

View file

@ -1,16 +1,19 @@
#include "mman.h"
#include "errno.h"
#include <Kernel/Syscall.h>
extern "C" {
void* mmap(void* addr, size_t size)
{
return (void*)Syscall::invoke(Syscall::PosixMmap, (dword)addr, (dword)size);
int rc = Syscall::invoke(Syscall::PosixMmap, (dword)addr, (dword)size);
__RETURN_WITH_ERRNO(rc, (void*)rc, (void*)-1);
}
int munmap(void* addr, size_t size)
{
return Syscall::invoke(Syscall::PosixMunmap, (dword)addr, (dword)size);
int rc = Syscall::invoke(Syscall::PosixMunmap, (dword)addr, (dword)size);
__RETURN_WITH_ERRNO(rc, rc, -1);
}
}