Repository navigation
Agent API_p2
Previous: API.md
Depends on: headers/arch/x86/hal_io.h, headers/drivers/pci.h, headers/drivers/xhci.h
Imported by: tests/test_usbblk.c, tests/test_usbhid.c, tests/test_xhci.c
-
xhc_ep_b(function)drivers/xhci.c:296static unsigned xhc_ep_b(void) -
xhc_stride(function)drivers/xhci.c:300static unsigned xhc_stride(void) -
xhc_put32(function)drivers/xhci.c:327static void xhc_put32(unsigned char *base, unsigned off, unsigned val) -
xhc_get32(function)drivers/xhci.c:334static unsigned xhc_get32(const unsigned char *base, unsigned off) -
xhc_put64(function)drivers/xhci.c:339static void xhc_put64(unsigned char *base, unsigned off, unsigned long long... -
xhc_put16(function)drivers/xhci.c:345static void xhc_put16(unsigned char *base, unsigned off, unsigned val) -
xhc_puttrb(function)drivers/xhci.c:350static void xhc_puttrb(xhc_trb_t *trb, unsigned long long param, unsigned ... -
xhc_op_read32(function)drivers/xhci.c:359static unsigned xhc_op_read32(unsigned off) -
xhc_op_write32(function)drivers/xhci.c:363static void xhc_op_write32(unsigned off, unsigned val) -
xhc_run_write32(function)drivers/xhci.c:367static void xhc_run_write32(unsigned off, unsigned val) -
xhc_run_read32(function)drivers/xhci.c:371static unsigned xhc_run_read32(unsigned off) -
xhc_now_ms(function)drivers/xhci.c:375static unsigned long xhc_now_ms(void) -
xhc_flush(function)drivers/xhci.c:386static void xhc_flush(const void *p, unsigned long len)-- Docstring: Write back and invalidate the cache lines covering a range the controller can reach. -
xhc_idle(function)drivers/xhci.c:393static void xhc_idle(unsigned spin) -
xhc_slot_ctx(function)drivers/xhci.c:400static unsigned char *xhc_slot_ctx(int slot)-- --- Context addressing ---- * Device context N lives at xhc_ctx + N * stride; slot 0 is unused. -
xhc_ep_ctx(function)drivers/xhci.c:404static unsigned char *xhc_ep_ctx(int slot, int ep) -
xhc_in_slot(function)drivers/xhci.c:409static unsigned char *xhc_in_slot(void) -
xhc_in_ep(function)drivers/xhci.c:413static unsigned char *xhc_in_ep(int ci) -
xhc_ep_ctx_build(function)drivers/xhci.c:418static void xhc_ep_ctx_build(unsigned char *ep, unsigned type, unsig...-- static unsigned char *xhc_ep_ctx(int slot, int ep) { return xhc_slot_ctx(slot) + xhc_ep_b() + (unsigned... -
xhc_slot_ctx_build(function)drivers/xhci.c:439static void xhc_slot_ctx_build(unsigned char *sc, unsigned speed, ...-- dw0 = ((mult & 0x3u) << XHC_EP_MULT_SHIFT) | ((interval & 0xFFu) << XHC_EP_INTERVAL_SHIFT); dw1 = (XHC_EP_CERR &... -
xhc_arm_link_trb(function)drivers/xhci.c:458static void xhc_arm_link_trb(xhc_trb_t *ring, unsigned gen)-- Docstring: Toggle-cycle bit of a Link TRB. -
xhc_arm_link(function)drivers/xhci.c:465static void xhc_arm_link(void) -
xhc_cmd_wrap(function)drivers/xhci.c:477static void xhc_cmd_wrap(void) -
xhc_cmd_maybe_arm(function)drivers/xhci.c:483static void xhc_cmd_maybe_arm(void) -
xhc_cmd_slot(function)drivers/xhci.c:494static xhc_trb_t *xhc_cmd_slot(void)-- Docstring: Fill one command-ring slot without ringing the doorbell. -
xhc_cmd_ring_doorbell(function)drivers/xhci.c:506static void xhc_cmd_ring_doorbell(void)-- Docstring: Ring the command doorbell. -
xhc_slot_doorbell(function)drivers/xhci.c:519static void xhc_slot_doorbell(int slot, int ep)-- Docstring: Ring a slot doorbell for endpoint context index ep: DCI is the * index plus one, and EP0 rings target 1. -
xhc_evt_next(function)drivers/xhci.c:535static xhc_trb_t *xhc_evt_next(void)-- Docstring: Next event TRB, or 0 when the ring is empty. -
xhc_evt_trb_ptr(function)drivers/xhci.c:552static xhc_trb_t *xhc_evt_trb_ptr(xhc_trb_t *ev)-- Docstring: The TRB a completion names, as a host pointer. -
xhc_evt_advance(function)drivers/xhci.c:559static void xhc_evt_advance(void)-- Docstring: Tell the controller the event ring was drained: ERDP advances to the dequeue pointer with EHB set to... -
xhc_pending_claim_len(function)drivers/xhci.c:570static int xhc_pending_claim_len(xhc_trb_t *trb, unsigned len) -
xhc_pending_claim(function)drivers/xhci.c:586static int xhc_pending_claim(xhc_trb_t *trb) -
xhc_pending_drop(function)drivers/xhci.c:590static void xhc_pending_drop(int token) -
xhc_poll(function)drivers/xhci.c:595int xhc_poll(void) -
xhc_wait(function)drivers/xhci.c:638static int xhc_wait(int token, unsigned budget_ms)-- Docstring: Wait for a pending transfer to complete. -
xhc_status(function)drivers/xhci.c:654static int xhc_status(int token)-- if (token < 1 || token > XHC_MAX_PENDING) return 0; end = xhc_now_ms() + budget_ms; for (;;) { xhc_poll(); if... -
xhc_cmd_run_ep(function)drivers/xhci.c:663static int xhc_cmd_run_ep(unsigned type, unsigned long long param, un...-- Docstring: Submit one command TRB and wait for its completion, by TRB pointer so a completion for anything else is... -
xhc_cmd_run(function)drivers/xhci.c:709static int xhc_cmd_run(unsigned type, unsigned long long param, unsigned slot, ... -
xhc_ep_command(function)drivers/xhci.c:719static int xhc_ep_command(unsigned type, int slot, int dci)-- Docstring: Stop, reset and re-point one endpoint's transfer ring. -
xhc_reset_endpoint(function)drivers/xhci.c:723int xhc_reset_endpoint(int index, int ep_index) -
xhc_port_count(function)drivers/xhci.c:749int xhc_port_count(void) -
xhc_port_state(function)drivers/xhci.c:753int xhc_port_state(int port, xhc_port_t *out) -
xhc_port_reset(function)drivers/xhci.c:776int xhc_port_reset(int port)-- Docstring: Ask a port to reset, and wait for it to settle. -
xhc_device_count(function)drivers/xhci.c:806int xhc_device_count(void) -
xhc_device_info(function)drivers/xhci.c:814int xhc_device_info(int index, xhc_dev_t *out) -
xhc_dev_alloc(function)drivers/xhci.c:833static int xhc_dev_alloc(void)-- out->address = 0; } if (index < 0 || index >= XHC_MAX_DEVICES) return 0; if (!xhc_devs[index].used) return 0; if... -
xhc_dev_release(function)drivers/xhci.c:843static void xhc_dev_release(int index)-- Docstring: Release one device record after a failed enumeration: its EP0 ring and cached descriptor go back, so a... -
xhc_open_interface(function)drivers/xhci.c:863int xhc_open_interface(int index, unsigned cls, unsigned sub, unsigned proto, ... -
xhc_ring_wrap(function)drivers/xhci.c:936static void xhc_ring_wrap(int index, xhc_ring_t *ring, int ep)-- Docstring: Wrap a transfer ring instead of refusing after a thousand transfers: the producer goes back to slot zero... -
xhc_ring_maybe_arm(function)drivers/xhci.c:949static void xhc_ring_maybe_arm(xhc_ring_t *ring) -
xhc_ep0_slot(function)drivers/xhci.c:959static xhc_trb_t *xhc_ep0_slot(int index)-- Docstring: Post one TRB on a device EP0 transfer ring, wrapping instead of refusing. -
xhc_ep0_bump(function)drivers/xhci.c:971static void xhc_ep0_bump(int index) -
xhc_control_stage(function)drivers/xhci.c:979static int xhc_control_stage(int index, const unsigned char setup[8], ...-- Docstring: One control transfer on the device EP0 transfer ring: a setup TRB with IDT, an optional data TRB and a... -
xhc_control(function)drivers/xhci.c:1048int xhc_control(int index, const unsigned char setup[8], void *data, unsigned len...-- Docstring: USB is lossy and emulated controllers occasionally drop a completion, so a control transfer retries its... -
xhc_setup_nodata(function)drivers/xhci.c:1069static void xhc_setup_nodata(unsigned char *setup, unsigned char type, ...-- Docstring: Pack a standard request with no data stage: bmRequestType, * bRequest, wValue, wIndex. -
xhc_setup_data(function)drivers/xhci.c:1082static void xhc_setup_data(unsigned char *setup, unsigned char type, u...-- Docstring: Pack a standard request with a data stage of a known length: * same as above with wLength filled in. -
xhc_dci(function)drivers/xhci.c:1093static int xhc_dci(int ep_addr)-- Docstring: Endpoint context index for a USB endpoint address: DCI is one * plus twice the endpoint number plus the... -
xhc_configure_endpoint(function)drivers/xhci.c:1100int xhc_configure_endpoint(int index, int ep_index, int ep_addr, int ep_type, ... -
xhc_ep_post(function)drivers/xhci.c:1162static int xhc_ep_post(int index, int ep_index, void *buf, unsigned len)-- Docstring: Post one Normal TRB with IOC on an endpoint's ring and ring its * slot doorbell. -
xhc_got(function)drivers/xhci.c:1197static int xhc_got(int token)-- len & 0x1FFFFu, (unsigned)(XHC_TRB_MAKE_TYPE(XHC_TRB_TYPE_NORMAL) | ring->gen | XHC_TRB_IOC)); xhc_flush(trb... -
xhc_transfer(function)drivers/xhci.c:1202int xhc_transfer(int index, int ep_index, void *buf, unsigned len, int *got) -
xhc_transfer_async(function)drivers/xhci.c:1222int xhc_transfer_async(int index, int ep_index, void *buf, unsigned len)-- Docstring: Post one endpoint transfer without waiting: the completion arrives on the event ring and is collected by... -
xhc_poll_token_limit(function)drivers/xhci.c:1233int xhc_poll_token_limit(int token, unsigned budget_ms)-- Docstring: Non-blocking completion check for xhc_transfer_async. -
xhc_poll_token(function)drivers/xhci.c:1252int xhc_poll_token(int token) -
xhc_address(function)drivers/xhci.c:1261static int xhc_address(int index, int slot, int port, int speed)-- Docstring: Enable a slot and build its device context with a working control endpoint on its own transfer ring. -
xhc_get_device_desc(function)drivers/xhci.c:1316static int xhc_get_device_desc(int index, unsigned char *buf)-- Docstring: Fetch the device descriptor. wValue packs the descriptor type * above the index: a device descriptor is... -
xhc_get_config_desc(function)drivers/xhci.c:1333static int xhc_get_config_desc(int index, unsigned char *buf, unsigned *len)-- Docstring: Fetch the configuration descriptor. -
xhc_enumerate(function)drivers/xhci.c:1358int xhc_enumerate(int port) -
xhc_enumerate_all(function)drivers/xhci.c:1444int xhc_enumerate_all(void) -
xhc_outl(function)drivers/xhci.c:1454static void xhc_outl(unsigned short port, unsigned val) -
xhc_inl(function)drivers/xhci.c:1458static unsigned xhc_inl(unsigned short port) -
xhc_free_all(function)drivers/xhci.c:1464static void xhc_free_all(void) -
xhc_alloc_all(function)drivers/xhci.c:1494static int xhc_alloc_all(unsigned max_slots)-- Docstring: Allocate the command ring, the event ring, the ERST, the DCBAA and the context array. -
xhc_start(function)drivers/xhci.c:1593static int xhc_start(unsigned contexts)-- Docstring: Reset the controller, program its ring state, and bring it to run. -
xhc_init(function)drivers/xhci.c:1658int xhc_init(void) -
xhc_counters(function)drivers/xhci.c:1790void xhc_counters(xhc_counters_t *out) -
xhc_probe_note(function)drivers/xhci.c:1794const char *xhc_probe_note(void) -
xhc_info(function)drivers/xhci.c:1798int xhc_info(unsigned *version, unsigned *slots, unsigned *ports, unsigned *caplength)
Depends on: headers/block.h, headers/ext4.h, headers/fsimg.h, headers/minifs.h
Imported by: tests/test_ext4.c
-
ext_ld16(function)fs/ext4.c:32static unsigned ext_ld16(const unsigned char *p) -
ext_ld32(function)fs/ext4.c:36static unsigned long ext_ld32(const unsigned char *p) -
ext_parse_sb(function)fs/ext4.c:55static int ext_parse_sb(const fsimg_t *img, ext_geo_t *g) -
ext_inode_off(function)fs/ext4.c:92static int ext_inode_off(const fsimg_t *img, const ext_geo_t *g, unsigne...-- Byte offset of an inode. -
ext_read_inode(function)fs/ext4.c:122static int ext_read_inode(const fsimg_t *img, const ext_geo_t *g, unsig... -
ext_map_down(function)fs/ext4.c:168static int ext_map_down(const fsimg_t *img, const ext_geo_t *g, const unsigned char *root, unsigned nent, unsigned... -
ext_map(function)fs/ext4.c:171static int ext_map(const fsimg_t *img, const ext_geo_t *g, const unsigned char... -
ext_map_leaf(function)fs/ext4.c:211static int ext_map_leaf(const fsimg_t *img, const ext_geo_t *g, const uns...-- } r = ext_map_down(img, g, root, nent, lblk, node); if (r <= 0) break; for (d = 0; d < 60 && d < g->bs; d++) root[d]... -
only(function)fs/ext4.c:352* listings only ('.' skipped, '..' refused). "" or "/" is root (2). */ static int ext_file_block(const fsimg_t *img... -
ext_resolve(function)fs/ext4.c:356static int ext_resolve(const fsimg_t *img, const ext_geo_t *g, const char ... -
ext_file_block(function)fs/ext4.c:464static int ext_file_block(const fsimg_t *img, const ext_geo_t *g, const...-- Read one logical file block of an open inode into blk (block * sized). -
ext4_list(function)fs/ext4.c:485int ext4_list(const char *imgpath, const char *dirpath, char names[][EXT4_NAME_MAX ... -
ext_split(function)fs/ext4.c:580static int ext_split(const char *path, char *img, char *extp)-- Split "imgpath:extpath" (first ':' wins; image names never carry * one). ext paths run deeper than FAT, hence the... -
ext4_vfs_open(function)fs/ext4.c:585int ext4_vfs_open(const char *path, int mode, void **handle) -
ext4_vfs_read(function)fs/ext4.c:626int ext4_vfs_read(void *handle, void *buf, unsigned long pos, unsigned long len) -
ext4_vfs_write(function)fs/ext4.c:666int ext4_vfs_write(void *handle, const void *buf, unsigned long pos, unsigned ... -
ext4_vfs_close(function)fs/ext4.c:675int ext4_vfs_close(void *handle) -
ext4_vfs_fstat(function)fs/ext4.c:680int ext4_vfs_fstat(void *handle, unsigned long *size_out) -
ext4_vfs_truncate(function)fs/ext4.c:687int ext4_vfs_truncate(void *handle, unsigned long size) -
ext4_vfs_readdir(function)fs/ext4.c:696static int ext4_vfs_readdir(const char *path, vfs_dirent_t *ents, int cap)-- Docstring: List one ext4 directory through the VFS verb. -
ext_mbr_entry(function)fs/ext4.c:745static int ext_mbr_entry(const unsigned char *mbr, int idx, unsigned lon...-- First Linux-native partition: MBR 0x83 first (proven by a superblock read), then a magic scan for superfloppy... -
ext_scan_dev(function)fs/ext4.c:770static int ext_scan_dev(unsigned long total_sec, unsigned long *base_out) -
ext_dev_base(function)fs/ext4.c:791long ext_dev_base(void)
Depends on: headers/block.h, headers/fat32.h, headers/fsimg.h, headers/minifs.h
Imported by: tests/test_fat32.c
-
fat_ld16(function)fs/fat32.c:18static unsigned fat_ld16(const unsigned char *p) -
fat_ld32(function)fs/fat32.c:22static unsigned fat_ld32(const unsigned char *p) -
fat_img_open(function)fs/fat32.c:29static int fat_img_open(const char *resolved, fsimg_t *img)-- Open by resolved path: files first (a real file named hd0 keeps * working), the hd0 disk device only as a fallback. -
fat_parse_bpb(function)fs/fat32.c:62static int fat_parse_bpb(const fsimg_t *img, fat_geo_t *g) -
fat_mbr_is_fat(function)fs/fat32.c:120static int fat_mbr_is_fat(unsigned char t) -
fat_dev_base(function)fs/fat32.c:192long fat_dev_base(void) -
fat_clus_ok(function)fs/fat32.c:224static int fat_clus_ok(const fat_geo_t *g, unsigned c) -
fat_entry(function)fs/fat32.c:231static int fat_entry(const fsimg_t *img, const fat_geo_t *g, unsigned clus, ...-- One FAT32 entry (low 28 bits). -
fat_eoc(function)fs/fat32.c:248static int fat_eoc(unsigned v) -
fat_badch(function)fs/fat32.c:262static int fat_badch(char c)-- FAT 8.3 forbids these in a query word (plus '/' and extra dots, handled by the splitter). -
fat_qword(function)fs/fat32.c:274static int fat_qword(const char *q, unsigned qlen, char name8[8], char ext3[3])-- Uppercase one 8.3 query word ("name.ext", "name", never ".ext") into * padded 8+3 for raw comparison. -
fat_match(function)fs/fat32.c:305static int fat_match(const unsigned char *de, const char name8[8], const cha...-- Match one 32-byte directory entry against padded 8+3. -
fat_resolve(function)fs/fat32.c:321static int fat_resolve(const fsimg_t *img, const fat_geo_t *g, const char ...-- Resolve a FAT path to its first cluster, size and subdir bit. -
fat32_list(function)fs/fat32.c:421int fat32_list(const char *imgpath, const char *dirpath, char names[][FAT32_NAME_M... -
fat32_vfs_open(function)fs/fat32.c:496int fat32_vfs_open(const char *path, int mode, void **handle) -
fat_views(function)fs/fat32.c:537static void fat_views(const fat32_handle_t *h, fsimg_t *img, fat_geo_t *g)-- h->sec_per_clus = g.sec_per_clus; h->rsvd_sec = g.rsvd_sec; h->num_fats = g.num_fats; h->fatsz_sec = g.fatsz_sec... -
fat_seek(function)fs/fat32.c:556static int fat_seek(const fat32_handle_t *h, unsigned long pos, unsigned *clu...-- Advance from the file's first cluster to the one holdingpos, * step-bounded by the cluster count so a cyclic FAT... -
fat32_vfs_read(function)fs/fat32.c:581int fat32_vfs_read(void *handle, void *buf, unsigned long pos, unsigned long len) -
fat32_vfs_write(function)fs/fat32.c:621int fat32_vfs_write(void *handle, const void *buf, unsigned long pos, unsigne... -
fat32_vfs_close(function)fs/fat32.c:630int fat32_vfs_close(void *handle) -
fat32_vfs_fstat(function)fs/fat32.c:635int fat32_vfs_fstat(void *handle, unsigned long *size_out) -
fat32_vfs_truncate(function)fs/fat32.c:642int fat32_vfs_truncate(void *handle, unsigned long size)
Depends on: headers/block.h, headers/fsimg.h, headers/minifs.h
Imported by: tests/test_ext4.c, tests/test_fat32.c
-
fsimg_open_file(function)fs/fsimg.c:15int fsimg_open_file(const char *resolved, fsimg_t *img) -
fsimg_open_dev(function)fs/fsimg.c:51int fsimg_open_dev(unsigned long base_lba, unsigned long nsec, fsimg_t *img) -
fsimg_dev_read(function)fs/fsimg.c:72static int fsimg_dev_read(const fsimg_t *img, unsigned long off, void *...-- Docstring: Sector reads off the active backend through the block layer, so a device image on USB reads from USB. -
fsimg_read(function)fs/fsimg.c:96int fsimg_read(const fsimg_t *img, unsigned long off, void *buf, unsigned long len) -
fsimg_split(function)fs/fsimg.c:112int fsimg_split(const char *path, char *left, unsigned llen, char *right, unsigne...
Depends on: headers/minifs.h
-
kfile_stdin(function)fs/kfile.c:15KFILE *kfile_stdin(void) -
kfile_stdout(function)fs/kfile.c:16KFILE *kfile_stdout(void) -
kfile_stderr(function)fs/kfile.c:17KFILE *kfile_stderr(void) -
recovery(function)fs/kfile.c:28`* halts the machine with no recovery (the DOOM ABI-drift black screen),
- so every public KFILE ...`
-
kfile_corrupt(function)fs/kfile.c:33static int kfile_corrupt(const KFILE *f) -
fs_take(function)fs/kfile.c:66static inline void fs_take(irqflags_t *flags) -
fs_drop(function)fs/kfile.c:70static inline void fs_drop(irqflags_t flags) -
kpipe_pair(function)fs/kfile.c:78int kpipe_pair(KFILE **rend_out, KFILE **wend_out)-- Docstring: Create a connected pipe pair sharing one ring. -
kpipe_state(function)fs/kfile.c:130int kpipe_state(KFILE *f, unsigned *avail, unsigned *space, int *wopen, int *ropen)-- open (retry later, EAGAIN-style), false on EOF, on the write end, or on any non-pipe file. -
kevent_create(function)fs/kfile.c:148KFILE *kevent_create(unsigned long long initval, int semaphore)-- Docstring: New eventfd description with counter initval. -
kevent_read(function)fs/kfile.c:163long kevent_read(KFILE *f, unsigned long long *out)-- KFILE *f; if (initval > KEVENT_MAX) return 0; f = kmalloc(sizeof(KFILE)); if (!f) return 0; kmemset(f, 0... -
kevent_readable(function)fs/kfile.c:199int kevent_readable(KFILE *f)-- irqflags_t flags; long rc = -11; if (!f || !f->is_eventfd) return -22; if (v == ~0ULL) return -22; fs_take(&flags)... -
kevent_writable(function)fs/kfile.c:204int kevent_writable(KFILE *f)-- if (v <= KEVENT_MAX - f->efd_count) { f->efd_count += v; rc = 0; } fs_drop(flags); return rc; } /** Docstring: 1... -
kpipe_is_write_end(function)fs/kfile.c:209int kpipe_is_write_end(KFILE *f)-- return rc; } /** Docstring: 1 when a read would not block. int kevent_readable(KFILE *f) { return f && f->is_eventfd... -
kpipe_grow(function)fs/kfile.c:216static int kpipe_grow(pipe_ring_t *ring)-- Docstring: Grow a pipe ring buffer, linearizing wrapped bytes first. -
kfopen_dir(function)fs/kfile.c:243KFILE *kfopen_dir(const char *resolved)-- Directory open for getdents64 (kernel/syscalls.c 217): kfopen refuses directories, so open(2) on one lands here. -
kfopen(function)fs/kfile.c:264KFILE *kfopen(const char *path, const char *mode) -
fs_rename_on_minifs(function)fs/kfile.c:361static int fs_rename_on_minifs(const char *dst)-- True whendstcan live on MiniFS: no directory part (root), or its * parent resolves there. -
directory(function)fs/kfile.c:379`* empty directory by a directory (-20/-21 for a kind mismatch, -39 for a
- non-empty directory)....`
-
kfclose(function)fs/kfile.c:432int kfclose(KFILE *f) -
kfgetc(function)fs/kfile.c:477int kfgetc(KFILE *f) -
kfgets(function)fs/kfile.c:518char *kfgets(char *buf, int size, KFILE *f) -
kfungetc(function)fs/kfile.c:532int kfungetc(int c, KFILE *f) -
kfread(function)fs/kfile.c:539unsigned long kfread(void *ptr, unsigned long size, unsigned long n, KFILE *f) -
kfwrite(function)fs/kfile.c:585unsigned long kfwrite(const void *ptr, unsigned long size, unsigned long n, KFILE *f) -
kfseek(function)fs/kfile.c:651int kfseek(KFILE *f, long offset, int whence) -
kftell(function)fs/kfile.c:672long kftell(KFILE *f) -
kfflush(function)fs/kfile.c:676int kfflush(KFILE *f) -
kfputs(function)fs/kfile.c:702int kfputs(const char *s, KFILE *f) -
kfputc(function)fs/kfile.c:708int kfputc(int c, KFILE *f) -
krewind(function)fs/kfile.c:713void krewind(KFILE *f)
Depends on: headers/block.h, headers/ide.h, headers/lz4_kernel.h, headers/minifs.h, headers/pcache.h
-
minifs_journal_touch(function)fs/minifs.c:16void minifs_journal_touch(unsigned int phys); -
blk_new(function)fs/minifs.c:22static unsigned char *blk_new(void); -
minifs_compress(function)fs/minifs.c:35unsigned int minifs_compress(const void *src, unsigned int src_len, ...-- unsigned int *phys_block); static unsigned char *blk_new(void); static void blk_free(unsigned char *b); static... -
minifs_decompress(function)fs/minifs.c:46unsigned int minifs_decompress(const void *src, unsigned int src_len, ... -
minifs_crc16(function)fs/minifs.c:57static unsigned short minifs_crc16(const void *data, unsigned int len) -
minifs_crc32(function)fs/minifs.c:69static unsigned int minifs_crc32(const void *data, unsigned int len) -
roundup4(function)fs/minifs.c:81static unsigned int roundup4(unsigned int v) -
div_round_up(function)fs/minifs.c:83static unsigned int div_round_up(unsigned int n, unsigned int d) -
returns(function)fs/minifs.c:92`* overflowed the slot and smashed returns (measured ring-0 #UD on
- lua->lua->cp). Every scratch...`
-
blk_free(function)fs/minifs.c:100static void blk_free(unsigned char *b) -
fs_write_super(function)fs/minifs.c:107static int fs_write_super(void) -
instead(function)fs/minifs.c:127`* kernel stored the same crc at offset 76 instead (byte order the old
- write path used), so a r...`
-
fs_inode_check(function)fs/minifs.c:142static int fs_inode_check(const MiniFSInode *in) -
fs_read_inode(function)fs/minifs.c:167static int fs_read_inode(unsigned int num, MiniFSInode *out) -
fs_write_inode(function)fs/minifs.c:179static int fs_write_inode(unsigned int num, const MiniFSInode *in) -
bm_test(function)fs/minifs.c:201static int bm_test(unsigned char *bm, unsigned int bit) -
bm_set(function)fs/minifs.c:205static void bm_set(unsigned char *bm, unsigned int bit) -
bm_clear(function)fs/minifs.c:209static void bm_clear(unsigned char *bm, unsigned int bit) -
minifs_alloc_block(function)fs/minifs.c:215int minifs_alloc_block(void) -
minifs_free_block(function)fs/minifs.c:232void minifs_free_block(unsigned int block) -
minifs_alloc_inode(function)fs/minifs.c:240int minifs_alloc_inode(void) -
minifs_free_inode(function)fs/minifs.c:252void minifs_free_inode(int num) -
minifs_inode_get_block(function)fs/minifs.c:260int minifs_inode_get_block(MiniFSInode *inode, unsigned int logblk, un... -
fs_inode_set_block(function)fs/minifs.c:289static int fs_inode_set_block(MiniFSInode *inode, unsigned int logblk, ... -
minifs_inode_alloc_block(function)fs/minifs.c:343int minifs_inode_alloc_block(MiniFSInode *inode, unsigned int logblk) -
fs_inode_free_all_blocks(function)fs/minifs.c:364static void fs_inode_free_all_blocks(MiniFSInode *inode) -
journal_load_super(function)fs/minifs.c:446static void journal_load_super(void) -
journal_save_super(function)fs/minifs.c:464static void journal_save_super(unsigned int state) -
journal_save_entries(function)fs/minifs.c:478static void journal_save_entries(void) -
minifs_journal_begin(function)fs/minifs.c:495void minifs_journal_begin(unsigned int txn_id) -
minifs_journal_add_block(function)fs/minifs.c:504void minifs_journal_add_block(unsigned int block)-- Deprecated alias: historically took an inode number (wrong layer). * Takes a physical block now; prefer... -
minifs_journal_commit(function)fs/minifs.c:511int minifs_journal_commit(unsigned int txn_id)-- Pre-write barrier: persist the entry array and mark the journal DIRTY before any protected data block is modified. -
minifs_journal_clear(function)fs/minifs.c:521void minifs_journal_clear(void)-- Post-write barrier: the protected writes are all on disk, so the undo * log is no longer needed. -
minifs_journal_abort(function)fs/minifs.c:531void minifs_journal_abort(void)-- Error path after the DIRTY barrier: restore every snapshotted block from the journal data area, then clear. -
blocks(function)fs/minifs.c:555* blocks (self-protection); -
first(function)fs/minifs.c:556* keep the first (oldest) snapshot. */ void minifs_journal_touch(unsigned int phys) -
minifs_journal_recover(function)fs/minifs.c:597void minifs_journal_recover(void)-- Mount-time recovery: replays the undo log left by a crash between the DIRTY barrier and the CLEAN mark. -
fs_namecmp(function)fs/minifs.c:683static int fs_namecmp(const char *a, unsigned char alen, const char *b) -
minifs_dir_lookup(function)fs/minifs.c:692int minifs_dir_lookup(int dir_ino, const char *name) -
minifs_dir_add_entry(function)fs/minifs.c:722int minifs_dir_add_entry(int dir_ino, const char *name, int child_ino, ... -
minifs_dir_remove_entry(function)fs/minifs.c:860int minifs_dir_remove_entry(int dir_ino, const char *name) -
minifs_dir_read(function)fs/minifs.c:891int minifs_dir_read(int dir_ino, int index, MiniFSDirEntry *out, char *name_out) -
minifs_resolve_path(function)fs/minifs.c:941int minifs_resolve_path(const char *path) -
minifs_create(function)fs/minifs.c:974int minifs_create(const char *path, unsigned short mode) -
minifs_mkdir(function)fs/minifs.c:1027int minifs_mkdir(const char *path, unsigned short mode) -
minifs_unlink(function)fs/minifs.c:1076int minifs_unlink(const char *path) -
minifs_split_parent(function)fs/minifs.c:1119static int minifs_split_parent(const char *path, char *parent_out, ...-- Split a resolved path into its parent directory path ("" for root) and its leaf name. -
minifs_dir_is_empty(function)fs/minifs.c:1148static int minifs_dir_is_empty(int dir_ino)-- An entry removal only clears the record in place, so a directory's size never shrinks. -
minifs_rename(function)fs/minifs.c:1175int minifs_rename(const char *oldpath, const char *newpath) -
minifs_rmdir(function)fs/minifs.c:1225int minifs_rmdir(const char *path) -
minifs_read(function)fs/minifs.c:1266int minifs_read(int inode_num, void *buf, unsigned int offset, unsigned int len) -
minifs_write(function)fs/minifs.c:1337int minifs_write(int inode_num, const void *buf, unsigned int offset, unsigned i... -
minifs_truncate(function)fs/minifs.c:1424int minifs_truncate(int inode_num, unsigned int new_size) -
minifs_stat(function)fs/minifs.c:1441int minifs_stat(int inode_num, MiniFSInode *out) -
minifs_access(function)fs/minifs.c:1445int minifs_access(const char *path) -
minifs_init(function)fs/minifs.c:1451void minifs_init(void) -
minifs_get_lba_start(function)fs/minifs.c:1459unsigned int minifs_get_lba_start(void) -
minifs_is_mounted(function)fs/minifs.c:1460int minifs_is_mounted(void) -
minifs_mount(function)fs/minifs.c:1468int minifs_mount(void)-- Boot-time exemption from the -Wframe-larger-than=2048 gate: mount and mkfs run once on deep boot stacks, never on 16... -
minifs_sync(function)fs/minifs.c:1618int minifs_sync(void) -
minifs_file_open(function)fs/minifs.c:1633MiniFSFile *minifs_file_open(int inode_num, int flags) -
minifs_file_close(function)fs/minifs.c:1647int minifs_file_close(MiniFSFile *f) -
minifs_get_total_blocks(function)fs/minifs.c:1654unsigned int minifs_get_total_blocks(void) -
minifs_usage(function)fs/minifs.c:1659void minifs_usage(unsigned int *free_b, unsigned int *total_b, unsigned int *fr...-- } int minifs_file_close(MiniFSFile *f) { if (!f) return 0; if (f->inode_cache) kfree(f->inode_cache); kfree(f)...
Depends on: headers/pcache.h
Imported by: tests/test_pcache.c
-
pcache_init(function)fs/pcache.c:42void pcache_init(void) -
pcache_lookup(function)fs/pcache.c:54int pcache_lookup(int ino, unsigned index) -
pcache_get(function)fs/pcache.c:71int pcache_get(int ino, unsigned index, int *is_new) -
pcache_publish(function)fs/pcache.c:128int pcache_publish(int ino, unsigned index, const unsigned char *data)-- Docstring: Publish a privately filled page into the cache atomically. -
pcache_put(function)fs/pcache.c:179void pcache_put(int slot) -
pcache_ref(function)fs/pcache.c:192int pcache_ref(int ino, unsigned index)-- Docstring: Take one more ref on a cached page without allocating. -
pcache_unmap(function)fs/pcache.c:216void pcache_unmap(int ino, unsigned index)-- Docstring: Drop the ref a mapping holds on one cached page. -
pcache_slot_phys(function)fs/pcache.c:222static unsigned long pcache_slot_phys(int slot)-- Docstring: Drop the ref a mapping holds on one cached page. -
match(function)fs/pcache.c:230`* a phys match (owned, ref dropped unless already zero), 0
- otherwise. */ int pcache_put_if(int...`
-
pcache_ref_if(function)fs/pcache.c:255int pcache_ref_if(int ino, unsigned index, unsigned long phys)-- Docstring: Take one more ref only when the cached page is the exact phys the caller shares. -
pcache_owns_phys(function)fs/pcache.c:277int pcache_owns_phys(unsigned long phys)-- Docstring: True when phys is a cache pool page. -
pcache_data(function)fs/pcache.c:285unsigned char *pcache_data(int slot) -
pcache_mark_dirty(function)fs/pcache.c:291void pcache_mark_dirty(int slot) -
pcache_invalidate_ino(function)fs/pcache.c:299void pcache_invalidate_ino(int ino) -
pcache_stats(function)fs/pcache.c:314void pcache_stats(unsigned long *pages_out, unsigned long *hits_out, unsigned long *miss_...
-
ramdisk_reserve(function)fs/ramdisk.c:37static int ramdisk_reserve(unsigned long want) -
ramdisk_setup_from(function)fs/ramdisk.c:55void ramdisk_setup_from(void *data, unsigned size) -
ramdisk_init(function)fs/ramdisk.c:128void ramdisk_init(void) -
ramdisk_open(function)fs/ramdisk.c:145RDFile *ramdisk_open(const char *name) -
ramdisk_read(function)fs/ramdisk.c:155int ramdisk_read(RDFile *f, void *buf, unsigned offset, unsigned len) -
ramdisk_write(function)fs/ramdisk.c:163int ramdisk_write(RDFile *f, const void *buf, unsigned offset, unsigned len) -
ramdisk_create(function)fs/ramdisk.c:171RDFile *ramdisk_create(const char *name, unsigned size) -
ramdisk_resize(function)fs/ramdisk.c:185int ramdisk_resize(RDFile *f, unsigned newsize) -
ramdisk_list(function)fs/ramdisk.c:222int ramdisk_list(RDFile **out, int max) -
ramdisk_count(function)fs/ramdisk.c:230int ramdisk_count(void) -
ramdisk_usage(function)fs/ramdisk.c:236void ramdisk_usage(unsigned *used, unsigned *cap, unsigned *max)-- int ramdisk_list(RDFile **out, int max) { if (!rd) return 0; int n = (int)rd->count < max ? -
ramdisk_file_name(function)fs/ramdisk.c:242const char *ramdisk_file_name(int idx) -
ramdisk_delete(function)fs/ramdisk.c:247int ramdisk_delete(RDFile *f) -
ramdisk_rename(function)fs/ramdisk.c:269int ramdisk_rename(const char *oldname, const char *newname)
Depends on: headers/ext4.h, headers/fat32.h, headers/minifs.h
-
vfs_init(function)fs/vfs.c:22void vfs_init(void) -
vfs_register(function)fs/vfs.c:27int vfs_register(const char *prefix, const vfs_ops_t *ops, const char *driver) -
vfs_unregister(function)fs/vfs.c:62int vfs_unregister(const char *prefix) -
vfs_open(function)fs/vfs.c:106int vfs_open(const char *path, int mode, vfs_file_t *f) -
taken(function)fs/vfs.c:160`* refcount is taken (ops tables are static, never freed), so a
- listing can never pin an unmoun...`
-
ramdisk_vfs_open(function)fs/vfs.c:212static int ramdisk_vfs_open(const char *path, int mode, void **handle) -
ramdisk_vfs_read(function)fs/vfs.c:238static int ramdisk_vfs_read(void *handle, void *buf, unsigned long pos, unsigned long len) -
ramdisk_vfs_write(function)fs/vfs.c:247static int ramdisk_vfs_write(void *handle, const void *buf, unsigned long pos, unsigned long len) -
ramdisk_vfs_close(function)fs/vfs.c:255static int ramdisk_vfs_close(void *handle) -
ramdisk_vfs_fstat(function)fs/vfs.c:261static int ramdisk_vfs_fstat(void *handle, unsigned long *size_out) -
ramdisk_vfs_truncate(function)fs/vfs.c:268static int ramdisk_vfs_truncate(void *handle, unsigned long size) -
ramdisk_vfs_readdir(function)fs/vfs.c:278static int ramdisk_vfs_readdir(const char *path, vfs_dirent_t *ents, int cap)-- Docstring: List ramdisk leaves under dir ("" or "/" is root). -
minifs_vfs_open(function)fs/vfs.c:351static int minifs_vfs_open(const char *path, int mode, void **handle) -
minifs_vfs_read(function)fs/vfs.c:379static int minifs_vfs_read(void *handle, void *buf, unsigned long pos, unsigned long len) -
minifs_vfs_write(function)fs/vfs.c:388static int minifs_vfs_write(void *handle, const void *buf, unsigned long pos, unsigned long len) -
minifs_vfs_close(function)fs/vfs.c:396static int minifs_vfs_close(void *handle) -
minifs_vfs_fstat(function)fs/vfs.c:402static int minifs_vfs_fstat(void *handle, unsigned long *size_out) -
minifs_vfs_truncate(function)fs/vfs.c:409static int minifs_vfs_truncate(void *handle, unsigned long size) -
mem_lookup(function)fs/vfs.c:470static int mem_lookup(const char *path) -
mem_open(function)fs/vfs.c:478static int mem_open(const char *path, int mode, void **handle) -
mem_slot(function)fs/vfs.c:498static int mem_slot(void *handle) -
mem_read(function)fs/vfs.c:505static int mem_read(void *handle, void *buf, unsigned long pos, unsigned long len) -
mem_write(function)fs/vfs.c:515static int mem_write(void *handle, const void *buf, unsigned long pos, unsigned long len) -
mem_close(function)fs/vfs.c:526static int mem_close(void *handle) -
mem_fstat(function)fs/vfs.c:530static int mem_fstat(void *handle, unsigned long *size_out) -
mem_truncate(function)fs/vfs.c:537static int mem_truncate(void *handle, unsigned long size) -
mem_readdir(function)fs/vfs.c:548static int mem_readdir(const char *path, vfs_dirent_t *ents, int cap)-- Docstring: List the flat mem: namespace (root only, files only). * Anything below root refuses: there are no... -
fs_resolve(function)fs/vfs.c:580int fs_resolve(const char *path, char *out, unsigned cap) -
fs_dir_exists(function)fs/vfs.c:613int fs_dir_exists(const char *dir) -
fs_is_dir(function)fs/vfs.c:638int fs_is_dir(const char *resolved) -
minifs_mkdir_p(function)fs/vfs.c:651int minifs_mkdir_p(const char *resolved) -
vfs_register_builtins(function)fs/vfs.c:674void vfs_register_builtins(void) -
open(function)fs/vfs.c:688`* open (loopback image file plus in-image path), so one registration
- serves every image. */ in...`
-
vfs_read(function)fs/vfs.c:709int vfs_read(vfs_file_t *f, void *buf, unsigned long len) -
vfs_write(function)fs/vfs.c:718int vfs_write(vfs_file_t *f, const void *buf, unsigned long len) -
vfs_close(function)fs/vfs.c:734int vfs_close(vfs_file_t *f) -
vfs_fstat(function)fs/vfs.c:752int vfs_fstat(vfs_file_t *f, unsigned long *size_out)
-
root(function)fs/zip.c:8* names are hostile data: each is normalized to forward slashes and rejected * when it escapes the extraction root... -
mz_zip_writer_mem_ptr(function)fs/zip.c:18void *mz_zip_writer_mem_ptr(mz_zip_archive *pZip); -
mz_zip_writer_mem_size(function)fs/zip.c:19size_t mz_zip_writer_mem_size(mz_zip_archive *pZip); -
zip_read_whole(function)fs/zip.c:25static unsigned char *zip_read_whole(const char *path, unsigned long *size)-- Read a whole file (ramdisk first, MiniFS fallback) into a fresh kernel buffer, growing until the read stops making... -
marker(function)fs/zip.c:50* marker (trailing '/') is preserved by the caller, not here. */ static int zip_sanitize_name(con... -
zip_build_path(function)fs/zip.c:79static int zip_build_path(const char *destdir, const char *name, char *out)-- Build the combined extraction path: destdir (already resolved, may be "") joined with the sanitized entry name. -
zip_ensure_dir_tree(function)fs/zip.c:95static int zip_ensure_dir_tree(const char *dir)-- Create every directory component ofdir(a resolved, slash-separated name with no trailing '/'), includingdir... -
zip_do_entry(function)fs/zip.c:117static int zip_do_entry(mz_zip_archive *zip, mz_uint idx, const char *destdir)-- Extract one archive entry under destdir. -
shell_cmd_unzip(function)fs/zip.c:176void shell_cmd_unzip(int argc, char **argv)-- if (!data) return 0; if (n != usize) { mz_free(data); return 0; } f = kfopen(resolved, "w"); if (!f) {... -
shell_cmd_zip(function)fs/zip.c:254void shell_cmd_zip(int argc, char **argv)-- zip <out.zip> <file...> — store each file (under its sanitized name) into * a new archive.
Imported by: kernel.c, kernel/abi.c, tests/test_abi.c
-
abi_verify(function)headers/abi.h:25int abi_verify(const char *text, long version, unsigned long checksum); -
abi_check_manifest(function)headers/abi.h:28int abi_check_manifest(void);-- ifndef ABI_HOST_TEST
Imported by: arch/x86/ap_entry.S, arch/x86/boot/stage1.S, arch/x86/boot/stage2.S, drivers/pcm2.c, headers/arch/x86/cpu_setup.h, kernel.c, kernel/exec.c, kernel/mm.c, kernel/mm/cow.c, kernel/mm/paging.c, kernel/sched.c, kernel/syscalls.c, kernel/vga_fb.c, smp.c
-
address(function)headers/arch/x86/boot/bootdefs.h:196* address (below 1 MB so a real-mode SIPI can reach it) and executed by every * AP. It reuses the page tables and...
Depends on: headers/arch/x86/boot/bootdefs.h
Imported by: kernel.c, smp.c
-
cpu_enable_caches(function)headers/arch/x86/cpu_setup.h:30static inline void cpu_enable_caches(void)-- Turn caching on (CR0.CD and CR0.NW clear), then write back and * invalidate so no line filled under the reset policy...
Imported by: drivers/kbd.c, drivers/mouse.c, drivers/nvme.c, drivers/usbhid.c, drivers/xhci.c, kernel/sched.c, kernel/syscalls.c, tests/test_hal_io.c
-
hal_mmio_write32(function)headers/arch/x86/hal_io.h:123static inline void hal_mmio_write32(volatile unsigned *addr, unsigned val)-- A device region must be mapped uncached (see kmm_map_uncached): a write-back mapping lets a register read be... -
hal_mmio_read64(function)headers/arch/x86/hal_io.h:128static inline unsigned long long hal_mmio_read64(const volatile unsigned long long *addr)-- bit is released for reuse. /** Docstring: Read a 32-bit device register. static inline unsigned... -
hal_mmio_write64(function)headers/arch/x86/hal_io.h:133static inline void hal_mmio_write64(volatile unsigned long long *addr, ...-- return addr; } /* Docstring: Write a 32-bit device register. static inline void hal_mmio_write32(volatile unsigned... -
hal_mmio_read16(function)headers/arch/x86/hal_io.h:139static inline unsigned short hal_mmio_read16(const volatile unsigned short *addr)-- } /** Docstring: Read a 64-bit device register. static inline unsigned long long hal_mmio_read64(const volatile... -
hal_mmio_write16(function)headers/arch/x86/hal_io.h:144static inline void hal_mmio_write16(volatile unsigned short *addr, ...-- } /** Docstring: Write a 64-bit device register. static inline void hal_mmio_write64(volatile unsigned long long... -
hal_mmio_read8(function)headers/arch/x86/hal_io.h:150static inline unsigned char hal_mmio_read8(const volatile unsigned char *addr)-- } /** Docstring: Read a 16-bit device register. static inline unsigned short hal_mmio_read16(const volatile unsigned... -
hal_mmio_write8(function)headers/arch/x86/hal_io.h:155static inline void hal_mmio_write8(volatile unsigned char *addr, ...-- } /** Docstring: Write a 16-bit device register. static inline void hal_mmio_write16(volatile unsigned short *addr... -
hal_mmio_wmb(function)headers/arch/x86/hal_io.h:161static inline void hal_mmio_wmb(void)-- } /** Docstring: Read an 8-bit device register. static inline unsigned char hal_mmio_read8(const volatile unsigned... -
hal_mmio_rmb(function)headers/arch/x86/hal_io.h:166static inline void hal_mmio_rmb(void)-- } /** Docstring: Write an 8-bit device register. static inline void hal_mmio_write8(volatile unsigned char *addr... -
hal_mmio_mb(function)headers/arch/x86/hal_io.h:171static inline void hal_mmio_mb(void)-- addr = val; } /** Docstring: Write memory barrier, orders prior stores before later stores. static inline void... -
hal_outb(function)headers/arch/x86/hal_io.h:189static inline void hal_outb(unsigned short port, unsigned char val)-- #ifdef HAL_IO_HOST_TEST /** Docstring: Stub log for host tests, counts port writes. extern unsigned... -
hal_inb(function)headers/arch/x86/hal_io.h:196static inline unsigned char hal_inb(unsigned short port)-- extern unsigned hal_io_stub_last_val; /** Docstring: Stub log for host tests, counts LAPIC EOI calls. extern... -
hal_outw(function)headers/arch/x86/hal_io.h:202static inline void hal_outw(unsigned short port, unsigned short val)-- /** Docstring: Stub port byte write, records port and value. static inline void hal_outb(unsigned short port... -
hal_inw(function)headers/arch/x86/hal_io.h:209static inline unsigned short hal_inw(unsigned short port)-- /** Docstring: Stub port byte read, returns the canned value. static inline unsigned char hal_inb(unsigned short... -
hal_lapic_eoi(function)headers/arch/x86/hal_io.h:215static inline void hal_lapic_eoi(void)-- /** Docstring: Stub port word write, records port and low byte. static inline void hal_outw(unsigned short port... -
hal_pic_eoi(function)headers/arch/x86/hal_io.h:220static inline void hal_pic_eoi(int irq)-- } /** Docstring: Stub port word read, returns the canned value. static inline unsigned short hal_inw(unsigned short... -
hal_outb(function)headers/arch/x86/hal_io.h:230static inline void hal_outb(unsigned short port, unsigned char val)-- hal_io_stub_lapic_eois++; } /** Docstring: Stub PIC EOI for an IRQ line. static inline void hal_pic_eoi(int irq) {... -
hal_inb(function)headers/arch/x86/hal_io.h:235static inline unsigned char hal_inb(unsigned short port)-- if (irq >= 8) { hal_outb(HAL_PIC2_CMD, HAL_PIC_EOI); } hal_outb(HAL_PIC1_CMD, HAL_PIC_EOI); } #else /** Docstring... -
hal_outw(function)headers/arch/x86/hal_io.h:242static inline void hal_outw(unsigned short port, unsigned short val)-- /** Docstring: Emit a port byte write. static inline void hal_outb(unsigned short port, unsigned char val) { asm... -
hal_inw(function)headers/arch/x86/hal_io.h:247static inline unsigned short hal_inw(unsigned short port)-- /** Docstring: Emit a port byte read. static inline unsigned char hal_inb(unsigned short port) { unsigned char r... -
hal_lapic_eoi(function)headers/arch/x86/hal_io.h:254static inline void hal_lapic_eoi(void)-- /** Docstring: Emit a port word write. static inline void hal_outw(unsigned short port, unsigned short val) {... -
hal_pic_eoi(function)headers/arch/x86/hal_io.h:259static inline void hal_pic_eoi(int irq)-- /** Docstring: Emit a port word read. static inline unsigned short hal_inw(unsigned short port) { unsigned short r...
Imported by: kernel.c, kernel/exec.c, kernel/mm/paging.c, kernel/sched.c, kernel/spawn.c, kernel/syscalls.c, smp.c
-
wrmsr(function)headers/arch/x86/msr.h:8static inline void wrmsr(unsigned msr, unsigned long val) -
rdmsr(function)headers/arch/x86/msr.h:13static inline unsigned long rdmsr(unsigned msr)
Imported by: kernel/spawn.c, tests/test_arena.c
-
kmalloc(function)headers/arena.h:3* * A bump arena serves one kmalloc (kernel) or malloc (ring-3) with pointer * bumps instead of N allocator round... -
kfree(function)headers/arena.h:25* kfree(back); -
arena_init(function)headers/arena.h:48static inline void arena_init(arena_t *a, void *block, size_t size)-- #include <stddef.h> /** Docstring: default borrow alignment when the caller passes align 0. #define... -
arena_align_up(function)headers/arena.h:62static inline size_t arena_align_up(size_t n, size_t align)-- static inline void arena_init(arena_t *a, void *block, size_t size) { if (!a) return; if (!block || size == 0) {... -
arena_bytes_for(function)headers/arena.h:74static inline size_t arena_bytes_for(size_t count, size_t elem_size)-- /** Docstring: round n up to align, 0 on overflow or non-power-of-two align. static inline size_t... -
arena_alloc(function)headers/arena.h:81static inline void *arena_alloc(arena_t *a, size_t size, size_t align)-- mask = align - 1; if (n > (size_t)-1 - mask) return 0; up = (n + mask) & ~mask; return up; } /** Docstring: overflow... -
arena_used(function)headers/arena.h:95static inline size_t arena_used(const arena_t *a)-- static inline void *arena_alloc(arena_t *a, size_t size, size_t align) { size_t off; size_t up; if (!a || !a->base... -
arena_free_bytes(function)headers/arena.h:101static inline size_t arena_free_bytes(const arena_t *a)-- if (up == 0 && off != 0) return 0; if (up > (size_t)(a->end - a->base)) return 0; if (size > (size_t)(a->end... -
arena_reset(function)headers/arena.h:107static inline void arena_reset(arena_t *a)-- /** Docstring: bytes borrowed so far, 0 for a null or empty arena. static inline size_t arena_used(const arena_t *a)... -
arena_checkpoint(function)headers/arena.h:113static inline size_t arena_checkpoint(const arena_t *a)-- /** Docstring: bytes still borrowable, 0 for a null or empty arena. static inline size_t arena_free_bytes(const... -
arena_rewind(function)headers/arena.h:119static inline int arena_rewind(arena_t *a, size_t checkpoint)-- /** Docstring: rewind the scope to empty without releasing the backing block. static inline void arena_reset(arena_t... -
arena_contains(function)headers/arena.h:128static inline int arena_contains(const arena_t *a, const void *ptr)-- if (!a || !a->base) return 0; return (size_t)(a->cur - a->base); } /** Docstring: rewind to a checkpoint, -1 when...
Imported by: progs/pokemon/platform_minios.c
-
audio_init(function)headers/audio.h:21int audio_init(void);-- PC speaker (square wave, syscalls 209/210/214) - Sound Blaster 16 (8-bit mono PCM DMA, syscalls 221/222/224) - SB16... -
audio_tone(function)headers/audio.h:24void audio_tone(unsigned freq);-- Ring-3 programs use these wrappers instead of calling raw syscalls. -
audio_pcm_open(function)headers/audio.h:27int audio_pcm_open(unsigned rate, unsigned channels, unsigned format);-- #define AUDIO_RATE_DEFAULT 22050 #define AUDIO_CHANNELS_MONO 1 #define AUDIO_FORMAT_U8 0 #define... -
audio_pcm_submit(function)headers/audio.h:28int audio_pcm_submit(const void *buf, unsigned len); -
audio_pcm_pump(function)headers/audio.h:29void audio_pcm_pump(void); -
audio_pcm_close(function)headers/audio.h:30void audio_pcm_close(void); -
audio_set_volume(function)headers/audio.h:33void audio_set_volume(unsigned volume);-- /* Initialize the audio subsystem. -
audio_get_volume(function)headers/audio.h:34unsigned audio_get_volume(void); -
audio_sb16_present(function)headers/audio.h:37int audio_sb16_present(void);-- /* Tone mode: play a square wave atfreqHz. -
audio_stream_open(function)headers/audio.h:40int audio_stream_open(void);-- /* PCM streaming mode (SB16). int audio_pcm_open(unsigned rate, unsigned channels, unsigned format); int... -
audio_stream_close(function)headers/audio.h:41void audio_stream_close(int id); -
audio_stream_submit(function)headers/audio.h:42int audio_stream_submit(int id, const void *buf, unsigned len); -
audio_stream_volume(function)headers/audio.h:43void audio_stream_volume(int id, unsigned char vol);
Imported by: kernel/batch.c, kernel/syscalls.c, tests/test_batch.c
-
batch_exec(function)headers/batch.h:62long batch_exec(const batch_op_t *ops, long *results, int count, int *completed, batch_handler_t dispatch);
Imported by: drivers/block.c, fs/ext4.c, fs/fat32.c, fs/fsimg.c, fs/minifs.c, kernel.c, kernel/syscalls.c
-
block_init(function)headers/block.h:12void block_init(void);-- Block device abstraction for MiniFS. * Maps 4096-byte logical blocks to 512-byte IDE sectors. #define BLOCK_SIZE... -
block_set_base(function)headers/block.h:15void block_set_base(unsigned int lba_base);-- Block device abstraction for MiniFS. * Maps 4096-byte logical blocks to 512-byte IDE sectors. #define BLOCK_SIZE... -
block_read(function)headers/block.h:18int block_read(unsigned int block_num, void *buf);-- Block device abstraction for MiniFS. * Maps 4096-byte logical blocks to 512-byte IDE sectors. #define BLOCK_SIZE... -
block_write(function)headers/block.h:19int block_write(unsigned int block_num, const void *buf); -
block_read_multi(function)headers/block.h:23int block_read_multi(unsigned int block_num, unsigned int count, void *buf);-- Read/write multiple contiguous blocks. * Returns 0 on success. -
block_write_multi(function)headers/block.h:24int block_write_multi(unsigned int block_num, unsigned int count, const void *buf); -
block_flush(function)headers/block.h:27void block_flush(void);-- Read/write multiple contiguous blocks. * Returns 0 on success. int block_read_multi(unsigned int block_num, unsigned... -
block_total(function)headers/block.h:30unsigned int block_total(void);-- Read/write multiple contiguous blocks. * Returns 0 on success. int block_read_multi(unsigned int block_num, unsigned... -
block_read_sectors(function)headers/block.h:37int block_read_sectors(unsigned lba, unsigned count, void *buf);-- Docstring: Backend-aware sector I/O on absolute LBAs, bypassing the block cache and the MiniFS base offset. -
block_disk_sectors(function)headers/block.h:40unsigned long block_disk_sectors(void);-- Docstring: Backend-aware sector I/O on absolute LBAs, bypassing the block cache and the MiniFS base offset.
Imported by: kernel/vga_fb.c
-
desktop_shortcuts_load(function)headers/desktop_shortcuts.h:82void desktop_shortcuts_load(void);-- Load shortcuts from etc/shortcuts, decode icons, compute layout. * Called once from vga_fb_draw_desktop on first draw. -
desktop_shortcuts_draw(function)headers/desktop_shortcuts.h:85void desktop_shortcuts_draw(void);-- Load shortcuts from etc/shortcuts, decode icons, compute layout. * Called once from vga_fb_draw_desktop on first... -
desktop_shortcuts_hit_test(function)headers/desktop_shortcuts.h:89const char *desktop_shortcuts_hit_test(int mx, int my);-- Handle a left-click at (mx, my).
Next: API_p3.md
Generated offline by readmenator from commit cd87980b5eb5. Edits here are overwritten by readmenator . --rebuild.
Start
Wiki
- community_0_headers_kernel
- community_10_orphans
- community_1_progs_doomgeneric_d_englsh
- community_2_progs_src
- community_3_progs_doomgeneric_p_spec
- community_4_tools_tls_crypto
- community_5_headers_vga_fb
- community_6_progs_doomgeneric_net_defs
- community_7_headers_batch
- community_8_headers_tick
- community_9_tools_doom_pwad
- concepts
- queries
- REPORT
Agent Docs
- API
- API_p10
- API_p11
- API_p12
- API_p13
- API_p14
- API_p15
- API_p16
- API_p17
- API_p18
- API_p19
- API_p2
- API_p20
- API_p21
- API_p3
- API_p4
- API_p5
- API_p6
- API_p7
- API_p8
- API_p9
- ARCHITECTURE
- ARCHITECTURE_p2
- ARCHITECTURE_p3
- ARCHITECTURE_p4
- CONCEPTS
- GOTCHAS
- INDEX
- INDEX_p2
- KB_asm
- KB_boot
- KB_doomgeneric
- KB_doomgeneric_p10
- KB_doomgeneric_p11
- KB_doomgeneric_p12
- KB_doomgeneric_p2
- KB_doomgeneric_p3
- KB_doomgeneric_p4
- KB_doomgeneric_p5
- KB_doomgeneric_p6
- KB_doomgeneric_p7
- KB_doomgeneric_p8
- KB_doomgeneric_p9
- KB_drivers
- KB_drivers_p2
- KB_file
- KB_freedomui
- KB_fs
- KB_headers
- KB_headers_arch_x86
- KB_headers_drivers
- KB_headers_kernel
- KB_headers_p2
- KB_headers_p3
- KB_headers_p4
- KB_headers_p5
- KB_headers_p6
- KB_kernel
- KB_kernel_p2
- KB_kernel_p3
- KB_kernel_p4
- KB_lib
- KB_lisp
- KB_lua
- KB_mcp
- KB_minios
- KB_misc
- KB_misc_p2
- KB_misc_p3
- KB_mm
- KB_net
- KB_nuklear
- KB_pokemon
- KB_progs
- KB_quake2generic
- KB_root
- KB_src
- KB_src_p2
- KB_src_p3
- KB_tests
- KB_tests_p2
- KB_tls_u
- KB_tools
- KB_tools_p2
- KB_wl
- KB_x86
- MEMORY
- SECURITY
- SYMBOLS
- SYMBOLS_p10
- SYMBOLS_p11
- SYMBOLS_p12
- SYMBOLS_p13
- SYMBOLS_p14
- SYMBOLS_p15
- SYMBOLS_p16
- SYMBOLS_p17
- SYMBOLS_p18
- SYMBOLS_p19
- SYMBOLS_p2
- SYMBOLS_p20
- SYMBOLS_p21
- SYMBOLS_p22
- SYMBOLS_p23
- SYMBOLS_p24
- SYMBOLS_p25
- SYMBOLS_p26
- SYMBOLS_p27
- SYMBOLS_p3
- SYMBOLS_p4
- SYMBOLS_p5
- SYMBOLS_p6
- SYMBOLS_p7
- SYMBOLS_p8
- SYMBOLS_p9
Recipes