summaryrefslogtreecommitdiff
path: root/tools/src/iova.h
blob: 1637be43636c00ba04fafd2ffed6a3b49550b2ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* SPDX-License-Identifier: MIT */

#ifndef IOVA_H
#define IOVA_H

#include "dart.h"
#include "types.h"

typedef struct iova_domain iova_domain_t;

iova_domain_t *iovad_init(u64 base, u64 limit);
void iovad_shutdown(iova_domain_t *iovad, dart_dev_t *dart);

bool iova_reserve(iova_domain_t *iovad, u64 iova, size_t sz);
u64 iova_alloc(iova_domain_t *iovad, size_t sz);
void iova_free(iova_domain_t *iovad, u64 iova, size_t sz);

#endif