mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 22:27:35 +00:00
Make it possible to build the Kernel on a macOS host.
It still requires an ELF compiler and linker, but at least it builds. I need to get rid of the "Unix" namespace. This does a lot of that.
This commit is contained in:
parent
44036f32bc
commit
85b886c2e0
31 changed files with 88 additions and 94 deletions
|
@ -16,8 +16,8 @@ public:
|
|||
void open(Direction);
|
||||
void close(Direction);
|
||||
|
||||
Unix::ssize_t write(const byte*, Unix::size_t);
|
||||
Unix::ssize_t read(byte*, Unix::size_t);
|
||||
ssize_t write(const byte*, size_t);
|
||||
ssize_t read(byte*, size_t);
|
||||
|
||||
bool can_read() const;
|
||||
bool can_write() const;
|
||||
|
|
|
@ -141,7 +141,7 @@ public:
|
|||
void* sys$mmap(const Syscall::SC_mmap_params*);
|
||||
int sys$munmap(void*, size_t size);
|
||||
int sys$set_mmap_name(void*, size_t, const char*);
|
||||
int sys$get_dir_entries(int fd, void*, size_t);
|
||||
ssize_t sys$get_dir_entries(int fd, void*, size_t);
|
||||
int sys$getcwd(char*, size_t);
|
||||
int sys$chdir(const char*);
|
||||
int sys$sleep(unsigned seconds);
|
||||
|
|
|
@ -7,7 +7,7 @@ extern "C" {
|
|||
void memcpy(void*, const void*, dword);
|
||||
void strcpy(char*, const char*);
|
||||
int strcmp(char const*, const char*);
|
||||
dword strlen(const char*);
|
||||
size_t strlen(const char*);
|
||||
void *memset(void*, byte, dword);
|
||||
char *strdup(const char*);
|
||||
int memcmp(const void*, const void*, size_t);
|
||||
|
|
|
@ -14,13 +14,13 @@ void DoubleBuffer::flip()
|
|||
m_read_buffer_index = 0;
|
||||
}
|
||||
|
||||
Unix::ssize_t DoubleBuffer::write(const byte* data, size_t size)
|
||||
ssize_t DoubleBuffer::write(const byte* data, size_t size)
|
||||
{
|
||||
m_write_buffer->append(data, size);
|
||||
return size;
|
||||
}
|
||||
|
||||
Unix::ssize_t DoubleBuffer::read(byte* data, size_t size)
|
||||
ssize_t DoubleBuffer::read(byte* data, size_t size)
|
||||
{
|
||||
if (m_read_buffer_index >= m_read_buffer->size() && !m_write_buffer->isEmpty())
|
||||
flip();
|
||||
|
|
|
@ -13,8 +13,8 @@ public:
|
|||
{
|
||||
}
|
||||
|
||||
Unix::ssize_t write(const byte*, size_t);
|
||||
Unix::ssize_t read(byte*, size_t);
|
||||
ssize_t write(const byte*, size_t);
|
||||
ssize_t read(byte*, size_t);
|
||||
|
||||
bool is_empty() const { return m_read_buffer_index >= m_read_buffer->size() && m_write_buffer->isEmpty(); }
|
||||
|
||||
|
|
12
Kernel/elf.h
12
Kernel/elf.h
|
@ -17,16 +17,11 @@
|
|||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _ELF_H
|
||||
#define _ELF_H 1
|
||||
|
||||
#include <features.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
#pragma once
|
||||
|
||||
/* Standard ELF types. */
|
||||
|
||||
#include <stdint.h>
|
||||
#include <AK/Types.h>
|
||||
|
||||
/* Type for a 16-bit quantity. */
|
||||
typedef uint16_t Elf32_Half;
|
||||
|
@ -2640,6 +2635,3 @@ typedef Elf32_Addr Elf32_Conflict;
|
|||
#define R_M32R_NUM 256 /* Keep this the last entry. */
|
||||
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* elf.h */
|
||||
|
|
|
@ -29,8 +29,8 @@ typedef struct
|
|||
|
||||
static byte alloc_map[POOL_SIZE / CHUNK_SIZE / 8];
|
||||
|
||||
volatile dword sum_alloc = 0;
|
||||
volatile dword sum_free = POOL_SIZE;
|
||||
volatile size_t sum_alloc = 0;
|
||||
volatile size_t sum_free = POOL_SIZE;
|
||||
volatile size_t kmalloc_sum_eternal = 0;
|
||||
volatile size_t kmalloc_sum_page_aligned = 0;
|
||||
|
||||
|
@ -193,12 +193,12 @@ void kfree(void *ptr)
|
|||
#endif
|
||||
}
|
||||
|
||||
void* operator new(unsigned int size)
|
||||
void* operator new(size_t size)
|
||||
{
|
||||
return kmalloc(size);
|
||||
}
|
||||
|
||||
void* operator new[](unsigned int size)
|
||||
void* operator new[](size_t size)
|
||||
{
|
||||
return kmalloc(size);
|
||||
}
|
||||
|
|
|
@ -8,10 +8,10 @@ void kfree(void*);
|
|||
|
||||
bool is_kmalloc_address(void*);
|
||||
|
||||
extern volatile dword sum_alloc;
|
||||
extern volatile dword sum_free;
|
||||
extern volatile dword kmalloc_sum_eternal;
|
||||
extern volatile dword kmalloc_sum_page_aligned;
|
||||
extern volatile size_t sum_alloc;
|
||||
extern volatile size_t sum_free;
|
||||
extern volatile size_t kmalloc_sum_eternal;
|
||||
extern volatile size_t kmalloc_sum_page_aligned;
|
||||
|
||||
inline void* operator new(size_t, void* p) { return p; }
|
||||
inline void* operator new[](size_t, void* p) { return p; }
|
||||
|
|
|
@ -17,7 +17,6 @@ typedef dword gid_t;
|
|||
typedef int pid_t;
|
||||
typedef dword time_t;
|
||||
typedef dword suseconds_t;
|
||||
typedef dword size_t;
|
||||
|
||||
struct timeval {
|
||||
time_t tv_sec;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue