15099a48aSGeorge //===- DialectHandle.cpp - C Interface for MLIR Dialect Operations -------===// 25099a48aSGeorge // 35099a48aSGeorge // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 45099a48aSGeorge // See https://llvm.org/LICENSE.txt for license information. 55099a48aSGeorge // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 65099a48aSGeorge // 75099a48aSGeorge //===----------------------------------------------------------------------===// 85099a48aSGeorge 95099a48aSGeorge #include "mlir/CAPI/Registration.h" 105099a48aSGeorge 115099a48aSGeorge static inline const MlirDialectRegistrationHooks * unwrap(MlirDialectHandle handle)125099a48aSGeorgeunwrap(MlirDialectHandle handle) { 135099a48aSGeorge return (const MlirDialectRegistrationHooks *)handle.ptr; 145099a48aSGeorge } 155099a48aSGeorge mlirDialectHandleGetNamespace(MlirDialectHandle handle)165099a48aSGeorgeMlirStringRef mlirDialectHandleGetNamespace(MlirDialectHandle handle) { 175099a48aSGeorge return unwrap(handle)->getNamespaceHook(); 185099a48aSGeorge } 195099a48aSGeorge mlirDialectHandleInsertDialect(MlirDialectHandle handle,MlirDialectRegistry registry)20*97fc5682SDaniel Resnickvoid mlirDialectHandleInsertDialect(MlirDialectHandle handle, 21*97fc5682SDaniel Resnick MlirDialectRegistry registry) { 22*97fc5682SDaniel Resnick unwrap(handle)->insertHook(registry); 23*97fc5682SDaniel Resnick } 24*97fc5682SDaniel Resnick mlirDialectHandleRegisterDialect(MlirDialectHandle handle,MlirContext ctx)255099a48aSGeorgevoid mlirDialectHandleRegisterDialect(MlirDialectHandle handle, 265099a48aSGeorge MlirContext ctx) { 27*97fc5682SDaniel Resnick mlir::DialectRegistry registry; 28*97fc5682SDaniel Resnick mlirDialectHandleInsertDialect(handle, wrap(®istry)); 29*97fc5682SDaniel Resnick unwrap(ctx)->appendDialectRegistry(registry); 305099a48aSGeorge } 315099a48aSGeorge mlirDialectHandleLoadDialect(MlirDialectHandle handle,MlirContext ctx)325099a48aSGeorgeMlirDialect mlirDialectHandleLoadDialect(MlirDialectHandle handle, 335099a48aSGeorge MlirContext ctx) { 345099a48aSGeorge return unwrap(handle)->loadHook(ctx); 355099a48aSGeorge } 36