blob: 2c1c74ba2bbf7a8ec31c2f62e0b06640af9dddd8 [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ANV_MAGMA_H
#define ANV_MAGMA_H
// Don't include anv_private.h here; this header is included by the
// c++ implementation anv_magma_connection.cc.
#include "i915_drm.h"
#include "magma.h"
struct anv_connection {
magma_connection_t connection;
};
#ifdef __cplusplus
extern "C" {
#endif
// Transfer ownership of the |connection|.
struct anv_connection* AnvMagmaCreateConnection(magma_connection_t connection);
void AnvMagmaReleaseConnection(struct anv_connection* connection);
void AnvMagmaConnectionWait(struct anv_connection* connection, uint64_t buffer_id, int64_t* timeout_ns);
int AnvMagmaConnectionIsBusy(struct anv_connection* connection, uint64_t buffer_id);
int AnvMagmaConnectionExec(struct anv_connection* connection, uint32_t context_id, struct drm_i915_gem_execbuffer2* execbuf);
#ifdef __cplusplus
} // extern "C"
#endif
#endif // ANV_MAGMA_H