Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uint32_t list::find_first_hole(uint32_t sz)
- {
- uint32_t i=0;
- //array Durchsuchen
- while(i < anzahl_items)
- {
- if(array[i].groesse == sz && array[i].used == 0 )
- {
- return i;
- }
- else if(array[i].groesse == 0)
- {
- uint32_t tmp = heap_placement;
- heap_placement += sz;
- while(heap_placement >= (uint32_t) (HEAP_START + 4096 + actual_size))
- {
- vmm_alloc(kernel_context, (uint32_t) ((array + 4096) + actual_size));
- actual_size += 4096;
- changes++;
- //cout << "Heap wurde vergroessert: neue groesse == " << actual_size << " byte." << endl;
- //cout << "Aenderungen: " << changes << endl;
- //cout << "Heap Error: Nicht genug Speicherplatz Verfuegbar!" << endl;
- //asm("cli; hlt");
- }
- array[i].groesse = sz;
- array[i].anfang = tmp;
- return i;
- }
- i++;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement