Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/usb/uhci/utils/malloc32.h

    rfaba839 r75f9dcd  
    3636
    3737#include <assert.h>
    38 #include <unistd.h>
    3938#include <errno.h>
    4039#include <malloc.h>
     
    5554        if (addr == NULL)
    5655                return 0;
    57        
     56
    5857        uintptr_t result;
    5958        const int ret = as_get_physical_mapping(addr, &result);
    6059        if (ret != EOK)
    6160                return 0;
    62        
    63         return result;
     61        return (result | ((uintptr_t)addr & 0xfff));
    6462}
    6563/*----------------------------------------------------------------------------*/
     
    9997static inline void * get_page(void)
    10098{
    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)
    104101                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;
    106106        return address;
    107107}
Note: See TracChangeset for help on using the changeset viewer.