mirror of
https://github.com/AsahiLinux/m1n1
synced 2025-02-26 20:37:31 +00:00
43 lines
1 KiB
C
43 lines
1 KiB
C
/* SPDX-License-Identifier: MIT */
|
|
|
|
#ifndef RTKIT_H
|
|
#define RTKIT_H
|
|
|
|
#include "asc.h"
|
|
#include "dart.h"
|
|
#include "iova.h"
|
|
#include "sart.h"
|
|
#include "types.h"
|
|
|
|
typedef struct rtkit_dev rtkit_dev_t;
|
|
|
|
struct rtkit_message {
|
|
u8 ep;
|
|
u64 msg;
|
|
};
|
|
|
|
struct rtkit_buffer {
|
|
void *bfr;
|
|
u64 dva;
|
|
size_t sz;
|
|
};
|
|
|
|
rtkit_dev_t *rtkit_init(const char *name, asc_dev_t *asc, dart_dev_t *dart,
|
|
iova_domain_t *dart_iovad, sart_dev_t *sart);
|
|
bool rtkit_quiesce(rtkit_dev_t *rtk);
|
|
bool rtkit_sleep(rtkit_dev_t *rtk);
|
|
void rtkit_free(rtkit_dev_t *rtk);
|
|
|
|
bool rtkit_start_ep(rtkit_dev_t *rtk, u8 ep);
|
|
bool rtkit_boot(rtkit_dev_t *rtk);
|
|
|
|
int rtkit_recv(rtkit_dev_t *rtk, struct rtkit_message *msg);
|
|
bool rtkit_send(rtkit_dev_t *rtk, const struct rtkit_message *msg);
|
|
|
|
bool rtkit_map(rtkit_dev_t *rtk, void *phys, size_t sz, u64 *dva);
|
|
bool rtkit_unmap(rtkit_dev_t *rtk, u64 dva, size_t sz);
|
|
|
|
bool rtkit_alloc_buffer(rtkit_dev_t *rtk, struct rtkit_buffer *bfr, size_t sz);
|
|
bool rtkit_free_buffer(rtkit_dev_t *rtk, struct rtkit_buffer *bfr);
|
|
|
|
#endif
|