xref: /libCEED/julia/LibCEED.jl/src/C.jl (revision ec672a924b3116b076d0affdcc49f20c599f3d02)
144554ea0SWill Pazner# Low-level C API for libCEED
244554ea0SWill Pazner
344554ea0SWill Paznermodule C
444554ea0SWill Pazner
5*ec672a92SWill Paznerusing Libdl, libCEED_jll
644554ea0SWill Pazner
7*ec672a92SWill Paznerconst UINT_MAX = typemax(Cuint)
8*ec672a92SWill Paznerinclude(joinpath(@__DIR__, "generated", "libceed_bindings.jl"))
944554ea0SWill Pazner
1044554ea0SWill Paznerconst CEED_STRIDES_BACKEND = Ref{Ptr{CeedInt}}()
1144554ea0SWill Paznerconst CEED_BASIS_COLLOCATED = Ref{CeedBasis}()
1244554ea0SWill Paznerconst CEED_VECTOR_ACTIVE = Ref{CeedVector}()
1344554ea0SWill Paznerconst CEED_VECTOR_NONE = Ref{CeedVector}()
1444554ea0SWill Paznerconst CEED_ELEMRESTRICTION_NONE = Ref{CeedElemRestriction}()
1544554ea0SWill Paznerconst CEED_QFUNCTION_NONE = Ref{CeedQFunction}()
1644554ea0SWill Paznerconst CEED_REQUEST_IMMEDIATE = Ref{CeedRequest}()
1744554ea0SWill Paznerconst CEED_REQUEST_ORDERED = Ref{CeedRequest}()
1844554ea0SWill Pazner
1944554ea0SWill Paznerfunction __init__()
2044554ea0SWill Pazner    global libceed_handle = dlopen(libceed)
2144554ea0SWill Pazner    # some global variables
2244554ea0SWill Pazner    CEED_STRIDES_BACKEND[] = cglobal((:CEED_STRIDES_BACKEND, libceed))
2344554ea0SWill Pazner    CEED_BASIS_COLLOCATED[] =
2444554ea0SWill Pazner        unsafe_load(cglobal((:CEED_BASIS_COLLOCATED, libceed), CeedBasis))
2544554ea0SWill Pazner    CEED_VECTOR_ACTIVE[] = unsafe_load(cglobal((:CEED_VECTOR_ACTIVE, libceed), CeedVector))
2644554ea0SWill Pazner    CEED_VECTOR_NONE[] = unsafe_load(cglobal((:CEED_VECTOR_NONE, libceed), CeedVector))
2744554ea0SWill Pazner    CEED_ELEMRESTRICTION_NONE[] =
2844554ea0SWill Pazner        unsafe_load(cglobal((:CEED_ELEMRESTRICTION_NONE, libceed), CeedElemRestriction))
2944554ea0SWill Pazner    CEED_QFUNCTION_NONE[] =
3044554ea0SWill Pazner        unsafe_load(cglobal((:CEED_QFUNCTION_NONE, libceed), CeedQFunction))
3144554ea0SWill Pazner    CEED_REQUEST_IMMEDIATE[] =
3244554ea0SWill Pazner        unsafe_load(cglobal((:CEED_REQUEST_IMMEDIATE, libceed), Ptr{CeedRequest}))
3344554ea0SWill Pazner    CEED_REQUEST_ORDERED[] =
3444554ea0SWill Pazner        unsafe_load(cglobal((:CEED_REQUEST_ORDERED, libceed), Ptr{CeedRequest}))
3544554ea0SWill Paznerend
3644554ea0SWill Pazner
3744554ea0SWill Paznerend # module
38