Dokumentacja przestrzeni nazw Memory::Heap


Komponenty

struct  block_used
struct  block_free
struct  block_prolog
class  heapbox

Funkcje

void init ()
 proste operacje na sieci porozumiewa sie z pci32 by znalezc karte sieciowa 3c556
int allocate_heapbox (class heapbox *hbx, const char *name)
 create a heapbox
addr_t morecore (size_t cnt)
void freecore (addr_t virt, size_t cnt)
int checkMagic (block_free *item)
int checkMagic (block_used *item)
int countMagic (block_free *item)
int countMagic (block_used *item)
int can_be_aligned (uint32 r0, size_t r_size, size_t size, uint32 allignment)
void new_bl_bl (block_free *item, block_free *new_block)
int allocate_heapbox (class heapbox *hbx, char *name)

Zmienne

uint32 dbg = 0
class heapbox heap0
Memory::zone virtual_pages
class blist_t HeapList
const uint32 heap_magic = 0xcafebabe
const uint32 HEAP_GRAN = 0x1
const uint32 HEAP_STACK_GRAN = 0x10000
const uint32 HEAP_TBLE = 0x20
const uint32 HEAP_TBLE_GRAN = 0x100
const uint32 HEAP_MIN_BLOCK = 0x10
const uint32 HEAPBOX_NAME = 0x10
const uint32 MALLOC_NOLOCKS = 1
const uint32 MALLOC_NORESCUE = 2
const uint32 MALLOC_MORECOR_NEW_NODE = 4
const uint32 PROLOG_CHECKSUM = 0xbabaf00l


Opis szczegółowy

Sterta dla kernela bardzo non-thread safe nonreentrant a uzywany w srodowisku wielowatkowym i przy przerwaniach... przerwania wiec, RTC timery nie powinny uzywac sterty. Watek z petla z kmalloc() wywraca sterte

Dokumentacja funkcji

int Memory::Heap::allocate_heapbox ( class heapbox *  hbx,
char *  name 
)

int Memory::Heap::allocate_heapbox ( class heapbox *  hbx,
const char *  name 
)

int Memory::Heap::can_be_aligned ( uint32  r0,
size_t  r_size,
size_t  size,
uint32  allignment 
)

Definicja w linii 294 pliku heap.cpp.

Odwołuje się do EINVAL i Thread::i.

Odwołania w Memory::Heap::heapbox::mallocFuncPr().

int Memory::Heap::checkMagic ( block_used *  item  ) 

Definicja w linii 230 pliku heap.cpp.

int Memory::Heap::checkMagic ( block_free *  item  ) 

Definicja w linii 223 pliku heap.cpp.

Odwołania w Memory::Heap::heapbox::mallocFuncPr().

int Memory::Heap::countMagic ( block_used *  item  ) 

Definicja w linii 244 pliku heap.cpp.

Odwołania w allocate_heapbox().

int Memory::Heap::countMagic ( block_free *  item  ) 

void Memory::Heap::freecore ( addr_t  virt,
size_t  cnt 
)

Definicja w linii 216 pliku heap.cpp.

Odwołuje się do notimpl.

void Memory::Heap::init (  ) 

proste operacje na sieci porozumiewa sie z pci32 by znalezc karte sieciowa 3c556

ustawienie timera ktory seeduje linear congruential generator DEF_SECOND/32 na sekunde i czeka na pierwsze seedowanie. w momencie gdy rtc timer pracuje, malo mozliwe jest by parzystosc rdtsc() zmieniala sie miedzy wywolaniami rdtsc_runner() w przewidywalny sposob

Definicja w linii 65 pliku heap.cpp.

Odwołuje się do align_up(), Memory::zone::alloc(), alloc4k(), allocate_heapbox(), cout(), Memory::Physical::disable_balloc(), ESUCCESS, Memory::Physical::free_pages_low, heap0, Memory::Physical::heap_area_addend, HEAP_STACK_GRAN, HeapList, Thread::i, Memory::zone::init(), blist_t::init(), Memory::Pager::kmem, mem_heap_end, mem_heap_start, PAGE_ALIGN, PAGE_SIZE, PTE_PRESENT, PTE_WRITEABLE, Memory::zone::set_length(), sysfail, virtual_pages i PRNG::x.

Odwołania w main().

addr_t Memory::Heap::morecore ( size_t  cnt  ) 

void Memory::Heap::new_bl_bl ( block_free *  item,
block_free *  new_block 
)


Dokumentacja zmiennych

Definicja w linii 51 pliku heap.cpp.

const uint32 Memory::Heap::heap_magic = 0xcafebabe

Definicja w linii 53 pliku heap.hpp.

Definicja w linii 58 pliku heap.hpp.

Odwołania w allocate_heapbox() i Memory::Heap::heapbox::mallocFuncPr().

Definicja w linii 56 pliku heap.hpp.

Odwołania w allocate_heapbox().

Definicja w linii 57 pliku heap.hpp.

Odwołania w Memory::Heap::heapbox::resize_used_blocks_table().

Definicja w linii 59 pliku heap.hpp.

Odwołania w Memory::Heap::heapbox::init().

Definicja w linii 63 pliku heap.hpp.

Odwołania w Memory::Heap::heapbox::mallocFunc().

class::Memory::zone Memory::Heap::virtual_pages


Wygenerowano Sat Jul 19 02:21:27 2008 dla panaLiX programem  doxygen 1.5.6