source: mainline/uspace/drv/uhci/utils/malloc32.h@ 1431e8f

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 1431e8f was 1431e8f, checked in by Vojtech Horky <vojtechhorky@…>, 14 years ago

Another parameter ordering

  • Property mode set to 100644
File size: 2.4 KB
Line 
1/*
2 * Copyright (c) 2010 Jan Vesely
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * - Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * - Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * - The name of the author may not be used to endorse or promote products
15 * derived from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28/** @addtogroup usb
29 * @{
30 */
31/** @file
32 * @brief UHCI driver
33 */
34#ifndef DRV_UHCI_TRANSLATOR_H
35#define DRV_UHCI_TRANSLATOR_H
36
37#include <usb/usbmem.h>
38
39#include <assert.h>
40#include <malloc.h>
41#include <mem.h>
42#include <as.h>
43
44static inline void * addr_to_phys(void *addr)
45{
46 uintptr_t result;
47 int ret = as_get_physical_mapping(addr, &result);
48
49 assert(ret == 0);
50 return (void*)(result | ((uintptr_t)addr & 0xfff));
51}
52
53static inline void * malloc32(size_t size)
54/* TODO: this is ugly */
55 { return memalign(16, size); }
56
57static inline void * get_page()
58{
59 void * free_address = as_get_mappable_page(4096);
60 assert(free_address);
61 if (free_address == 0)
62 return 0;
63 void* ret =
64 as_area_create(free_address, 4096, AS_AREA_READ | AS_AREA_WRITE |AS_AREA_CACHEABLE);
65 if (ret != free_address)
66 return 0;
67 return ret;
68}
69
70static inline void * memalign32(size_t size, size_t alignment)
71 { return memalign(alignment, size); }
72
73static inline void free32(void * addr)
74 { free(addr); }
75
76#endif
77/**
78 * @}
79 */
Note: See TracBrowser for help on using the repository browser.