Beispiel #1
0
void*
kma_malloc(kma_size_t size)
{
  if (startOfManagedMemory == NULL)
  {
    // get new page and initialize control struct
    kma_page_t* page;
  
    // get one page
    page = get_page();
    printf("start of page in memory %p\n", page->ptr);
    initPage(page);

  }
  
  // calculate size, plus size of void ptr then rounded up
  int bufferSize = getAmountOfMemoryToRequest(size);
  printf("Size:%d Buffer:%d\n", size, bufferSize);

  // return null if bigger than a page
  if (bufferSize == -1)
  {
    return NULL;
  }

  // request memory of rounded up size and return
  void* buffer = getMemoryPointer(bufferSize);
  printf("Distance from start of page %d\n", buffer - (void*)startOfManagedMemory);
  printf("buffer, returned pointer %p, %p\n", buffer, (void*)(((BYTE*) buffer) + sizeof(bufferData_t)));
  return (void*)(((BYTE*) buffer) + sizeof(bufferData_t));
}
Beispiel #2
0
BYTE MemoryStatic::getByte( ADDRESS addr )
{
    BYTE result = UNKNOWN_BYTE;
    BYTE * memPtr = getMemoryPointer(addr);
    if (NULL != memPtr) {
        result = *memPtr;
    }
    return result;    
}