Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
L
 Legacy
 LengthHigh, AddressRange
 LengthLow, AddressRange
 License
 List
 list_insert_head
 list_map
 list_remove
 ListEntry
 ListHead
 loader.asm
 lock.inc
 lock_acquire
 lock_release
 logger.inc
 lzp.asm
 lzp_compress
 lzp_decompress
M
 macro.inc
 Macros
 macros and structs
 Macros and structs
 mbr.inc
 Memory Layout
 memory.inc
 memory_e820_get_mmap_entry, AddressRange
 memory_get_extended_memory_size, AddressRange
 memory_get_for_large_conf, AddressRange
 mm.old.inc
 mm_bootstrap
 mm_clone_pgdir
 mm_clone_pte
 mm_init
 mm_kmap
 mm_mmap
 mm_munmap
 mmu.inc
 Mount
 MSR bitflag
 multiboot
N
 ne2k.inc
 ntt.asm
O
 object.inc
 Optional Header
P
 Page Directory Flags
 Page Table Flags
 Page Translation
 page.inc
 PAGE_ALIGN_DOWN reg
 PAGE_ALIGN_UP reg
 pager.inc
 pBootServices
 pConOut
 PDE_P
 PDE_PS
 PDE_PWT
 PDE_U
 PDE_W
 pic.inc
 pic_eoi
 pit.inc
 pit_init
 pit_irq
 pLoadFileProtocol
 pmm.inc
 pmm.old.inc
 pmm_alloc
 pmm_alloc_page
 pmm_free
 pmm_free_page
 pmm_free_range
 pmm_init
 pmm_stats
 PMM_VIRT_TEMP
 PMMFreeRange
 pPMMFreeListHead
 private functions
 Private functions
 Propaganda
 pRuntimeServices
 PTE_A
 PTE_D
 PTE_G
 PTE_P
 PTE_PAT
 PTE_PCD
 PTE_PWT
 PTE_U
 PTE_W
 public functions
 Public functions
 pVmemFreeSegHead
Q
 queue.inc
R
 rc4
 rc4.asm
 rc4_init
 Real Mode Memory Map
 Registers
 registers.inc
S
 schedule
 Section Header
 sha256
 sha256.asm
 sha256_compute_block
 sha256_internal
 shed.inc
 space
 stBootInfo
 stpdfs.inc
 STPDFS_BADINO
 STPDFS_BSIZE
 STPDFS_CLEANLY_UNMOUNTED
 stpdfs_copy_data, DirEntry
 StpdFS_Dirent
 STPDFS_DIRENT_PER_BLOCK
 STPDFS_DIRTY
 STPDFS_ERROR
 StpdFS_FreeList
 STPDFS_INDIRECT_PER_BLOCK
 STPDFS_INO_FLAG_ALOC
 STPDFS_INO_FLAG_ENC
 STPDFS_INO_FLAG_LZP
 StpdFS_Inode
 STPDFS_INODE_PER_BLOCK
 stpdfs_load_rootdir, DirEntry
 STPDFS_NAME_MAX
 STPDFS_NDIRECT
 stpdfs_read_inode, DirEntry
 STPDFS_ROOTINO
 StpdFS_Sb
 STPDFS_SB_MAGIC
 STPDFS_SB_REV
 stpdfs_search, DirEntry
 Structs
 Stupid Filesystem
 StupidFS i-node flags
 StupidFS State
 StupidOS
 StupidOS Kernel
 svm.inc
 svm_map
 svm_unmap
.LengthHigh dd ?
High 32 Bits of Length in Bytes
.LengthLow dd ?
Low 32 Bits of Length in Bytes
StupidOS is a free (as in freedom) software and is licensed under the 3-Clause BSD License.
Doubly linked lists
list_insert_head
list_map
list_remove
lock_acquire
lock_release
Lempel-Ziv + Prediction (a fast, efficient, and memory-use conservative compression algorithm)
param_out equ [ebp+8] param_in equ [ebp+12] param_insz equ [ebp+16] local_buff equ [ebp-10] local_inpos equ [ebp-14] lzp_compress
lzp_decompress
Detect available memory
memory_get_for_large_conf
StupidOS Memory Manager
mm_bootstrap
Setup recursive paging.
mm_clone_pgdir
mm_clone_pte
mm_init
Initialize the memory manager
mm_kmap
mm_mmap
mm_munmap
multiboot
This subroutine handle multiboot structures and convert them to BootInfo
pBootServices dd ?
pConOut dd ?
Pointer to EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
Present
4MiB page
Write-Through
User
Writable
Datasheet
pic_eoi
pit_init
pit_irq
pLoadFileProtocol dd ?
Pointer to EFI_LOAD_FILE_PROTOCOL
Our PMM is just a linked list of page-aligned size blocks.
pmm_alloc
pmm_alloc_page
pmm_free
pmm_free_page
pmm_free_range
pmm_init
pmm_stats
Hold first free list entry physical address
pRuntimeServices dd ?
Accessed
Dirty
TODO
Present
TODO
Cache Disable
Write-Through
User
Writable
pVmemFreeSegHead dd 0
rc4
rc4_init
schedule
public sha256 sha256
SHA-256 cryptographic hash
sha256_compute_block
sha256_internal
stBootInfo BootInfo
BootInfo
StupidFS bad inode
StupidFS block size (512)
0
stpdfs_copy_data
StupidFS directory entry
Directory entry per block
1
1
I-node is allocated
I-node data is encrypted with XChaCha12 (see xchacha.asm)
I-node data is compressed using LZP algorithm (see lzp.asm)
StupidFS on disk i-node
I-node per block
stpdfs_load_rootdir
Max file name length (28)
Number of direct block (7)
stpdfs_read_inode
copy selected inode from file system to `inode_cache`
StupidFS root inode number
Superblock magic number, MUST BE `0x44505453` (STPD)
StupidFS revision, currently `0x1`
stpdfs_search
Simple Virtual Memory Manager mostly inspired by UVM
svm_map
svm_unmap
Close