2.2.1 Module API
Related headers [link]
Name | Description |
---|---|
mutek/bytecode.h | Generic bytecode |
mutek/kroutine.h | Kernel deferred routines |
mutek/lut.h | Inline lookup tables |
mutek/mem_alloc.h | Memory allocation stuff |
mutek/printk.h | Debugging messages output API |
mutek/rwlock.h | General purpose read/write lock primitives |
mutek/scheduler.h | Kernel execution context scheduler |
mutek/semaphore.h | Kernel semaphore service |
mutek/shell.h | Interactive shell |
mutek/slab.h | Slab allocator |
mutek/startup.h | System initialization and statup functions |
mutek/thread.h | Kernel thread service |
mutek/console.h | Console device defs (internal) |
Members [link]
Types [link]
- typedef bc_reg_t (bc_ccall_function_t)(const struct bc_context_s *ctx)
- struct bc_context_s
- struct bc_descriptor_s
- typedef [...] bc_opcode_t
- typedef [...] bc_reg_t
- typedef [...] bc_reg_t
- enum bc_run_status_e
- typedef [...] bc_sreg_t
- typedef [...] bc_sreg_t
- enum bc_trace_e
- typedef [...] bytecode_entry_t
- struct device_char_s
- enum kroutine_exec_flags_e
- typedef void (kroutine_exec_t)(struct kroutine_s *kr, enum kroutine_exec_flags_e flags)
- typedef [...] * kroutine_list_item_t
- typedef [...] kroutine_list_root_t
- enum kroutine_policy_e
- struct kroutine_queue_s
- struct kroutine_s
- struct kroutine_sequence_s
- enum logk_level_e
- typedef [...] lut_16_2_t
- typedef [...] lut_16_4_t
- typedef [...] lut_2_16_t
- typedef [...] lut_2_32_t
- typedef [...] lut_32_1_t
- typedef [...] lut_32_2_t
- typedef [...] lut_4_16_t
- typedef [...] lut_4_8_t
- typedef [...] lut_64_1_t
- typedef [...] lut_8_4_t
- typedef [...] lut_8_8_t
- enum mem_scope_e
- typedef [...] * printk_backend_item_t
- struct printk_backend_s
- typedef void (printk_handler_t)(struct printk_backend_s *backend, const char *str, size_t len)
- typedef bool_t (sched_candidate_fcn_t)(struct sched_context_s *sched_ctx)
- struct sched_context_s
- typedef [...] * sched_queue_item_t
- typedef [...] sched_queue_root_t
- typedef void (sched_wait_cb_t)(void *ctx)
- struct semaphore_poll_s
- typedef [...] semaphore_value_t
- typedef [...] * semaphore_wait_item_t
- typedef [...] * shell_buffer_item_t
- struct shell_opt_buffer_s
- typedef [...] * slab_group_list_item_t
- typedef size_t (slab_grow_func_t)(struct slab_s *slab, size_t current)
- struct slab_s
- typedef [...] * slab_unit_list_item_t
- struct thread_attr_s
- typedef [...] _LUT_out_of_range
- enum bc_flags_s
- enum bc_opcode_pack_e
- typedef bc_opcode_t (bc_run_t)(struct bc_context_s *ctx)
- struct cpu_tree_s
- struct mutek_shell_buffer_s
- struct mutek_shell_context_s
- struct mutek_shell_root_groups_s
- struct rwlock_s
- struct semaphore_wait_s
- struct shell_opt_buffer_desc_s
- struct slab_group_s
- struct slab_unit_s
Functions [link]
- TERMUI_CON_ARGS_COLLECT_PROTOTYPE(shell_opt_buffer_comp )
- TERMUI_CON_ARGS_COLLECT_PROTOTYPE(shell_opt_buffer_name_comp )
- TERMUI_CON_PARSE_OPT_PROTOTYPE(shell_opt_buffer_raw_parse )
- TERMUI_CON_PARSE_OPT_PROTOTYPE(shell_opt_buffer_get_parse )
- void app_start(void )
- error_t bc_desc_init(struct bc_descriptor_s *desc, const void *code, size_t len, enum bc_flags_s flags)
- void bc_dump(const struct bc_context_s *ctx, bool_t regs)
- void bc_enable_bp(struct bc_context_s *ctx, uint_fast8_t idx, bool_t en)
- void bc_enable_bps(struct bc_context_s *ctx, uint16_t mask)
- uint8_t * bc_get_bytepack(const struct bc_context_s *ctx, uint_fast8_t i)
- uint8_t * bc_get_bytepack_safe(const struct bc_context_s *ctx, uint_fast8_t i, size_t bytes)
- uint_fast16_t bc_get_cycles(const struct bc_context_s *ctx)
- uint_fast8_t bc_get_mode(const struct bc_context_s *ctx)
- const void * bc_get_pc(const struct bc_context_s *ctx)
- uintptr_t bc_get_reg(const struct bc_context_s *ctx, uint_fast8_t i)
- uint32_t bc_get_sandbox_pc(const struct bc_context_s *ctx)
- void bc_init(struct bc_context_s *ctx, const struct bc_descriptor_s *desc)
- void bc_init_sandbox(struct bc_context_s *ctx, const struct bc_descriptor_s *desc, void *data_base, size_t data_size, uint_fast16_t cycles)
- error_t bc_load(struct bc_descriptor_s *desc, const uint8_t *blob, size_t len)
- const char * bc_opname(uint16_t op)
- bc_opcode_t bc_run(struct bc_context_s *ctx)
- error_t bc_set_bp(struct bc_context_s *ctx, uint_fast8_t idx, uintptr_t pc)
- void bc_set_cycles(struct bc_context_s *ctx, uint_fast16_t cycles)
- void bc_set_mode(struct bc_context_s *ctx, uint_fast8_t mode)
- void bc_set_pc(struct bc_context_s *ctx, const void *pc)
- void bc_set_reg(struct bc_context_s *ctx, uint_fast8_t i, uintptr_t value)
- void bc_set_regs(struct bc_context_s *ctx, uint16_t mask, ...)
- void bc_set_regs_va(struct bc_context_s *ctx, uint16_t mask, va_list ap)
- error_t bc_set_sandbox_pc(struct bc_context_s *ctx, uint32_t pc)
- void bc_set_trace(struct bc_context_s *ctx, enum bc_trace_e mode)
- void bc_skip(struct bc_context_s *ctx)
- bool_t bc_test_bp(const struct bc_context_s *ctx, const void *pc)
- void * bc_translate_addr(struct bc_context_s *ctx, bc_reg_t addr, size_t size, bool_t writable)
- void cpu_boot(void )
- void hexdumpk(uintptr_t address, const void *data, size_t len)
- bool_t kroutine_exec(struct kroutine_s *kr)
- bool_t kroutine_exec_flags(struct kroutine_s *kr, uint8_t user_flags)
- void kroutine_init(struct kroutine_s *kr, kroutine_exec_t *exec, enum kroutine_policy_e policy)
- void kroutine_init_deferred(struct kroutine_s *kr, kroutine_exec_t *exec)
- void kroutine_init_deferred_cpu(struct kroutine_s *kr, kroutine_exec_t *exec, struct cpu_tree_s *cpu)
- void kroutine_init_deferred_local(struct kroutine_s *kr, kroutine_exec_t *exec)
- void kroutine_init_deferred_seq(struct kroutine_s *kr, kroutine_exec_t *exec, struct kroutine_sequence_s *seq)
- void kroutine_init_idle(struct kroutine_s *kr, kroutine_exec_t *exec)
- void kroutine_init_immediate(struct kroutine_s *kr, kroutine_exec_t *exec)
- void kroutine_init_interruptible(struct kroutine_s *kr, kroutine_exec_t *exec)
- void kroutine_init_interruptible_cpu(struct kroutine_s *kr, kroutine_exec_t *exec, struct cpu_tree_s *cpu)
- void kroutine_init_interruptible_local(struct kroutine_s *kr, kroutine_exec_t *exec)
- void kroutine_init_interruptible_seq(struct kroutine_s *kr, kroutine_exec_t *exec, struct kroutine_sequence_s *seq)
- void kroutine_init_none(struct kroutine_s *kr)
- void kroutine_init_queue(struct kroutine_s *kr, kroutine_exec_t *exec, struct kroutine_queue_s *queue)
- void kroutine_init_sched_switch(struct kroutine_s *kr, kroutine_exec_t *exec)
- void kroutine_init_sched_switch_cpu(struct kroutine_s *kr, kroutine_exec_t *exec, struct cpu_tree_s *cpu)
- void kroutine_init_sched_switch_local(struct kroutine_s *kr, kroutine_exec_t *exec)
- void kroutine_init_sched_switch_seq(struct kroutine_s *kr, kroutine_exec_t *exec, struct kroutine_sequence_s *seq)
- void kroutine_init_trigger(struct kroutine_s *kr, kroutine_exec_t *exec)
- bool_t kroutine_postpone(struct kroutine_s *kr, enum kroutine_policy_e policy)
- void kroutine_queue_cleanup(struct kroutine_queue_s *q)
- error_t kroutine_queue_init(struct kroutine_queue_s *q, struct semaphore_s *sem)
- bool_t kroutine_queue_process(struct kroutine_queue_s *queue)
- bool_t kroutine_queue_wait(struct kroutine_queue_s *queue)
- void kroutine_seq_cleanup(struct kroutine_sequence_s *seq)
- error_t kroutine_seq_init(struct kroutine_sequence_s *seq)
- void kroutine_set_priority(struct kroutine_s *kr, uint8_t priority)
- bool_t kroutine_trigger(struct kroutine_s *kr, enum kroutine_policy_e policy)
- void logk_set_filter(struct printk_backend_s *backend, const char id[4], enum logk_level_e level)
- void * mem_alloc(size_t size, enum mem_scope_e scope)
- void * mem_alloc_align(size_t size, size_t align, enum mem_scope_e scope)
- void * mem_alloc_cpu(size_t size, enum mem_scope_e scope, cpu_id_t cpu_id)
- void mem_check(void )
- void mem_free(void *ptr)
- size_t mem_getsize(void *ptr)
- void * mem_resize(void *ptr, size_t size)
- void memory_allocator_dumpk(struct memory_allocator_region_s *region)
- error_t mutek_shell_start(const struct device_char_s *c, const char *term, const struct termui_con_entry_s *const*root, const char *prompt)
- void mutek_startup_halt(void )
- void mutekh_startup(void *arg)
- void mutekh_startup_devready(void )
- void mutekh_startup_smp(void )
- void mutekh_startup_smp_barrier(void )
- void mutekh_startup_smp_barrier(void )
- ssize_t printk(const char *format, ...)
- void printk_fatal_abort(void )
- void printk_register(struct printk_backend_s *s, printk_handler_t *handler)
- void printk_unregister(struct printk_backend_s *s)
- error_t rwlock_destroy(struct rwlock_s *rwlock)
- error_t rwlock_destroy(struct rwlock_s *rwlock)
- error_t rwlock_init(struct rwlock_s *rwlock)
- error_t rwlock_init(struct rwlock_s *rwlock)
- error_t rwlock_rdlock(struct rwlock_s *rwlock)
- error_t rwlock_rdlock(struct rwlock_s *rwlock)
- error_t rwlock_tryrdlock(struct rwlock_s *rwlock)
- error_t rwlock_tryrdlock(struct rwlock_s *rwlock)
- error_t rwlock_trywrlock(struct rwlock_s *rwlock)
- error_t rwlock_trywrlock(struct rwlock_s *rwlock)
- error_t rwlock_unlock(struct rwlock_s *rwlock)
- error_t rwlock_unlock(struct rwlock_s *rwlock)
- error_t rwlock_wrlock(struct rwlock_s *rwlock)
- error_t rwlock_wrlock(struct rwlock_s *rwlock)
- void sched_affinity_add(struct sched_context_s *sched_ctx, cpu_id_t cpu)
- void sched_affinity_all(struct sched_context_s *sched_ctx)
- void sched_affinity_clear(struct sched_context_s *sched_ctx)
- void sched_affinity_remove(struct sched_context_s *sched_ctx, cpu_id_t cpu)
- void sched_affinity_single(struct sched_context_s *sched_ctx, cpu_id_t cpu)
- void sched_context_candidate_fcn(struct sched_context_s *sched_ctx, sched_candidate_fcn_t *fcn)
- void sched_context_exit(void )
- void sched_context_init(struct sched_context_s *sched_ctx, struct context_s *context)
- void sched_context_start(struct sched_context_s *sched_ctx)
- void sched_context_switch(void )
- void sched_context_wake(sched_queue_root_t *queue, struct sched_context_s *sched_ctx)
- struct sched_context_s * sched_get_current(void )
- struct context_s * sched_preempt_stop(void )
- struct context_s * sched_preempt_switch(void )
- struct context_s * sched_preempt_wait_unlock(void )
- void sched_queue_destroy(sched_queue_root_t *queue)
- error_t sched_queue_init(sched_queue_root_t *queue)
- void sched_queue_rdlock(sched_queue_root_t *queue)
- void sched_queue_unlock(sched_queue_root_t *queue)
- void sched_queue_wrlock(sched_queue_root_t *queue)
- void sched_stop_unlock(lock_t *lock)
- struct context_s * sched_tmp_context(void )
- void sched_wait_unlock(sched_queue_root_t *queue)
- struct sched_context_s * sched_wake(sched_queue_root_t *queue)
- void semaphore_barrier(struct semaphore_s *semaphore, semaphore_value_t n)
- void semaphore_destroy(struct semaphore_s *semaphore)
- void semaphore_give(struct semaphore_s *semaphore, semaphore_value_t n)
- void semaphore_give_any(struct semaphore_s *semaphore, semaphore_value_t n)
- error_t semaphore_init(struct semaphore_s *semaphore, semaphore_value_t value)
- void semaphore_poll_init(struct semaphore_poll_s poll[], size_t count, struct semaphore_s *sem)
- void semaphore_take(struct semaphore_s *semaphore, semaphore_value_t n)
- semaphore_value_t semaphore_take_any(struct semaphore_s *semaphore)
- error_t semaphore_try_take(struct semaphore_s *semaphore, semaphore_value_t n)
- semaphore_value_t semaphore_try_take_any(struct semaphore_s *semaphore)
- semaphore_value_t semaphore_value(struct semaphore_s *semaphore)
- void shell_buffer_advertise(struct termui_console_s *con, void *data, size_t size)
- void shell_buffer_collect(const struct termui_console_s *con, const char *name)
- void shell_buffer_drop(void *data)
- void * shell_buffer_get(const struct termui_console_s *con, const char *name, size_t *size, const void *type)
- const char * shell_buffer_name(void *data)
- void * shell_buffer_new(const struct termui_console_s *con, size_t size, const char *prefix, const void *type, bool_t nocopy)
- void * shell_buffer_reuse(const struct termui_console_s *con, size_t size, const char *prefix, const void *type, bool_t nocopy)
- void shell_hexdump(struct termui_console_s *con, const uint8_t *data, uintptr_t offset, size_t size, size_t dump_size)
- void * shell_opt_buffer_new_if_null(struct shell_opt_buffer_s *b, const struct termui_console_s *con, size_t size, const char *prefix, const void *type, bool_t nocopy)
- void * slab_alloc(struct slab_s *slab)
- void slab_cleanup(struct slab_s *slab)
- void slab_free(struct slab_s *slab, void *ptr)
- void slab_init(struct slab_s *slab, size_t unit_size, slab_grow_func_t *grow, enum mem_scope_e scope)
- error_t thread_create(context_entry_t *entry, void *arg, const struct thread_attr_s *attr)
- ssize_t vprintk(const char *format, va_list ap)
- void writek(const char *data, size_t len)
- error_t kroutine_schedule(struct kroutine_s *kr, enum kroutine_policy_e policy)
- ssize_t logk_(const char *format, ...)
- struct memory_allocator_header_s * memory_allocator_extend(struct memory_allocator_region_s *region, void *start, size_t size)
- size_t memory_allocator_getsize(void *ptr)
- struct memory_allocator_region_s * memory_allocator_init(struct memory_allocator_region_s *container_region, void *start, void *end)
- void * memory_allocator_pop(struct memory_allocator_region_s *region, size_t size, size_t align)
- void memory_allocator_push(void *address)
- void * memory_allocator_region_address(struct memory_allocator_region_s *region)
- void memory_allocator_region_check(struct memory_allocator_region_s *region)
- size_t memory_allocator_region_size(struct memory_allocator_region_s *region)
- void * memory_allocator_reserve(struct memory_allocator_region_s *region, void *start, size_t size)
- void * memory_allocator_resize(void *address, size_t size)
- error_t memory_allocator_stats(struct memory_allocator_region_s *region, size_t *alloc_blocks, size_t *free_size, size_t *free_blocks)
- struct context_s * sched_wait_unlock_ctx(sched_queue_root_t *queue)
- bool_t shell_buffer_collect_all(struct mutek_shell_context_s *sctx)
- void * slab_nolock_grow(struct slab_s *slab)
- ssize_t vlogk_(const char *format, va_list ap)
Constant [link]
- const struct fileops_s console_file_ops
Variables [link]
- struct device_char_s console_dev
- sched_queue_root_t * sched_preempt_wait_unlock_q
- struct memory_allocator_region_s * default_region
- struct sched_context_s * sched_cur
- struct sched_context_s sched_idle
Macros [link]
- BC_CCALL_FUNCTION
- BC_STATUS_CUSTOM
- DLUT_16_2
- DLUT_16_2_DEF
- DLUT_16_4
- DLUT_16_4_DEF
- DLUT_2_16
- DLUT_2_16_DEF
- DLUT_2_32
- DLUT_2_32_DEF
- DLUT_32_1
- DLUT_32_1_DEF
- DLUT_32_2
- DLUT_32_2_DEF
- DLUT_4_16
- DLUT_4_16_DEF
- DLUT_4_8
- DLUT_4_8_DEF
- DLUT_64_1
- DLUT_64_1_DEF
- DLUT_8_4
- DLUT_8_4_DEF
- DLUT_8_8
- DLUT_8_8_DEF
- KROUTINE_CONTAINER
- KROUTINE_EXEC
- LOGK_MODULE_ID
- LUT_16_2_GET
- LUT_16_4_GET
- LUT_2_16_GET
- LUT_2_32_GET
- LUT_32_1_GET
- LUT_32_2_GET
- LUT_4_16_GET
- LUT_4_8_GET
- LUT_64_1_GET
- LUT_8_4_GET
- LUT_8_8_GET
- PRINTK_HANDLER
- PRINTK_RET
- RWLOCK_INITIALIZER
- RWLOCK_INITIALIZER
- SCHED_CANDIDATE_FCN
- SLAB_GROW
- TERMUI_CON_OPT_SHELL_BUFFER_GET_ENTRY
- TERMUI_CON_OPT_SHELL_BUFFER_RAW_ENTRY
- THREAD_ATTR_INITIALIZER
- XLUT_16_2
- XLUT_16_2_DEF
- XLUT_16_4
- XLUT_16_4_DEF
- XLUT_2_16
- XLUT_2_16_DEF
- XLUT_2_32
- XLUT_2_32_DEF
- XLUT_32_1
- XLUT_32_1_DEF
- XLUT_32_2
- XLUT_32_2_DEF
- XLUT_4_16
- XLUT_4_16_DEF
- XLUT_4_8
- XLUT_4_8_DEF
- XLUT_64_1
- XLUT_64_1_DEF
- XLUT_8_4
- XLUT_8_4_DEF
- XLUT_8_8
- XLUT_8_8_DEF
- logk
- logk_debug
- logk_error
- logk_fatal
- logk_trace
- logk_warning
- vlogk
- vlogk_debug
- vlogk_error
- vlogk_fatal
- vlogk_trace
- vlogk_warning
Configuration tokens [link]
- CONFIG_APP_START_SMP
- CONFIG_MUTEK
- CONFIG_MUTEK_BUFFER_POOL
- CONFIG_MUTEK_BYTECODE
- CONFIG_MUTEK_BYTECODE_BREAKPOINTS
- CONFIG_MUTEK_BYTECODE_DEBUG
- CONFIG_MUTEK_BYTECODE_NATIVE
- CONFIG_MUTEK_BYTECODE_SANDBOX
- CONFIG_MUTEK_BYTECODE_TRACE
- CONFIG_MUTEK_BYTECODE_VM
- CONFIG_MUTEK_BYTECODE_VM64
- CONFIG_MUTEK_BYTECODE_VM_SINGLE
- CONFIG_MUTEK_CONSOLE
- CONFIG_MUTEK_CONSOLE_DEVICE_PATHS
- CONFIG_MUTEK_CONTEXT_SCHED
- CONFIG_MUTEK_CONTEXT_SCHED_CANDIDATE_FCN
- CONFIG_MUTEK_CONTEXT_SCHED_MIGRATION
- CONFIG_MUTEK_CONTEXT_SCHED_MIGRATION_AFFINITY
- CONFIG_MUTEK_CONTEXT_SCHED_STATIC
- CONFIG_MUTEK_DEFAULT_MEMALLOC_INIT
- CONFIG_MUTEK_FAULT_FINISH
- CONFIG_MUTEK_FAULT_HANDLER
- CONFIG_MUTEK_KROUTINE_IDLE
- CONFIG_MUTEK_KROUTINE_QUEUE
- CONFIG_MUTEK_KROUTINE_SCHED
- CONFIG_MUTEK_KROUTINE_SEMAPHORE
- CONFIG_MUTEK_KROUTINE_TRIGGER
- CONFIG_MUTEK_LOGO
- CONFIG_MUTEK_MEMALLOC
- CONFIG_MUTEK_MEMALLOC_ALGO_BESTFIT
- CONFIG_MUTEK_MEMALLOC_ALGO_FIRSTFIT
- CONFIG_MUTEK_MEMALLOC_ALIGN
- CONFIG_MUTEK_MEMALLOC_CRC
- CONFIG_MUTEK_MEMALLOC_GUARD
- CONFIG_MUTEK_MEMALLOC_GUARD_INSTRUMENT
- CONFIG_MUTEK_MEMALLOC_GUARD_SIZE
- CONFIG_MUTEK_MEMALLOC_SCRAMBLE
- CONFIG_MUTEK_MEMALLOC_SCRAMBLE_CHECK
- CONFIG_MUTEK_MEMALLOC_SIMPLE
- CONFIG_MUTEK_MEMALLOC_SMART
- CONFIG_MUTEK_MEMALLOC_STATS
- CONFIG_MUTEK_MEM_REGION
- CONFIG_MUTEK_NUMA
- CONFIG_MUTEK_PRINTK
- CONFIG_MUTEK_PRINTK_ADDR
- CONFIG_MUTEK_PRINTK_COLOR
- CONFIG_MUTEK_PRINTK_COMPILE_EXPR
- CONFIG_MUTEK_PRINTK_FATAL_ABORT
- CONFIG_MUTEK_PRINTK_HANDLER
- CONFIG_MUTEK_PRINTK_HEXDUMP
- CONFIG_MUTEK_PRINTK_RING
- CONFIG_MUTEK_PRINTK_RING_SIZE
- CONFIG_MUTEK_PRINTK_RUNTIME_EXPR
- CONFIG_MUTEK_PRINTK_RUNTIME_LEVEL
- CONFIG_MUTEK_RWLOCK
- CONFIG_MUTEK_SCHED
- CONFIG_MUTEK_SCHED_PRIORITIES
- CONFIG_MUTEK_SEMAPHORE
- CONFIG_MUTEK_SHELL
- CONFIG_MUTEK_SHELL_BUFFER
- CONFIG_MUTEK_SHELL_BUF_SIZE
- CONFIG_MUTEK_SHELL_LINE_SIZE
- CONFIG_MUTEK_SHELL_MEM
- CONFIG_MUTEK_SHELL_PROMPT
- CONFIG_MUTEK_SHELL_STACK_SIZE
- CONFIG_MUTEK_SHELL_THREAD
- CONFIG_MUTEK_SLAB
- CONFIG_MUTEK_THREAD
- CONFIG_VMEM
- CONFIG_VMEM_KERNEL_ALLOC
- CONFIG_VMEM_PHYS_ALLOC
- CONFIG_MUTEK_KROUTINE_PREEMPT