Modules:kernel
From Go-OS
Contents |
Module info
[0:0xc0077020] kernel (Go-OS Kernel) at 0xc0000000=>0xc0078000 (bss: 0xd0000000=>0xd0040c54) * kmalloc(0xc0003610) * kfree(0xc0002e90) * memcpy(0xc0002e20) * memset(0xc0002db0) * memcmp(0xc00063c0) * strlen(0xc00063a0) * getTicks(0xc0006220) * sched_noop(0xc0005670) * sched_schedule(0xc0005440) * irq_set_routine(0xc00076b0) * events_kernel_push(0xc0007220) * vfs_register_fs(0xc00065e0) * blkdev_register_device(0xc0005b30) * kprintf(0xc0003de0) * modules_find_driver(0xc00040d0)
Available functions
kmalloc & kfree
#include <kernel/paging.h> void *kmalloc(uint32_t); void kfree(void*);
Those functions are used to allocate memory and free memory while inside the kernel.
WARNING: At this point, kfree() has no effect. If you allocate memory, try to allocate memory you'll keep.
memcpy
#include <kernel/paging.h> void *memcpy (void *__restrict __dest, __const void *__restrict __src, uint32_t __n);
memset
#include <kernel/paging.h> void *memset(void *, uint32_t, uint32_t);
memcmp
#include <kernel/paging.h> int memcmp(const char *, const char *, int);
strlen
#include <kernel/paging.h> int strlen(const char *);
getTicks
#include <kernel/time.h> uint32_t getTicks(void);
Return number of system ticks since CPU start.
sched_noop
#include <kernel/sched.h> void sched_noop();
Set the process to "NOOP" status and run scheduler.
sched_schedule
#include <kernel/sched.h> void sched_schedule();
Run scheduler immediatly, but try to give back hand as soon as possible (avoid this call if possible).
irq_set_routine
#include <kernel/hw/irqs.h> void irq_set_routine(int irq_level, irq_handler routine);
Set a routine call for a given irq.
events_kernel_push
#include <kernel/events.h> void events_kernel_push(uint16_t code, uint32_t value, uint32_t value2);
Push an event on kernel's event stack for immediate processing.
vfs_register_fs
#include <kernel/vfs.h> void vfs_register_fs(struct vfs_filesystem_funcs *vfs);
Register a filesystem driver (eg. ext2).
blkdev_register_device
#include <kernel/blkdev.h> void blkdev_register_device(struct blkdev_entry *device);
Register a block device (eg. usb mass storage, ide).
kprintf
#include <kernel/kprint.h> void kprintf(const char *fmt, ...);
Send a string to the kernel's debug log.
modules_find_driver
#include <kernel/modules.h> bool modules_find_driver(uint16_t type);
Locate a module for a given type of hardware. Deprecated.