blob: 3e1299bd8c960b673601fe0f1f218c5dda5aab89 [file] [log] [blame]
/*!
* Copyright (c) 2017 by Contributors
* \file cpu_dsl_api.cc
* \brief DSL API dispatcher
*/
#ifndef TVM_RUNTIME_DSL_API_H_
#define TVM_RUNTIME_DSL_API_H_
#include <tvm/c_dsl_api.h>
namespace tvm {
namespace runtime {
/*!
* \brief Common interface for DSL API
* Used for runtime registration
*/
class DSLAPI {
public:
virtual ~DSLAPI() = default;
virtual void NodeFree(NodeHandle handle) const = 0;
virtual void NodeTypeKey2Index(const char* type_key,
int* out_index) const = 0;
virtual void NodeGetTypeIndex(NodeHandle handle,
int* out_index) const = 0;
virtual void NodeGetAttr(NodeHandle handle,
const char* key,
TVMValue* out_value,
int* out_type_code,
int* out_success) const = 0;
virtual void NodeListAttrNames(NodeHandle handle,
int *out_size,
const char*** out_array) const = 0;
};
} // namespace runtime
} // namespace tvm
#endif // TVM_RUNTIME_DSL_API_H_