| 300 | } |
| 301 | |
| 302 | static void dma_pool_free(struct rt_dma_pool *pool, rt_ubase_t offset, rt_size_t size) |
| 303 | { |
| 304 | rt_size_t bit = (offset - pool->start) / ARCH_PAGE_SIZE, end_bit; |
| 305 | |
| 306 | size = RT_DIV_ROUND_UP(size, ARCH_PAGE_SIZE); |
| 307 | end_bit = bit + size; |
| 308 | |
| 309 | for (; bit < end_bit; ++bit) |
| 310 | { |
| 311 | rt_bitmap_clear_bit(pool->map, bit); |
| 312 | } |
| 313 | } |
| 314 | |
| 315 | static void *dma_alloc(struct rt_device *dev, rt_size_t size, |
| 316 | rt_ubase_t *dma_handle, rt_ubase_t flags) |
no test coverage detected