commented out print holes
This commit is contained in:
parent
2b0ab214a1
commit
51b1572b45
@ -45,7 +45,6 @@
|
|||||||
int nDigits = digit_len(base);
|
int nDigits = digit_len(base);
|
||||||
if (sstrlen(args1, 15) > nDigits + 1) {
|
if (sstrlen(args1, 15) > nDigits + 1) {
|
||||||
char *args2 = args1 + nDigits + 1;
|
char *args2 = args1 + nDigits + 1;
|
||||||
kprint(args2);
|
|
||||||
limit = digit_conver(args2);
|
limit = digit_conver(args2);
|
||||||
if (limit < 100) {
|
if (limit < 100) {
|
||||||
kprint("That memory address is to below the min of 0x100.\n");
|
kprint("That memory address is to below the min of 0x100.\n");
|
||||||
@ -116,6 +115,8 @@
|
|||||||
kprint(" Review the kernel.c source code to see what each command does.\n");
|
kprint(" Review the kernel.c source code to see what each command does.\n");
|
||||||
kprint(" These are hard coded and are just examples, modify as you see fit.\n");
|
kprint(" These are hard coded and are just examples, modify as you see fit.\n");
|
||||||
kprint(" for example - TEST was just added so that I could test the strlen commands.\n");
|
kprint(" for example - TEST was just added so that I could test the strlen commands.\n");
|
||||||
|
} else if (strcmp(input, "HOLES") == 0) {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
kprint("You said: ");
|
kprint("You said: ");
|
||||||
kprint(input);
|
kprint(input);
|
||||||
@ -124,6 +125,39 @@
|
|||||||
kprint("> ");
|
kprint("> ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void update_memory_holes(node *umen_head) {
|
||||||
|
// Assume there's a global variable to store the head of the holes list
|
||||||
|
Node *holes_head = NULL;
|
||||||
|
u32 last_end_addr = 0;
|
||||||
|
|
||||||
|
// Traverse the allocated memory nodes
|
||||||
|
while (umen_head != NULL) {
|
||||||
|
if (!umen_head->is_allocated) {
|
||||||
|
// This is a hole in memory
|
||||||
|
if (last_end_addr < umen_head->start_addr) {
|
||||||
|
// Create a new hole node
|
||||||
|
Node *hole_node = (Node *)malloc(sizeof(Node));
|
||||||
|
hole_node->start_addr = last_end_addr;
|
||||||
|
hole_node->size = umen_head->start_addr - last_end_addr;
|
||||||
|
hole_node->is_allocated = false;
|
||||||
|
|
||||||
|
// Insert the hole node at the beginning of the holes list
|
||||||
|
hole_node->next = holes_head;
|
||||||
|
holes_head = hole_node;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update the last end address
|
||||||
|
last_end_addr = umen_head->start_addr + umen_head->size;
|
||||||
|
}
|
||||||
|
|
||||||
|
umen_head = umen_head->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update the holes list in your global data structure or print it, etc.
|
||||||
|
// holes_head now represents the list of memory holes
|
||||||
|
print_holes(holes_head);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int digit_len(unsigned digit) {
|
int digit_len(unsigned digit) {
|
||||||
if (digit >= 1000000000) return 10;
|
if (digit >= 1000000000) return 10;
|
||||||
|
Reference in New Issue
Block a user