Next:
15.1 Introduction
Up:
Function Libraries
Previous:
14.9.2 sigcontext_dump: dump machine
15 Kernel Support Library:
liboskit_kern.a
15.1 Introduction
15.1.1 Machine-dependence of code and interfaces
15.1.2 Generic versus Base Environment code
15.1.3 Road Map
15.2 Machine-independent Facilities
15.2.1
page.h
: Page size definitions
15.2.2
spin_lock.h
: Spin locks
15.2.3
queue.h
: Generic queues
15.2.4
debug.h
: debugging support facilities
15.2.5
base_critical
: simple critical section support
(X86) Generic Low-level Definitions
15.3.1
asm.h
: assembly language support macros
15.3.2
eflags.h
: Processor flags register definitions
15.3.3
proc_reg.h
: Processor register definitions and accessor functions
15.3.4
debug_reg.h
: Debug register definitions and accessor functions
15.3.5
fp_reg.h
: Floating point register definitions and accessor functions
15.3.6
far_ptr.h
: Far (segment:offset) pointers
15.3.7
pio.h
: Programmed I/O functions
15.3.8
seg.h
: Segment descriptor data structure definitions and constants
15.3.9
gate_init.h
: Gate descriptor initialization support
15.3.10
trap.h
: Processor trap vectors
15.3.11
paging.h
: Page translation data structures and constants
15.3.12
tss.h
: Processor task save state structure definition
(X86 PC) Generic Low-level Definitions
15.4.1
irq_list.h
: Standard hardware interrupt assignments
15.4.2
pic.h
: Programmable Interrupt Controller definitions
15.4.3
keyboard.h
: PC keyboard definitions
15.4.4
rtc.h
: NVRAM Register locations
(X86) Processor Identification and Management
15.5.1
cpu_info
: CPU identification data structure
15.5.2
cpuid
: identify the current CPU
15.5.3
cpu_info_format
: output a cpu_info structure in ASCII form
15.5.4
cpu_info_min
: return the minimum feature set of two CPU information structures
15.5.5
cpu_info_dump
: pretty-print a CPU information structure to the console
15.5.6
i16_enter_pmode
: enter protected mode
15.5.7
i16_leave_pmode
: leave protected mode
15.5.8
paging_enable
: enable page translation
15.5.9
paging_disable
: disable page translation
15.5.10
gate_init
: install gate descriptors
(X86) Base Environment
15.6.1 Memory Model
15.6.2
base_vm.h
: definitions for the base virtual memory environment
15.6.3
base_cpu_setup
: initialize and activate the base CPU environment
15.6.4
base_cpu_init
: initialize the base environment data structures
15.6.5
base_cpu_load
: activate the base processor execution environment
15.6.6
base_cpuid
: global variable describing the processor
15.6.7
base_stack.h
: default kernel stack
(X86) Base Environment: Segmentation Support
15.7.1
base_gdt
: default global descriptor table for the base environment
15.7.2
base_gdt_init
: initialize the base GDT to default values
15.7.3
base_gdt_load
: load the base GDT into the CPU
15.7.4
base_idt
: default interrupt descriptor table
15.7.5
base_idt_load
: load the base IDT into the current processor
15.7.6
base_tss
: default task state segment
15.7.7
base_tss_init
: initialize the base task state segment
15.7.8
base_tss_load
: load the base TSS into the current processor
(X86) Base Environment: Trap Handling
15.8.1
trap_state
: saved state format used by the default trap handler
15.8.2
base_trap_init
: initialize the processor trap vectors in the base IDT
15.8.3
base_trap_inittab
: initialization table for the default trap entrypoints
15.8.4
base_trap_handlers
: Array of handler routines for hardware traps
15.8.5
base_trap_default_handler
: default trap handler for unexpected traps
15.8.6
trap_dump
: dump a saved trap state structure
15.8.7
trap_dump_panic
: dump a saved trap state structure
(X86) Base Environment: Page Translation
15.9.1
base_paging_init
: create minimal kernel page tables and enable paging
15.9.2
base_pdir_pa
: initial kernel page directory
15.9.3
pdir_find_pde
: find an entry in a page directory given a linear address
15.9.4
ptab_find_pte
: find an entry in a page table given a linear address
15.9.5
pdir_find_pte
: look up a page table entry from a page directory
15.9.6
pdir_get_pte
: retrieve the contents of a page table entry
15.9.7
ptab_alloc
: allocate a page table page and clear it to zero
15.9.8
ptab_free
: free a page table allocated using ptab_alloc
15.9.9
pdir_map_page
: map a 4KB page into a linear address space
15.9.10
pdir_unmap_page
: unmap a single 4KB page mapping
15.9.11
pdir_map_range
: map a contiguous range of physical addresses
15.9.12
pdir_prot_range
: change the permissions on a mapped memory range
15.9.13
pdir_unmap_range
: remove a mapped range of linear addresses
15.9.14
pdir_clean_range
: free unused page table pages in a page directory
15.9.15
pdir_dump
: dump the contents of a page directory and all its page tables
15.9.16
ptab_dump
: dump the contents of a page table
(X86) Base Environment: Protected-mode entry and exit
(X86 PC) Base Environment: Physical Memory Management
15.11.1
phys_lmm.h
: Physical memory management for PCs
15.11.2
phys_mem_max
: Highest physical memory address
15.11.3
phys_lmm_init
: Initialize kernel physical memory LMM
15.11.4
phys_lmm_add
: Add memory to the kernel physical memory LMM
(X86 PC) Base Environment: Interrupt Support
15.12.1
base_irq.h
: Hardware interrupt definitions for standard PCs
15.12.2
base_irq_handlers
: Array of handler routines for hardware interrupts
15.12.3
base_irq_init
: Initialize hardware interrupts
15.12.4
base_irq_inittab
: initialization table for default interrupt entrypoints
15.12.5
base_irq_default_handler
: default IRQ handler for unexpected interrupts
15.12.6
base_irq_nest
: interrupt nesting counter and software interrupt flag
15.12.7
base_irq_softint_request
: request a software interrupt
15.12.8
base_irq_softint_handler
: Pointer to handler for software interrupts
(X86 PC) Base Environment: Console Support
15.13.1
base_console.h
: definitions for base console support
15.13.2
base_console_init
: Initialize the base console
15.13.3
base_cooked_termios
: Default
termios
setting for cooked-mode console
15.13.4
base_raw_termios
: Default
termios
setting for raw-mode console
15.13.5
direct_cons_getchar
: wait for and read a character from the keyboard
15.13.6
direct_cons_putchar
: write a character to the video console
15.13.7
direct_cons_trygetchar
: read an available character from the keyboard
15.13.8
com_cons_init
: initialize a serial port
15.13.9
com_cons_getchar
: wait for and read a character from a serial port
15.13.10
com_cons_putchar
: write a character to a serial port
15.13.11
com_cons_flush
: delay until all output is flushed on a serial line
15.13.12
com_cons_enable_receive_interrupt
: enable receive interrupts on a serial port
(X86 PC) MultiBoot Startup
15.14.1 Startup code organization
15.14.2 Startup sequence
15.14.3 Memory model
15.14.4 Command-line arguments
15.14.5 Linking MultiBoot kernels
15.14.6
multiboot.h
: Definitions of MultiBoot structures and constants
15.14.7
boot_info
: MultiBoot information structure
15.14.8
multiboot_main
: general MultiBoot initialization
15.14.9
base_multiboot_init_mem
: physical memory initialization
15.14.10
base_multiboot_init_cmdline
: command-line preprocessing
15.14.11
base_multiboot_find
: find a MultiBoot boot module by name
15.14.12 Multiboot Specification
(X86 PC) Raw BIOS Startup
(X86 PC) DOS Startup
15.17 Remote Kernel Debugging with GDB
15.17.1 Organization of remote GDB support code
15.17.2 Using the remote debugging code
15.17.3 Debugging address spaces other than the kernel's
15.17.4
gdb_state
: processor register state frame used by GDB
15.17.5
gdb_trap
: default trap handler for remote GDB debugging
15.17.6
gdb_copyin
: safely read data from the subject's address space
15.17.7
gdb_copyout
: safely write data into the subject's address space
15.17.8
gdb_trap_recover
: recovery pointer for safe memory transfer routines
15.17.9
gdb_signal
: vector to GDB trap/signal handler routine
15.17.10
gdb_set_trace_flag
: enable or disable single-stepping in a state frame
15.17.11
gdb_breakpoint
: macro to generate a manual instruction breakpoint
15.18 Serial-line Remote Debugging with GDB
15.18.1 Redirecting console output to the remote debugger
15.18.2
gdb_serial_signal
: primary event handler in the GDB stub
15.18.3
gdb_serial_exit
: notify the remote debugger that the subject is dead
15.18.4
gdb_serial_getchar
: input a character from the remote debugger's console
15.18.5
gdb_serial_putchar
: output a character to the remote debugger's console
15.18.6
gdb_serial_puts
: output a line to the remote debugger's console
15.18.7
gdb_serial_recv
: vector to GDB serial line receive function
15.18.8
gdb_serial_send
: vector to GDB serial line send function
gdb_pc_com_init
: (X86 PC) set up serial-line debugging over a COM port
15.19 Annotations
anno.h
: (X86) generic macros to place annotations in kernel code.
15.19.2
anno_dump
: dump all annotation tables
15.19.3
anno_find_exact
: find annotation table exactly entry matching a value.
15.19.4
anno_find_lower
: find greatest annotation table entry below a value.
15.19.5
anno_init
: initialize annotation tables and sort the entries.
anno_intr
: (X86) interrupt annotations
anno_trap
: (X86) trap annotations
15.20 Boot Module Filesystem
15.20.1
start_fs_bmod
: Create the BMOD filesystem
15.21 Signals
15.21.1
oskit_sendsig_init
: initialize kernel signal delivery
15.21.2
oskit_sendsig
: deliver a signal
15.21.3
sendsig_trap_handler
: convert trap into a signal
Utah Flux Research Group