Changeset 72d120e in mainline for uspace/lib/c/generic/ddi.c
- Timestamp:
- 2014-06-16T20:17:44Z (11 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 5a78e4e
- Parents:
- 9d653e3 (diff), 334bf28 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/ddi.c
r9d653e3 r72d120e 71 71 * @param flags Flags for the new address space area. 72 72 * @param virt Virtual address of the starting page. 73 * 74 * @return EOK on success 75 * @return EPERM if the caller lacks the CAP_MEM_MANAGER capability 76 * @return ENOENT if there is no task with specified ID 73 * If set to AS_AREA_ANY ((void *) -1), a suitable value 74 * is found by the kernel, otherwise the kernel tries to 75 * obey the desired value. 76 * 77 * @return EOK on success. 78 * @return EPERM if the caller lacks the CAP_MEM_MANAGER capability. 77 79 * @return ENOMEM if there was some problem in creating 78 80 * the address space area. … … 85 87 } 86 88 89 /** Lock a piece physical memory for DMA transfers. 90 * 91 * The mapping of the specified virtual memory address 92 * to physical memory address is locked in order to 93 * make it safe for DMA transferts. 94 * 95 * Caller of this function must have the CAP_MEM_MANAGER capability. 96 * 97 * @param virt Virtual address of the memory to be locked. 98 * @param size Number of bytes to lock. 99 * @param map_flags Desired virtual memory area flags. 100 * @param flags Flags for the physical memory address. 101 * @param phys Locked physical memory address. 102 * 103 * @return EOK on success. 104 * @return EPERM if the caller lacks the CAP_MEM_MANAGER capability. 105 * @return ENOMEM if there was some problem in creating 106 * the address space area. 107 * 108 */ 87 109 int dmamem_map(void *virt, size_t size, unsigned int map_flags, 88 110 unsigned int flags, uintptr_t *phys) … … 93 115 } 94 116 117 /** Map a piece of physical memory suitable for DMA transfers. 118 * 119 * Caller of this function must have the CAP_MEM_MANAGER capability. 120 * 121 * @param size Number of bytes to map. 122 * @param constraint Bit mask defining the contraint on the physical 123 * address to be mapped. 124 * @param map_flags Desired virtual memory area flags. 125 * @param flags Flags for the physical memory address. 126 * @param virt Virtual address of the starting page. 127 * If set to AS_AREA_ANY ((void *) -1), a suitable value 128 * is found by the kernel, otherwise the kernel tries to 129 * obey the desired value. 130 * 131 * @return EOK on success. 132 * @return EPERM if the caller lacks the CAP_MEM_MANAGER capability. 133 * @return ENOMEM if there was some problem in creating 134 * the address space area. 135 * 136 */ 95 137 int dmamem_map_anonymous(size_t size, uintptr_t constraint, 96 138 unsigned int map_flags, unsigned int flags, uintptr_t *phys, void **virt) … … 221 263 size_t pages = SIZE2PAGES(offset + size); 222 264 223 void *virt_page ;265 void *virt_page = AS_AREA_ANY; 224 266 int rc = physmem_map(phys_frame, pages, 225 267 AS_AREA_READ | AS_AREA_WRITE, &virt_page);
Note:
See TracChangeset
for help on using the changeset viewer.