# MLIR
mlirContextCreate
mlirContextDestroy
mlirGetDialectHandle__firrtl__
mlirGetDialectHandle__chirrtl__
mlirGetDialectHandle__sv__
mlirGetDialectHandle__seq__
mlirDialectHandleLoadDialect
#mlirStringRefCreate inline function cannot be generated
mlirStringRefCreateFromCString
mlirLocationGetAttribute
mlirLocationUnknownGet
mlirLocationFileLineColGet
mlirModuleCreateEmpty
mlirModuleDestroy
mlirModuleGetBody
mlirModuleGetOperation
mlirOperationStateGet
mlirNamedAttributeGet
mlirAttributeIsAInteger
mlirIntegerAttrGet
mlirIntegerAttrGetValueInt
mlirIntegerAttrGetValueSInt
mlirIntegerAttrGetValueUInt
mlirFloatAttrDoubleGet
mlirBoolAttrGet
mlirStringAttrGet
mlirStringAttrGetValue
mlirArrayAttrGet
mlirTypeAttrGet
mlirArrayAttrGet
mlirArrayAttrGetNumElements
mlirArrayAttrGetElement
mlirUnitAttrGet
mlirIntegerTypeGet
mlirIntegerTypeUnsignedGet
mlirIntegerTypeSignedGet
mlirF64TypeGet
mlirNoneTypeGet
mlirIdentifierGet
mlirFlatSymbolRefAttrGet
mlirValueGetType
# mlirAttributeParseGet: We should not parse anything
mlirAttributeDump
mlirOperationStateAddOperands
mlirOperationStateAddResults
mlirOperationStateAddAttributes
mlirOperationStateEnableResultTypeInference
mlirOperationGetResult
mlirOperationGetAttributeByName
mlirOperationSetInherentAttributeByName
mlirRegionCreate
mlirOperationCreate
mlirBlockCreate
mlirBlockGetArgument
mlirBlockAppendOwnedOperation
mlirBlockInsertOwnedOperationAfter
mlirBlockInsertOwnedOperationBefore
mlirRegionAppendOwnedBlock
mlirOperationStateAddOwnedRegions
mlirOperationPrint
mlirOperationWriteBytecode
mlirExportFIRRTL
# mlirPassManager
mlirPassManagerCreate
mlirPassManagerCreateOnOperation
mlirPassManagerDestroy
mlirPassManagerGetNestedUnder
mlirPassManagerRunOnOp
mlirPassManagerAddOwnedPass
mlirOpPassManagerGetNestedUnder
mlirOpPassManagerAddOwnedPass

# FIRRTL Type
firrtlTypeGetUInt
firrtlTypeGetSInt
firrtlTypeGetClock
firrtlTypeGetReset
firrtlTypeGetAsyncReset
firrtlTypeGetAnalog
firrtlTypeGetVector
firrtlTypeGetBundle
firrtlTypeIsAOpenBundle
firrtlTypeGetBundleFieldIndex
firrtlTypeGetRef
firrtlTypeGetAnyRef
firrtlTypeGetInteger
firrtlTypeGetDouble
firrtlTypeGetString
firrtlTypeGetBoolean
firrtlTypeGetPath
firrtlTypeGetList
firrtlTypeGetClass

# FIRRTL Attribute
firrtlAttrGetPortDirs
firrtlAttrGetParamDecl
firrtlAttrGetConvention
firrtlAttrGetNameKind
firrtlAttrGetRUW
firrtlAttrGetMemoryInit
firrtlAttrGetMemDir

# Utility API
firrtlValueFoldFlow
firrtlImportAnnotationsFromJSONRaw

# CHIRRTL Attribute
chirrtlTypeGetCMemory
chirrtlTypeGetCMemoryPort

# HW Attribute
hwInnerRefAttrGet
hwInnerSymAttrGet

hwInstanceGraphGet
hwInstanceGraphGetTopLevelNode
hwInstanceGraphForEachNode
hwInstanceGraphNodeEqual
hwInstanceGraphNodeGetModuleOp

# circtFirtoolOptions
circtFirtoolOptionsCreateDefault
circtFirtoolOptionsDestroy
circtFirtoolOptionsSetOutputFilename
circtFirtoolOptionsSetDisableUnknownAnnotations
circtFirtoolOptionsSetDisableAnnotationsClassless
circtFirtoolOptionsSetLowerAnnotationsNoRefTypePorts
circtFirtoolOptionsSetPreserveAggregate
circtFirtoolOptionsSetPreserveValues
circtFirtoolOptionsSetBuildMode
circtFirtoolOptionsSetDisableOptimization
circtFirtoolOptionsSetExportChiselInterface
circtFirtoolOptionsSetChiselInterfaceOutDirectory
circtFirtoolOptionsSetVbToBv
circtFirtoolOptionsSetNoDedup
circtFirtoolOptionsSetCompanionMode
circtFirtoolOptionsSetDisableAggressiveMergeConnections
circtFirtoolOptionsSetEmitOmir
circtFirtoolOptionsSetOmirOutFile
circtFirtoolOptionsSetLowerMemories
circtFirtoolOptionsSetBlackBoxRootPath
circtFirtoolOptionsSetReplSeqMem
circtFirtoolOptionsSetReplSeqMemFile
circtFirtoolOptionsSetExtractTestCode
circtFirtoolOptionsSetIgnoreReadEnableMem
circtFirtoolOptionsSetDisableRandom
circtFirtoolOptionsSetOutputAnnotationFilename
circtFirtoolOptionsSetEnableAnnotationWarning
circtFirtoolOptionsSetAddMuxPragmas
circtFirtoolOptionsSetEmitChiselAssertsAsSVA
circtFirtoolOptionsSetEmitSeparateAlwaysBlocks
circtFirtoolOptionsSetEtcDisableInstanceExtraction
circtFirtoolOptionsSetEtcDisableRegisterExtraction
circtFirtoolOptionsSetEtcDisableModuleInlining
circtFirtoolOptionsSetAddVivadoRAMAddressConflictSynthesisBugWorkaround
circtFirtoolOptionsSetCkgModuleName
circtFirtoolOptionsSetCkgInputName
circtFirtoolOptionsSetCkgOutputName
circtFirtoolOptionsSetCkgEnableName
circtFirtoolOptionsSetCkgTestEnableName
circtFirtoolOptionsSetExportModuleHierarchy
circtFirtoolOptionsSetStripFirDebugInfo
circtFirtoolOptionsSetStripDebugInfo

# circtFirtoolPopulate functions
circtFirtoolPopulatePreprocessTransforms
circtFirtoolPopulateCHIRRTLToLowFIRRTL
circtFirtoolPopulateLowFIRRTLToHW
circtFirtoolPopulateHWToSV
circtFirtoolPopulateExportVerilog
circtFirtoolPopulateExportSplitVerilog
circtFirtoolPopulateFinalizeIR

#
# OM C-API
#

# Type
omTypeIsAClassType
omClassTypeGetTypeID
omClassTypeGetName
omTypeIsAFrozenBasePathType
omFrozenBasePathTypeGetTypeID
omTypeIsAFrozenPathType
omFrozenPathTypeGetTypeID
omTypeIsAMapType
omMapTypeGetKeyType
omTypeIsAStringType
# Evaluator
omEvaluatorNew
omEvaluatorInstantiate
omEvaluatorGetModule
# Object
omEvaluatorObjectIsNull
omEvaluatorObjectGetType
omEvaluatorObjectGetField
omEvaluatorObjectGetHash
omEvaluatorObjectIsEq
omEvaluatorObjectGetFieldNames
# EvaluatorValue
omEvaluatorValueGetContext
omEvaluatorValueGetLoc
omEvaluatorValueIsNull
omEvaluatorValueIsAObject
omEvaluatorValueIsAPrimitive
omEvaluatorValueGetPrimitive
omEvaluatorValueFromPrimitive
omEvaluatorValueIsAList
omEvaluatorListGetNumElements
omEvaluatorListGetElement
omEvaluatorValueIsATuple
omEvaluatorTupleGetNumElements
omEvaluatorTupleGetElement
omEvaluatorMapGetElement
omEvaluatorMapGetKeys
omEvaluatorValueIsAMap
omEvaluatorMapGetType
omEvaluatorValueIsABasePath
omEvaluatorBasePathGetEmpty
omEvaluatorValueIsAPath
omEvaluatorPathGetAsString
# ReferenceAttr API
omAttrIsAReferenceAttr
omReferenceAttrGetInnerRef
# IntegerAttr API
omAttrIsAIntegerAttr
omIntegerAttrGetInt
omIntegerAttrGet
# ListAttr API
omAttrIsAListAttr
omListAttrGetNumElements
omListAttrGetElement
# MapAttr API
omAttrIsAMapAttr
omMapAttrGetNumElements
omMapAttrGetElementKey
omMapAttrGetElementValue
