factor/extra/llvm/ffi/ffi.factor

89 lines
3.2 KiB
Factor
Raw Normal View History

! Copyright (C) 2009 Matthew Willis, 2017 Björn Lindqvist
! See http://factorcode.org/license.txt for BSD license.
USING: alien alien.c-types alien.destructors alien.libraries
alien.syntax ldcache ;
IN: llvm.ffi
<<
"llvm" "LLVM-3.8" find-so cdecl add-library
>>
LIBRARY: llvm
CONSTANT: LLVMAbortProcessAction 0
CONSTANT: LLVMPrintMessageAction 1
CONSTANT: LLVMReturnStatusAction 2
TYPEDEF: uint unsigned
TYPEDEF: unsigned enum
TYPEDEF: int LLVMBool
! Reference types
TYPEDEF: void* LLVMExecutionEngineRef
TYPEDEF: void* LLVMModuleRef
TYPEDEF: void* LLVMPassManagerRef
TYPEDEF: void* LLVMModuleProviderRef
TYPEDEF: void* LLVMTypeRef
TYPEDEF: void* LLVMTypeHandleRef
TYPEDEF: void* LLVMValueRef
TYPEDEF: void* LLVMBasicBlockRef
TYPEDEF: void* LLVMBuilderRef
TYPEDEF: void* LLVMMemoryBufferRef
! Modules
FUNCTION: LLVMModuleRef LLVMModuleCreateWithName ( c-string ModuleID )
FUNCTION: void LLVMDisposeModule ( LLVMModuleRef M )
FUNCTION: void LLVMDumpModule ( LLVMModuleRef M )
FUNCTION: LLVMBool LLVMVerifyModule ( LLVMModuleRef M, int Action, char **OutMessage )
DESTRUCTOR: LLVMDisposeModule
! Types
FUNCTION: LLVMTypeRef LLVMInt1Type ( )
FUNCTION: LLVMTypeRef LLVMInt8Type ( )
FUNCTION: LLVMTypeRef LLVMInt16Type ( )
FUNCTION: LLVMTypeRef LLVMInt32Type ( )
FUNCTION: LLVMTypeRef LLVMInt64Type ( )
FUNCTION: LLVMTypeRef LLVMIntType ( unsigned NumBits )
FUNCTION: LLVMTypeRef LLVMFunctionType ( LLVMTypeRef ReturnType,
LLVMTypeRef* ParamTypes,
unsigned ParamCount, int IsVarArg )
! Values
FUNCTION: LLVMValueRef LLVMAddFunction ( LLVMModuleRef M,
c-string Name,
LLVMTypeRef FunctionTy )
FUNCTION: LLVMValueRef LLVMGetParam ( LLVMValueRef Fn,
unsigned index )
! Basic blocks
FUNCTION: LLVMBasicBlockRef LLVMAppendBasicBlock ( LLVMValueRef Fn,
c-string Name )
! Builders
FUNCTION: LLVMBuilderRef LLVMCreateBuilder ( )
FUNCTION: void LLVMDisposeBuilder ( LLVMBuilderRef Builder )
FUNCTION: void LLVMPositionBuilderBefore ( LLVMBuilderRef Builder,
LLVMValueRef Instr )
FUNCTION: void LLVMPositionBuilderAtEnd ( LLVMBuilderRef Builder,
LLVMBasicBlockRef Block )
FUNCTION: LLVMValueRef LLVMBuildAdd ( LLVMBuilderRef Builder,
LLVMValueRef LHS,
LLVMValueRef RHS,
c-string Name )
FUNCTION: LLVMValueRef LLVMBuildSub ( LLVMBuilderRef Builder,
LLVMValueRef LHS,
LLVMValueRef RHS,
c-string Name )
FUNCTION: LLVMValueRef LLVMBuildRet ( LLVMBuilderRef Builder,
LLVMValueRef V )
DESTRUCTOR: LLVMDisposeBuilder
! Engines
FUNCTION: LLVMBool LLVMCreateExecutionEngineForModule (
LLVMExecutionEngineRef* OutEE,
LLVMModuleRef M,
char **OutMessage )
FUNCTION: void LLVMDisposeExecutionEngine ( LLVMExecutionEngineRef E )
DESTRUCTOR: LLVMDisposeExecutionEngine