Pages: KB_headers.md, KB_headers_p2.md, KB_headers_p3.md, KB_headers_p4.md, KB_headers_p5.md, KB_headers_p6.md
- Doc: Docstring: abi.h -- Boot-time ABI manifest gate contract.
- Layer: utility
- Language: h
- Symbols:
abi_verify(function, line 25)int abi_verify(const char *text, long version, unsigned long checksum);abi_check_manifest(function, line 28)int abi_check_manifest(void);ABI_H(macro, line 14)#define ABI_HABI_OK(macro, line 16)#define ABI_OKABI_NO_MANIFEST(macro, line 17)#define ABI_NO_MANIFESTABI_BAD_FORMAT(macro, line 18)#define ABI_BAD_FORMATABI_VERSION_MISMATCH(macro, line 19)#define ABI_VERSION_MISMATCHABI_CHECKSUM_MISMATCH(macro, line 20)#define ABI_CHECKSUM_MISMATCHABI_MANIFEST_NAME(macro, line 22)#define ABI_MANIFEST_NAMEABI_MANIFEST_MAX(macro, line 23)#define ABI_MANIFEST_MAX
- Imported by:
kernel.c,kernel/abi.c,tests/test_abi.c
- Doc: generated from ap_stub.bin - do not edit
- Layer: testing
- Language: h
- Imported by:
smp.c
- Doc: Docstring: bump arena for MiniOS, kernel and ring-3 alike.
- Layer: utility
- Language: h
- Symbols:
minios_arena(struct, line 41)arena_init(function, line 48)static inline void arena_init(arena_t *a, void *block, size_t size)arena_align_up(function, line 62)static inline size_t arena_align_up(size_t n, size_t align)arena_bytes_for(function, line 74)static inline size_t arena_bytes_for(size_t count, size_t elem_size)arena_alloc(function, line 81)static inline void *arena_alloc(arena_t *a, size_t size, size_t align)arena_used(function, line 95)static inline size_t arena_used(const arena_t *a)arena_free_bytes(function, line 101)static inline size_t arena_free_bytes(const arena_t *a)arena_reset(function, line 107)static inline void arena_reset(arena_t *a)arena_checkpoint(function, line 113)static inline size_t arena_checkpoint(const arena_t *a)arena_rewind(function, line 119)static inline int arena_rewind(arena_t *a, size_t checkpoint)arena_contains(function, line 128)static inline int arena_contains(const arena_t *a, const void *ptr)kmalloc(function, line 3)* * A bump arena serves one kmalloc (kernel) or malloc (ring-3) with pointer * bumps instead of N allocator round...kfree(function, line 25)* kfree(back);MINIOS_ARENA_H(macro, line 33)#define MINIOS_ARENA_HARENA_DEFAULT_ALIGN(macro, line 38)#define ARENA_DEFAULT_ALIGN
- Imported by:
kernel/spawn.c,tests/test_arena.c
- Doc: Unified audio API for MiniOS.
- Layer: utility
- Language: h
- Symbols:
audio_init(function, line 21)int audio_init(void);audio_tone(function, line 24)void audio_tone(unsigned freq);audio_pcm_open(function, line 27)int audio_pcm_open(unsigned rate, unsigned channels, unsigned format);audio_pcm_submit(function, line 28)int audio_pcm_submit(const void *buf, unsigned len);audio_pcm_pump(function, line 29)void audio_pcm_pump(void);audio_pcm_close(function, line 30)void audio_pcm_close(void);audio_set_volume(function, line 33)void audio_set_volume(unsigned volume);audio_get_volume(function, line 34)unsigned audio_get_volume(void);audio_sb16_present(function, line 37)int audio_sb16_present(void);audio_stream_open(function, line 40)int audio_stream_open(void);audio_stream_close(function, line 41)void audio_stream_close(int id);audio_stream_submit(function, line 42)int audio_stream_submit(int id, const void *buf, unsigned len);audio_stream_volume(function, line 43)void audio_stream_volume(int id, unsigned char vol);AUDIO_H(macro, line 2)#define AUDIO_HAUDIO_RATE_DEFAULT(macro, line 15)#define AUDIO_RATE_DEFAULTAUDIO_CHANNELS_MONO(macro, line 16)#define AUDIO_CHANNELS_MONOAUDIO_FORMAT_U8(macro, line 17)#define AUDIO_FORMAT_U8AUDIO_FORMAT_S16(macro, line 18)#define AUDIO_FORMAT_S16
- Imported by:
progs/pokemon/platform_minios.c
- Doc: Docstring: Desktop profile avatar, generated by tools/gen_avatar.py.
- Layer: data_access
- Language: h
- Symbols:
AVATAR_DATA_H(macro, line 6)#define AVATAR_DATA_HAVATAR_SIZE(macro, line 8)#define AVATAR_SIZE
- Imported by:
kernel/vga_fb.c
- Doc: Docstring: batch.h -- Batched synchronous syscall submission.
- Layer: utility
- Language: h
- Symbols:
batch_op_t(struct, line 53)batch_exec(function, line 62)long batch_exec(const batch_op_t *ops, long *results, int count, int *completed, batch_handler_t dispatch);BATCH_H(macro, line 2)#define BATCH_HBATCH_MAX_OPS(macro, line 41)#define BATCH_MAX_OPSBATCH_OP_NOP(macro, line 43)#define BATCH_OP_NOPBATCH_OP_YIELD(macro, line 44)#define BATCH_OP_YIELDBATCH_OP_TIME(macro, line 45)#define BATCH_OP_TIMEBATCH_OP_GETPID(macro, line 46)#define BATCH_OP_GETPIDBATCH_OK(macro, line 48)#define BATCH_OKBATCH_ERR_COUNT(macro, line 49)#define BATCH_ERR_COUNTBATCH_ERR_PTR(macro, line 50)#define BATCH_ERR_PTRBATCH_ERR_OPCODE(macro, line 51)#define BATCH_ERR_OPCODE
- Imported by:
kernel/batch.c,kernel/syscalls.c,tests/test_batch.c
- Doc: Block device abstraction for MiniFS.
- Layer: utility
- Language: h
- Symbols:
block_init(function, line 12)void block_init(void);block_set_base(function, line 15)void block_set_base(unsigned int lba_base);block_read(function, line 18)int block_read(unsigned int block_num, void *buf);block_write(function, line 19)int block_write(unsigned int block_num, const void *buf);block_read_multi(function, line 23)int block_read_multi(unsigned int block_num, unsigned int count, void *buf);block_write_multi(function, line 24)int block_write_multi(unsigned int block_num, unsigned int count, const void *buf);block_flush(function, line 27)void block_flush(void);block_total(function, line 30)unsigned int block_total(void);block_read_sectors(function, line 37)int block_read_sectors(unsigned lba, unsigned count, void *buf);block_disk_sectors(function, line 40)unsigned long block_disk_sectors(void);BLOCK_H(macro, line 2)#define BLOCK_HBLOCK_SIZE(macro, line 7)#define BLOCK_SIZEBLOCK_SHIFT(macro, line 8)#define BLOCK_SHIFTSECTORS_PER_BLOCK(macro, line 9)#define SECTORS_PER_BLOCK
- Imported by:
drivers/block.c,fs/ext4.c,fs/fat32.c,fs/fsimg.c,fs/minifs.c,kernel.c,kernel/syscalls.c
- Doc: embedded icon pixel data for desktop shortcuts.
- Layer: utility
- Language: h
- Symbols:
DESKTOP_ICONS_H(macro, line 8)#define DESKTOP_ICONS_HICON_EMBEDDED_W(macro, line 12)#define ICON_EMBEDDED_WICON_EMBEDDED_H(macro, line 13)#define ICON_EMBEDDED_H
- Imported by:
kernel/vga_fb.c
- Doc: configurable desktop icon shortcuts.
- Layer: utility
- Language: h
- Symbols:
desktop_shortcut(struct, line 72)desktop_shortcuts_load(function, line 82)void desktop_shortcuts_load(void);desktop_shortcuts_draw(function, line 85)void desktop_shortcuts_draw(void);desktop_shortcuts_hit_test(function, line 89)const char *desktop_shortcuts_hit_test(int mx, int my);DESKTOP_SHORTCUTS_H(macro, line 13)#define DESKTOP_SHORTCUTS_HMAX_SHORTCUTS(macro, line 18)#define MAX_SHORTCUTSSHORTCUT_NAME_LEN(macro, line 19)#define SHORTCUT_NAME_LENSHORTCUT_CMD_LEN(macro, line 20)#define SHORTCUT_CMD_LENSHORTCUT_PATH_LEN(macro, line 21)#define SHORTCUT_PATH_LENICON_W(macro, line 24)#define ICON_WICON_H(macro, line 25)#define ICON_HICON_PAD_X(macro, line 26)#define ICON_PAD_XICON_PAD_Y(macro, line 27)#define ICON_PAD_YICON_LABEL_H(macro, line 28)#define ICON_LABEL_HDOCK_PAD_X(macro, line 33)#define DOCK_PAD_XDOCK_PAD_Y(macro, line 34)#define DOCK_PAD_YDOCK_GAP(macro, line 35)#define DOCK_GAPDOCK_LABEL_GAP(macro, line 36)#define DOCK_LABEL_GAPDOCK_CRYSTAL_STEP(macro, line 41)#define DOCK_CRYSTAL_STEPDOCK_MAG_W(macro, line 48)#define DOCK_MAG_WDOCK_MAG_H(macro, line 49)#define DOCK_MAG_HDOCK_NEAR_W(macro, line 50)#define DOCK_NEAR_WDOCK_NEAR_H(macro, line 51)#define DOCK_NEAR_HDOCK_BOUNCE_H(macro, line 57)#define DOCK_BOUNCE_HDOCK_BOUNCE_TICKS(macro, line 58)#define DOCK_BOUNCE_TICKSICON_PAL_BASE(macro, line 65)#define ICON_PAL_BASEICON_PAL_SIZE(macro, line 66)#define ICON_PAL_SIZE
- Imported by:
kernel/vga_fb.c
- Doc: Strategy pattern for hardware drivers (thesis correction 2).
- Layer: infrastructure
- Language: h
- Symbols:
device(struct, line 48)block_ops_t(struct, line 28)audio_ops_t(struct, line 37)device_t(type_alias, line 25)typedef struct device device_t;device_register(function, line 56)int device_register(device_t *dev);device_find(function, line 57)device_t *device_find(const char *name);device_find_by_type(function, line 58)device_t *device_find_by_type(int type);device_count(function, line 59)int device_count(void);device_reset(function, line 60)void device_reset(void);DRIVER_H(macro, line 2)#define DRIVER_HDEV_NAME_LEN(macro, line 18)#define DEV_NAME_LENDEV_MAX(macro, line 19)#define DEV_MAXDEV_TYPE_BLOCK(macro, line 21)#define DEV_TYPE_BLOCKDEV_TYPE_AUDIO(macro, line 22)#define DEV_TYPE_AUDIODEV_TYPE_NET(macro, line 23)#define DEV_TYPE_NETDEV_TYPE_CHAR(macro, line 24)#define DEV_TYPE_CHAR
- Imported by:
drivers/block.c,drivers/driver.c,drivers/ide.c,drivers/pcspk.c,drivers/sb16.c,drivers/usbblk.c,drivers/virtio_blk.c,kernel/syscalls.c,tests/test_driver.c,tests/test_usbblk.c
- Doc: the built-in line editor contract.
- Layer: utility
- Language: h
- Symbols:
shell_cmd_edit(function, line 15)void shell_cmd_edit(int argc, char **argv);EDITOR_H(macro, line 2)#define EDITOR_H
- Depends on:
headers/kernel.h - Imported by:
kernel/editor.c,kernel/shell.c
- Doc: Read-only ext4 loopback/device driver.
- Layer: utility
- Language: h
- Symbols:
ext4_handle_t(struct, line 22)ext4_list(function, line 35)int ext4_list(const char *imgpath, const char *dirpath, char names[][EXT4_NAME_MAX + 1], int *isdir, int cap);ext4_vfs_open(function, line 40)int ext4_vfs_open(const char *path, int mode, void **handle);ext4_vfs_read(function, line 41)int ext4_vfs_read(void *handle, void *buf, unsigned long pos, unsigned long len);ext4_vfs_write(function, line 43)int ext4_vfs_write(void *handle, const void *buf, unsigned long pos, unsigned long len);ext4_vfs_close(function, line 45)int ext4_vfs_close(void *handle);ext4_vfs_fstat(function, line 46)int ext4_vfs_fstat(void *handle, unsigned long *size_out);ext4_vfs_truncate(function, line 47)int ext4_vfs_truncate(void *handle, unsigned long size);first(function, line 50)* MBR 0x83 entry first (proven by a superblock read), then a magic * scan over 2048-aligned LBAs for superfloppy...ext4_vfs_ops(variable, line 55)extern const vfs_ops_t ext4_vfs_ops;EXT4_H(macro, line 2)#define EXT4_HEXT4_NAME_MAX(macro, line 16)#define EXT4_NAME_MAXEXT4_MAX_DEPTH(macro, line 17)#define EXT4_MAX_DEPTHEXT4_LIST_CAP(macro, line 18)#define EXT4_LIST_CAPEXT4_PATH_MAX(macro, line 19)#define EXT4_PATH_MAX
- Imported by:
fs/ext4.c,fs/vfs.c,kernel/shell.c,tests/test_ext4.c
- Doc: Read-only FAT32 loopback driver over ramdisk/MiniFS images.
- Layer: utility
- Language: h
- Symbols:
fat32_handle_t(struct, line 25)file(function, line 6)* * A FAT32 disk image stored as a regular file (built on the host with * mkfs.vfat, packed into minifs.bin) is...fat32_list(function, line 45)int fat32_list(const char *imgpath, const char *dirpath, char names[][FAT32_NAME_MAX], int *isdir, int cap);fat_dev_base(function, line 54)long fat_dev_base(void);fat32_vfs_open(function, line 58)int fat32_vfs_open(const char *path, int mode, void **handle);fat32_vfs_read(function, line 59)int fat32_vfs_read(void *handle, void *buf, unsigned long pos, unsigned long len);fat32_vfs_write(function, line 61)int fat32_vfs_write(void *handle, const void *buf, unsigned long pos, unsigned long len);fat32_vfs_close(function, line 63)int fat32_vfs_close(void *handle);fat32_vfs_fstat(function, line 64)int fat32_vfs_fstat(void *handle, unsigned long *size_out);fat32_vfs_truncate(function, line 65)int fat32_vfs_truncate(void *handle, unsigned long size);fat32_vfs_ops(variable, line 67)extern const vfs_ops_t fat32_vfs_ops;FAT32_H(macro, line 2)#define FAT32_HFAT32_NAME_MAX(macro, line 16)#define FAT32_NAME_MAXFAT32_MAX_DEPTH(macro, line 17)#define FAT32_MAX_DEPTHFAT32_LIST_CAP(macro, line 18)#define FAT32_LIST_CAPFAT32_CLUS_MAX(macro, line 19)#define FAT32_CLUS_MAX
- Imported by:
fs/fat32.c,fs/vfs.c,kernel/shell.c,tests/test_fat32.c
- Doc: One image backend for read-only filesystem drivers.
- Layer: utility
- Language: h
- Symbols:
fsimg_t(struct, line 13)fsimg_open_file(function, line 23)int fsimg_open_file(const char *resolved, fsimg_t *img);fsimg_open_dev(function, line 27)int fsimg_open_dev(unsigned long base_lba, unsigned long nsec, fsimg_t *img);fsimg_read(function, line 32)int fsimg_read(const fsimg_t *img, unsigned long off, void *buf, unsigned long len);fsimg_split(function, line 40)int fsimg_split(const char *path, char *left, unsigned llen, char *right, unsigned rlen);FSIMG_H(macro, line 2)#define FSIMG_H
- Imported by:
fs/ext4.c,fs/fat32.c,fs/fsimg.c,tests/test_ext4.c,tests/test_fat32.c
- Doc: Docstring: futex.h -- Fast userspace mutex sleep/wake contract.
- Layer: utility
- Language: h
- Symbols:
futex_bucket_t(struct, line 80)futex_init(function, line 86)void futex_init(void);futex_wait(function, line 87)long futex_wait(unsigned long uaddr, int val);futex_wake(function, line 88)long futex_wake(unsigned long uaddr, int n);futex_forget(function, line 91)void futex_forget(int pid);FUTEX_CLOCK_REALTIME(function, line 96)* FUTEX_CLOCK_REALTIME (it only selects the clock of a BITSET deadline). * Returns -1 for anything unserved...futex_linux_cmd(function, line 100)int futex_linux_cmd(long op);futex_timeout_remaining_us(function, line 107)long futex_timeout_remaining_us(int cmd, long sec, long nsec, unsigned long now_us);FUTEX_H(macro, line 2)#define FUTEX_HFUTEX_BUCKETS(macro, line 51)#define FUTEX_BUCKETSFUTEX_BUCKET_MASK(macro, line 52)#define FUTEX_BUCKET_MASKFUTEX_HASH_GOLDEN(macro, line 53)#define FUTEX_HASH_GOLDENFUTEX_OK(macro, line 55)#define FUTEX_OKFUTEX_NOMATCH(macro, line 56)#define FUTEX_NOMATCHFUTEX_NOPROC(macro, line 57)#define FUTEX_NOPROCFUTEX_WAKE_ALL(macro, line 58)#define FUTEX_WAKE_ALLLINUX_FUTEX_WAIT(macro, line 65)#define LINUX_FUTEX_WAITLINUX_FUTEX_WAKE(macro, line 66)#define LINUX_FUTEX_WAKELINUX_FUTEX_WAIT_BITSET(macro, line 67)#define LINUX_FUTEX_WAIT_BITSETLINUX_FUTEX_WAKE_BITSET(macro, line 68)#define LINUX_FUTEX_WAKE_BITSETLINUX_FUTEX_PRIVATE_FLAG(macro, line 69)#define LINUX_FUTEX_PRIVATE_FLAGLINUX_FUTEX_CLOCK_REALTIME(macro, line 70)#define LINUX_FUTEX_CLOCK_REALTIMELINUX_FUTEX_BITSET_MATCH_ANY(macro, line 71)#define LINUX_FUTEX_BITSET_MATCH_ANYFUTEX_US_PER_S(macro, line 72)#define FUTEX_US_PER_SFUTEX_NS_PER_US(macro, line 73)#define FUTEX_NS_PER_USFUTEX_NS_PER_S(macro, line 74)#define FUTEX_NS_PER_SFUTEX_TIMEOUT_INVALID(macro, line 77)#define FUTEX_TIMEOUT_INVALIDFUTEX_TIMEOUT_FOREVER(macro, line 78)#define FUTEX_TIMEOUT_FOREVER
- Depends on:
headers/sched.h,headers/spinlock.h,headers/sync.h - Imported by:
kernel/futex.c,kernel/sched.c,kernel/syscalls.c,tests/test_futex.c
- Doc: Docstring: httpd.h -- Minimal static HTTP/1.0 server contract.
- Layer: presentation
- Language: h
- Symbols:
httpd_ctype(function, line 28)static inline const char *httpd_ctype(const char *path)httpd_header(function, line 121)static inline int httpd_header(int code, const char *reason, const char *ctype, unsigned ...HTTPD_H(macro, line 15)#define HTTPD_HHTTPD_MAX_PATH(macro, line 17)#define HTTPD_MAX_PATHHTTPD_MAX_REQ(macro, line 18)#define HTTPD_MAX_REQHTTPD_HEAD_MAX(macro, line 19)#define HTTPD_HEAD_MAXHTTPD_ERR_BOUND(macro, line 21)#define HTTPD_ERR_BOUNDHTTPD_ERR_METHOD(macro, line 22)#define HTTPD_ERR_METHODHTTPD_ERR_PATH(macro, line 23)#define HTTPD_ERR_PATHHTTPD_ERR_VERSION(macro, line 24)#define HTTPD_ERR_VERSION
- Imported by:
kernel/shell.c,tests/test_httpd.c
- Doc: IDE/ATA PIO driver for MiniOS.
- Layer: utility
- Language: h
- Symbols:
ide_init(function, line 49)void ide_init(void);ide_read_sectors(function, line 53)int ide_read_sectors(unsigned int lba, unsigned int count, void *buf);ide_write_sectors(function, line 54)int ide_write_sectors(unsigned int lba, unsigned int count, const void *buf);ide_read_sector(function, line 57)int ide_read_sector(unsigned int lba, void *buf);ide_write_sector(function, line 58)int ide_write_sector(unsigned int lba, const void *buf);ide_total_sectors(function, line 61)unsigned int ide_total_sectors(void);ide_present(function, line 64)int ide_present(void);ide_register_device(function, line 68)void ide_register_device(void);IDE_H(macro, line 2)#define IDE_HIDE_PRIMARY_BASE(macro, line 9)#define IDE_PRIMARY_BASEIDE_PRIMARY_CTRL(macro, line 10)#define IDE_PRIMARY_CTRLIDE_REG_DATA(macro, line 13)#define IDE_REG_DATAIDE_REG_ERROR(macro, line 14)#define IDE_REG_ERRORIDE_REG_SECCOUNT(macro, line 15)#define IDE_REG_SECCOUNTIDE_REG_LBA_LO(macro, line 16)#define IDE_REG_LBA_LOIDE_REG_LBA_MID(macro, line 17)#define IDE_REG_LBA_MIDIDE_REG_LBA_HI(macro, line 18)#define IDE_REG_LBA_HIIDE_REG_DRIVE(macro, line 19)#define IDE_REG_DRIVEIDE_REG_STATUS(macro, line 20)#define IDE_REG_STATUSIDE_REG_ALTSTATUS(macro, line 21)#define IDE_REG_ALTSTATUSIDE_STATUS_ERR(macro, line 24)#define IDE_STATUS_ERRIDE_STATUS_DRQ(macro, line 25)#define IDE_STATUS_DRQIDE_STATUS_SRV(macro, line 26)#define IDE_STATUS_SRVIDE_STATUS_DF(macro, line 27)#define IDE_STATUS_DFIDE_STATUS_RDY(macro, line 28)#define IDE_STATUS_RDYIDE_STATUS_BSY(macro, line 29)#define IDE_STATUS_BSYIDE_CMD_READ(macro, line 32)#define IDE_CMD_READIDE_CMD_WRITE(macro, line 33)#define IDE_CMD_WRITEIDE_CMD_IDENTIFY(macro, line 34)#define IDE_CMD_IDENTIFYIDE_CMD_FLUSH(macro, line 35)#define IDE_CMD_FLUSHIDE_DRIVE_LBA(macro, line 38)#define IDE_DRIVE_LBAIDE_DRIVE_MASTER(macro, line 39)#define IDE_DRIVE_MASTERIDE_DRIVE_SLAVE(macro, line 40)#define IDE_DRIVE_SLAVEIDE_TIMEOUT(macro, line 43)#define IDE_TIMEOUTIDE_SECTOR_SIZE(macro, line 46)#define IDE_SECTOR_SIZE
- Imported by:
drivers/block.c,drivers/ide.c,fs/minifs.c,kernel.c,kernel/mm/swap.c,kernel/syscalls.c
Next: KB_headers_p2.md