Changes in uspace/drv/bus/usb/uhci/utils/malloc32.h [faba839:75f9dcd] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/uhci/utils/malloc32.h
rfaba839 r75f9dcd 36 36 37 37 #include <assert.h> 38 #include <unistd.h>39 38 #include <errno.h> 40 39 #include <malloc.h> … … 55 54 if (addr == NULL) 56 55 return 0; 57 56 58 57 uintptr_t result; 59 58 const int ret = as_get_physical_mapping(addr, &result); 60 59 if (ret != EOK) 61 60 return 0; 62 63 return result; 61 return (result | ((uintptr_t)addr & 0xfff)); 64 62 } 65 63 /*----------------------------------------------------------------------------*/ … … 99 97 static inline void * get_page(void) 100 98 { 101 void *address = as_area_create(AS_AREA_ANY, UHCI_REQUIRED_PAGE_SIZE, 102 AS_AREA_READ | AS_AREA_WRITE); 103 if (address == AS_MAP_FAILED) 99 void *free_address = as_get_mappable_page(UHCI_REQUIRED_PAGE_SIZE); 100 if (free_address == 0) 104 101 return NULL; 105 102 void *address = as_area_create(free_address, UHCI_REQUIRED_PAGE_SIZE, 103 AS_AREA_READ | AS_AREA_WRITE); 104 if (address != free_address) 105 return NULL; 106 106 return address; 107 107 }
Note:
See TracChangeset
for help on using the changeset viewer.