meta: rename kernel to Magenta
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
#ifndef MAGENTA_CONFIG_H_
|
||||
#define MAGENTA_CONFIG_H_
|
||||
|
||||
#include <magenta/status.h>
|
||||
#include <magenta/types.h>
|
||||
#include <stddef.h>
|
||||
|
||||
extern kern_status_t kern_config_get(
|
||||
kern_config_key_t key,
|
||||
void *ptr,
|
||||
size_t len);
|
||||
extern kern_status_t kern_config_set(
|
||||
kern_config_key_t key,
|
||||
const void *ptr,
|
||||
size_t len);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,9 @@
|
||||
#ifndef MAGENTA_EQUEUE_H_
|
||||
#define MAGENTA_EQUEUE_H_
|
||||
|
||||
#include <magenta/types.h>
|
||||
|
||||
extern kern_status_t equeue_create(kern_handle_t *out);
|
||||
extern kern_status_t equeue_dequeue(kern_handle_t eq, equeue_packet_t *out);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,16 @@
|
||||
#ifndef MAGENTA_FUTEX_H_
|
||||
#define MAGENTA_FUTEX_H_
|
||||
|
||||
#include <magenta/status.h>
|
||||
#include <magenta/types.h>
|
||||
|
||||
extern kern_status_t futex_wait(
|
||||
kern_futex_t *futex,
|
||||
kern_futex_t new_val,
|
||||
unsigned int flags);
|
||||
extern kern_status_t futex_wake(
|
||||
kern_futex_t *futex,
|
||||
unsigned int nr_waiters,
|
||||
unsigned int flags);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,22 @@
|
||||
#ifndef MAGENTA_HANDLE_H_
|
||||
#define MAGENTA_HANDLE_H_
|
||||
|
||||
#include <magenta/status.h>
|
||||
#include <magenta/types.h>
|
||||
|
||||
extern kern_status_t kern_handle_close(kern_handle_t handle);
|
||||
extern kern_status_t kern_handle_transfer(
|
||||
kern_handle_t src_task,
|
||||
kern_handle_t src_handle,
|
||||
kern_handle_t dest_task,
|
||||
kern_handle_t dest_handle,
|
||||
unsigned int mode,
|
||||
kern_handle_t *out_handle);
|
||||
extern kern_status_t kern_handle_control(
|
||||
kern_handle_t task,
|
||||
kern_handle_t handle,
|
||||
uint32_t set_mask,
|
||||
uint32_t clear_mask,
|
||||
uint32_t *out_flags);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,31 @@
|
||||
#ifndef MAGENTA_LOG_H_
|
||||
#define MAGENTA_LOG_H_
|
||||
|
||||
#include <magenta/status.h>
|
||||
#include <magenta/types.h>
|
||||
|
||||
#undef TRACE
|
||||
|
||||
extern kern_status_t kern_log(const char *s);
|
||||
|
||||
#define kern_logf(...) \
|
||||
do { \
|
||||
char __logbuf[128]; \
|
||||
snprintf(__logbuf, sizeof __logbuf, __VA_ARGS__); \
|
||||
kern_log(__logbuf); \
|
||||
} while (0)
|
||||
|
||||
#ifdef TRACE
|
||||
#define kern_trace(...) kern_log(__VA_ARGS__)
|
||||
#define kern_tracef(...) \
|
||||
do { \
|
||||
char __logbuf[128]; \
|
||||
snprintf(__logbuf, sizeof __logbuf, __VA_ARGS__); \
|
||||
kern_log(__logbuf); \
|
||||
} while (0)
|
||||
#else
|
||||
#define kern_trace(...)
|
||||
#define kern_tracef(...)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,43 @@
|
||||
#ifndef MAGENTA_MSG_H_
|
||||
#define MAGENTA_MSG_H_
|
||||
|
||||
#include <magenta/status.h>
|
||||
#include <magenta/types.h>
|
||||
|
||||
extern kern_status_t channel_create(unsigned int id, kern_handle_t *out);
|
||||
extern kern_status_t port_create(kern_handle_t *out);
|
||||
extern kern_status_t port_connect(
|
||||
kern_handle_t port,
|
||||
tid_t task_id,
|
||||
unsigned int channel_id);
|
||||
extern kern_status_t port_disconnect(kern_handle_t port);
|
||||
|
||||
extern kern_status_t msg_send(
|
||||
kern_handle_t port,
|
||||
const kern_msg_t *msg,
|
||||
kern_msg_t *out_response);
|
||||
|
||||
extern kern_status_t msg_recv(kern_handle_t channel, kern_msg_t *out);
|
||||
|
||||
extern kern_status_t msg_reply(
|
||||
kern_handle_t channel,
|
||||
msgid_t id,
|
||||
const kern_msg_t *response);
|
||||
|
||||
extern kern_status_t msg_read(
|
||||
kern_handle_t channel,
|
||||
msgid_t id,
|
||||
size_t offset,
|
||||
kern_iovec_t *out,
|
||||
size_t out_count,
|
||||
size_t *nr_read);
|
||||
|
||||
extern kern_status_t msg_write(
|
||||
kern_handle_t channel,
|
||||
msgid_t id,
|
||||
size_t offset,
|
||||
const kern_iovec_t *in,
|
||||
size_t nr_in,
|
||||
size_t *nr_written);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,11 @@
|
||||
#ifndef MAGENTA_OBJECT_H_
|
||||
#define MAGENTA_OBJECT_H_
|
||||
|
||||
#include <magenta/types.h>
|
||||
|
||||
extern kern_status_t kern_object_wait(kern_wait_item_t *items, size_t nr_items);
|
||||
extern kern_status_t kern_object_query(
|
||||
kern_handle_t handle,
|
||||
kern_object_info_t *out);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,62 @@
|
||||
#ifndef MAGENTA_TASK_H_
|
||||
#define MAGENTA_TASK_H_
|
||||
|
||||
#include <magenta/status.h>
|
||||
#include <magenta/types.h>
|
||||
|
||||
extern kern_status_t task_exit(int status);
|
||||
extern kern_status_t task_self(kern_handle_t *out);
|
||||
|
||||
extern kern_status_t task_create(
|
||||
kern_handle_t parent,
|
||||
task_flags_t flags,
|
||||
const char *name,
|
||||
size_t name_len,
|
||||
kern_handle_t *out_task,
|
||||
kern_handle_t *out_address_space);
|
||||
extern kern_status_t task_create_thread(
|
||||
kern_handle_t task,
|
||||
virt_addr_t ip,
|
||||
virt_addr_t sp,
|
||||
uintptr_t *args,
|
||||
size_t nr_args,
|
||||
kern_handle_t *out_thread);
|
||||
extern kern_status_t task_get_address_space(
|
||||
kern_handle_t task,
|
||||
kern_handle_t *out);
|
||||
extern kern_status_t task_config_get(
|
||||
kern_handle_t task,
|
||||
kern_config_key_t key,
|
||||
void *ptr,
|
||||
size_t len);
|
||||
extern kern_status_t task_config_set(
|
||||
kern_handle_t task,
|
||||
kern_config_key_t key,
|
||||
const void *ptr,
|
||||
size_t len);
|
||||
extern kern_status_t task_duplicate(
|
||||
kern_handle_t *out_task,
|
||||
kern_handle_t *out_address_space);
|
||||
extern kern_status_t task_reset(
|
||||
virt_addr_t ip,
|
||||
virt_addr_t sp,
|
||||
uintptr_t *args,
|
||||
size_t nr_args,
|
||||
virt_addr_t unmap_base,
|
||||
size_t unmap_length);
|
||||
|
||||
extern kern_status_t thread_self(kern_handle_t *out);
|
||||
extern kern_status_t thread_start(kern_handle_t thread);
|
||||
extern kern_status_t thread_exit(void);
|
||||
extern kern_status_t thread_config_get(
|
||||
kern_handle_t thread,
|
||||
kern_config_key_t key,
|
||||
void *ptr,
|
||||
size_t len);
|
||||
extern kern_status_t thread_config_set(
|
||||
kern_handle_t thread,
|
||||
kern_config_key_t key,
|
||||
const void *ptr,
|
||||
size_t len);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,103 @@
|
||||
#ifndef MAGENTA_VM_H_
|
||||
#define MAGENTA_VM_H_
|
||||
|
||||
#include <magenta/status.h>
|
||||
#include <magenta/types.h>
|
||||
|
||||
extern kern_status_t vm_object_create(
|
||||
const char *name,
|
||||
size_t name_len,
|
||||
size_t data_len,
|
||||
vm_prot_t prot,
|
||||
kern_handle_t *out);
|
||||
extern kern_status_t vm_object_read(
|
||||
kern_handle_t object,
|
||||
void *dst,
|
||||
off_t offset,
|
||||
size_t count,
|
||||
size_t *nr_read);
|
||||
extern kern_status_t vm_object_write(
|
||||
kern_handle_t object,
|
||||
const void *src,
|
||||
off_t offset,
|
||||
size_t count,
|
||||
size_t *nr_written);
|
||||
extern kern_status_t vm_object_copy(
|
||||
kern_handle_t dst,
|
||||
off_t dst_offset,
|
||||
kern_handle_t src,
|
||||
off_t src_offset,
|
||||
size_t count,
|
||||
size_t *nr_copied);
|
||||
|
||||
extern kern_status_t address_space_read(
|
||||
kern_handle_t region,
|
||||
void *dst,
|
||||
virt_addr_t base,
|
||||
size_t count,
|
||||
size_t *nr_read);
|
||||
extern kern_status_t address_space_write(
|
||||
kern_handle_t region,
|
||||
const void *src,
|
||||
virt_addr_t base,
|
||||
size_t count,
|
||||
size_t *nr_read);
|
||||
extern kern_status_t address_space_map(
|
||||
kern_handle_t region,
|
||||
virt_addr_t map_address,
|
||||
kern_handle_t object,
|
||||
off_t object_offset,
|
||||
size_t length,
|
||||
vm_flags_t flags,
|
||||
vm_prot_t prot,
|
||||
virt_addr_t *out_base_address);
|
||||
extern kern_status_t address_space_unmap(
|
||||
kern_handle_t region,
|
||||
virt_addr_t base,
|
||||
size_t length);
|
||||
extern kern_status_t address_space_reserve(
|
||||
kern_handle_t region,
|
||||
virt_addr_t base,
|
||||
size_t length,
|
||||
virt_addr_t *out_base_address);
|
||||
extern kern_status_t address_space_release(
|
||||
kern_handle_t region,
|
||||
virt_addr_t base,
|
||||
size_t length);
|
||||
|
||||
extern kern_status_t vm_controller_create(kern_handle_t *out);
|
||||
extern kern_status_t vm_controller_recv(
|
||||
kern_handle_t ctrl,
|
||||
equeue_packet_vm_request_t *out);
|
||||
extern kern_status_t vm_controller_recv_async(
|
||||
kern_handle_t ctrl,
|
||||
kern_handle_t eq,
|
||||
equeue_key_t key);
|
||||
extern kern_status_t vm_controller_create_object(
|
||||
kern_handle_t ctrl,
|
||||
const char *name,
|
||||
size_t name_len,
|
||||
equeue_key_t key,
|
||||
size_t data_len,
|
||||
vm_prot_t prot,
|
||||
kern_handle_t *out);
|
||||
extern kern_status_t vm_controller_prepare_attach(
|
||||
kern_handle_t ctrl,
|
||||
uint64_t req_id,
|
||||
kern_handle_t *out_vmo);
|
||||
extern kern_status_t vm_controller_finish_attach(
|
||||
kern_handle_t ctrl,
|
||||
uint64_t req_id,
|
||||
equeue_key_t new_key);
|
||||
extern kern_status_t vm_controller_detach_object(
|
||||
kern_handle_t ctrl,
|
||||
kern_handle_t vmo);
|
||||
extern kern_status_t vm_controller_supply_pages(
|
||||
kern_handle_t ctrl,
|
||||
kern_handle_t dst_vmo,
|
||||
off_t dst_offset,
|
||||
kern_handle_t src_vmo,
|
||||
off_t src_offset,
|
||||
size_t length);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user