xref: /libCEED/julia/LibCEED.jl/docs/src/C.md (revision 06988bf74cc6ac18eacafe7930f080803395ba29)
1*6f5dc8baSWill Pazner# Low-level C interface
2*6f5dc8baSWill Pazner
3*6f5dc8baSWill PaznerThe low-level interface (provided in the `LibCEED.C` module) is in one-to-one
4*6f5dc8baSWill Paznercorrespondence with the C libCEED iterface, and is automatically generated (with
5*6f5dc8baSWill Paznersome minor manual modifications) using the Julia package
6*6f5dc8baSWill Pazner[Clang.jl](https://github.com/JuliaInterop/Clang.jl/). The code used to generate
7*6f5dc8baSWill Paznerbindings is available in `generate_bindings.jl`.
8*6f5dc8baSWill Pazner
9*6f5dc8baSWill PaznerWith the low-level interface, the user is responsible for freeing all allocated
10*6f5dc8baSWill Paznermemory (calling the appropriate `Ceed*Destroy` functions). This interface is not
11*6f5dc8baSWill Paznertype-safe, and calling functions with the wrong arguments can cause libCEED to
12*6f5dc8baSWill Paznercrash.
13*6f5dc8baSWill Pazner
14*6f5dc8baSWill PaznerIt is generally recommended for users to use the Julia interface exported from
15*6f5dc8baSWill Paznerthe `LibCEED` module, unless other specific low-level functionality is required.
16