1 /* 2 * Copyright 2006-2008, Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Axel Dörfler, axeld@pinc-software.de 7 */ 8 9 10 #include "accelerant.h" 11 #include "intel_extreme.h" 12 13 #include <errno.h> 14 #include <unistd.h> 15 16 17 #undef TRACE 18 //#define TRACE_MEMORY 19 #ifdef TRACE_MEMORY 20 # define TRACE(x...) _sPrintf("intel_extreme accelerant:" x) 21 #else 22 # define TRACE(x...) 23 #endif 24 25 #define ERROR(x...) _sPrintf("intel_extreme accelerant: " x) 26 #define CALLED(x...) TRACE("CALLED %s\n", __PRETTY_FUNCTION__) 27 28 29 void 30 intel_free_memory(addr_t base) 31 { 32 if (base == 0) 33 return; 34 35 intel_free_graphics_memory freeMemory; 36 freeMemory.magic = INTEL_PRIVATE_DATA_MAGIC; 37 freeMemory.buffer_base = base; 38 39 ioctl(gInfo->device, INTEL_FREE_GRAPHICS_MEMORY, &freeMemory, 40 sizeof(freeMemory)); 41 } 42 43 44 status_t 45 intel_allocate_memory(size_t size, uint32 flags, addr_t &base) 46 { 47 intel_allocate_graphics_memory allocMemory; 48 allocMemory.magic = INTEL_PRIVATE_DATA_MAGIC; 49 allocMemory.size = size; 50 allocMemory.alignment = 0; 51 allocMemory.flags = flags; 52 53 if (ioctl(gInfo->device, INTEL_ALLOCATE_GRAPHICS_MEMORY, &allocMemory, 54 sizeof(allocMemory)) < 0) 55 return errno; 56 57 base = allocMemory.buffer_base; 58 return B_OK; 59 } 60 61