You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

basemem.h 719B

123456789101112131415161718192021222324252627282930313233
  1. #ifndef BASEMEM_H
  2. #define BASEMEM_H
  3. #ifdef ASSEMBLY
  4. /* Must match sizeof(struct free_base_memory_header) */
  5. #define FREE_BASEMEM_HEADER_SIZE 8
  6. #else /* ASSEMBLY */
  7. #include "stdint.h"
  8. /* Structures that we use to represent a free block of base memory */
  9. #define FREE_BLOCK_MAGIC ( ('!'<<0) + ('F'<<8) + ('R'<<16) + ('E'<<24) )
  10. struct free_base_memory_header {
  11. uint32_t magic;
  12. uint32_t size_kb;
  13. };
  14. union free_base_memory_block {
  15. struct free_base_memory_header;
  16. char bytes[1024];
  17. };
  18. /* Function prototypes */
  19. extern uint32_t get_free_base_memory ( void );
  20. extern void * alloc_base_memory ( size_t size );
  21. extern void free_base_memory ( void *ptr, size_t size );
  22. #endif /* ASSEMBLY */
  23. #endif /* BASEMEM_H */