Modules:kernel

From Go-OS
Jump to: navigation, search

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.

Personal tools