This repository has been archived on 2024-01-18. You can view files and clone it, but cannot push or open issues or pull requests.
OS_Project/Part3/09_memory/libc/globals.h
2023-10-18 14:04:33 -04:00

24 lines
1.2 KiB
C

#ifndef GLOBAL_H
#define GLOBAL_H
#include "../cpu/types.h"
#include "linked.h"
// Using defines allows this file to control the ranges here rather than updating the kernel code lines
// somewhere else at various locations throughout the code
// using ALL CAPS is a conventions for defines and constants, that varies from group to group
#define KMEM_START 0x9000 // starts equal to this address for allocation
#define KMEM_END 0x10000 // cannot be equal to or more than this address
extern u32 kmem_addr; // The start value of allocation kernel datastructure allocations
extern u32 kernel_mem_limit; // the upper limit of memory allowed for kernel memory allocations
#define UMEM_START 0x10000 // kernel memory for linked list nodes starts here
#define UMEM_END 0x40000 // kernel memory for linked list nodes must end before here
extern u32 umem_addr; // start of linked list memory allocation address
extern u32 user_mem_limit; // end of linked list memory allocation address
extern u32 global_id; // Just an id for now but will eventually become PID
extern node *global_head; // Kernel data structure for storing memory allocation linked list
#endif // GLOBAL_H