( kind = macro definition spelling = "MPIAPI" location = test.h:1:9 is-definition? false is-declaration? false is-inlined-function? false usr = "c:test.h@8@macro@MPIAPI" type.kind = Invalid ) ( kind = macro definition spelling = "MPI_METHOD" location = test.h:2:9 is-definition? false is-declaration? false is-inlined-function? false usr = "c:test.h@34@macro@MPI_METHOD" type.kind = Invalid ) ( kind = macro expansion spelling = "MPIAPI" location = test.h:9:2 is-definition? false is-declaration? false is-inlined-function? false referenced.kind = macro definition referenced.spelling = "MPIAPI" referenced.location = test.h:1:9 referenced.is-definition? false referenced.is-declaration? false referenced.is-inlined-function? false referenced.usr = "c:test.h@8@macro@MPIAPI" type.kind = Invalid ) ( kind = macro expansion spelling = "MPI_METHOD" location = test.h:16:1 is-definition? false is-declaration? false is-inlined-function? false referenced.kind = macro definition referenced.spelling = "MPI_METHOD" referenced.location = test.h:2:9 referenced.is-definition? false referenced.is-declaration? false referenced.is-inlined-function? false referenced.usr = "c:test.h@34@macro@MPI_METHOD" type.kind = Invalid ) ( kind = TypedefDecl spelling = "MPI_Datatype" location = test.h:4:13 is-definition? true is-declaration? true is-inlined-function? false usr = "c:test.h@T@MPI_Datatype" typedef-type = Int semantic-parent.kind = TranslationUnit semantic-parent.spelling = "test.h" semantic-parent.location = builtin definitions semantic-parent.is-definition? false semantic-parent.is-declaration? false semantic-parent.is-inlined-function? false type.kind = Typedef type.cconv = 100 type.spelling = "MPI_Datatype" type.is-variadic? false type.canonical.kind = Int type.canonical.cconv = 100 type.canonical.spelling = "int" type.canonical.is-variadic? false ) ( kind = TypedefDecl spelling = "MPI_Op" location = test.h:5:13 is-definition? true is-declaration? true is-inlined-function? false usr = "c:test.h@T@MPI_Op" typedef-type = Int semantic-parent.kind = TranslationUnit semantic-parent.spelling = "test.h" semantic-parent.location = builtin definitions semantic-parent.is-definition? false semantic-parent.is-declaration? false semantic-parent.is-inlined-function? false type.kind = Typedef type.cconv = 100 type.spelling = "MPI_Op" type.is-variadic? false type.canonical.kind = Int type.canonical.cconv = 100 type.canonical.spelling = "int" type.canonical.is-variadic? false ) ( kind = TypedefDecl spelling = "MPI_User_function" location = test.h:9:9 is-definition? true is-declaration? true is-inlined-function? false usr = "c:test.h@T@MPI_User_function" typedef-type = FunctionProto ret-type = Void semantic-parent.kind = TranslationUnit semantic-parent.spelling = "test.h" semantic-parent.location = builtin definitions semantic-parent.is-definition? false semantic-parent.is-declaration? false semantic-parent.is-inlined-function? false type.kind = FunctionProto type.cconv = 1 type.spelling = "void (void *, void *, int *, MPI_Datatype *)" type.is-variadic? false type.canonical.kind = FunctionProto type.canonical.cconv = 1 type.canonical.spelling = "void (void *, void *, int *, int *)" type.canonical.is-variadic? false type.canonical.return.kind = Void type.canonical.return.cconv = 100 type.canonical.return.spelling = "void" type.canonical.return.is-variadic? false type.return.kind = Void type.return.cconv = 100 type.return.spelling = "void" type.return.is-variadic? false ( kind = ParmDecl spelling = "invec" location = test.h:10:12 is-definition? true is-declaration? true is-inlined-function? false usr = "c:test.h@invec" semantic-parent.kind = TranslationUnit semantic-parent.spelling = "test.h" semantic-parent.location = builtin definitions semantic-parent.is-definition? false semantic-parent.is-declaration? false semantic-parent.is-inlined-function? false type.kind = Pointer type.cconv = 100 type.spelling = "void *" type.is-variadic? false type.pointee.kind = Void type.pointee.cconv = 100 type.pointee.spelling = "void" type.pointee.is-variadic? false ) ( kind = ParmDecl spelling = "inoutvec" location = test.h:11:12 is-definition? true is-declaration? true is-inlined-function? false usr = "c:test.h@inoutvec" semantic-parent.kind = TranslationUnit semantic-parent.spelling = "test.h" semantic-parent.location = builtin definitions semantic-parent.is-definition? false semantic-parent.is-declaration? false semantic-parent.is-inlined-function? false type.kind = Pointer type.cconv = 100 type.spelling = "void *" type.is-variadic? false type.pointee.kind = Void type.pointee.cconv = 100 type.pointee.spelling = "void" type.pointee.is-variadic? false ) ( kind = ParmDecl spelling = "len" location = test.h:12:11 is-definition? true is-declaration? true is-inlined-function? false usr = "c:test.h@len" semantic-parent.kind = TranslationUnit semantic-parent.spelling = "test.h" semantic-parent.location = builtin definitions semantic-parent.is-definition? false semantic-parent.is-declaration? false semantic-parent.is-inlined-function? false type.kind = Pointer type.cconv = 100 type.spelling = "int *" type.is-variadic? false type.pointee.kind = Int type.pointee.cconv = 100 type.pointee.spelling = "int" type.pointee.is-variadic? false ) ( kind = ParmDecl spelling = "datatype" location = test.h:13:20 is-definition? true is-declaration? true is-inlined-function? false usr = "c:test.h@datatype" semantic-parent.kind = TranslationUnit semantic-parent.spelling = "test.h" semantic-parent.location = builtin definitions semantic-parent.is-definition? false semantic-parent.is-declaration? false semantic-parent.is-inlined-function? false type.kind = Pointer type.cconv = 100 type.spelling = "MPI_Datatype *" type.is-variadic? false type.canonical.kind = Pointer type.canonical.cconv = 100 type.canonical.spelling = "int *" type.canonical.is-variadic? false type.canonical.pointee.kind = Int type.canonical.pointee.cconv = 100 type.canonical.pointee.spelling = "int" type.canonical.pointee.is-variadic? false type.pointee.kind = Typedef type.pointee.cconv = 100 type.pointee.spelling = "MPI_Datatype" type.pointee.is-variadic? false type.pointee.canonical.kind = Int type.pointee.canonical.cconv = 100 type.pointee.canonical.spelling = "int" type.pointee.canonical.is-variadic? false ( kind = TypeRef spelling = "MPI_Datatype" location = test.h:13:6 is-definition? false is-declaration? false is-inlined-function? false referenced.kind = TypedefDecl referenced.spelling = "MPI_Datatype" referenced.location = test.h:4:13 referenced.is-definition? true referenced.is-declaration? true referenced.is-inlined-function? false referenced.usr = "c:test.h@T@MPI_Datatype" referenced.typedef-type = Int referenced.semantic-parent.kind = TranslationUnit referenced.semantic-parent.spelling = "test.h" referenced.semantic-parent.location = builtin definitions referenced.semantic-parent.is-definition? false referenced.semantic-parent.is-declaration? false referenced.semantic-parent.is-inlined-function? false type.kind = Typedef type.cconv = 100 type.spelling = "MPI_Datatype" type.is-variadic? false type.canonical.kind = Int type.canonical.cconv = 100 type.canonical.spelling = "int" type.canonical.is-variadic? false type.declaration.kind = TypedefDecl type.declaration.spelling = "MPI_Datatype" type.declaration.location = test.h:4:13 type.declaration.is-definition? true type.declaration.is-declaration? true type.declaration.is-inlined-function? false type.declaration.usr = "c:test.h@T@MPI_Datatype" type.declaration.typedef-type = Int type.declaration.semantic-parent.kind = TranslationUnit type.declaration.semantic-parent.spelling = "test.h" type.declaration.semantic-parent.location = builtin definitions type.declaration.semantic-parent.is-definition? false type.declaration.semantic-parent.is-declaration? false type.declaration.semantic-parent.is-inlined-function? false ) ) ) ( kind = FunctionDecl spelling = "MPI_Op_create" location = test.h:17:1 is-definition? false is-declaration? true is-inlined-function? false usr = "c:@F@MPI_Op_create" number-of-args = 3 ret-type = Int semantic-parent.kind = TranslationUnit semantic-parent.spelling = "test.h" semantic-parent.location = builtin definitions semantic-parent.is-definition? false semantic-parent.is-declaration? false semantic-parent.is-inlined-function? false type.kind = FunctionProto type.cconv = 1 type.spelling = "int (MPI_User_function *, int, MPI_Op *)" type.is-variadic? false type.canonical.kind = FunctionProto type.canonical.cconv = 1 type.canonical.spelling = "int (void (*)(void *, void *, int *, int *), int, int *)" type.canonical.is-variadic? false type.canonical.return.kind = Int type.canonical.return.cconv = 100 type.canonical.return.spelling = "int" type.canonical.return.is-variadic? false type.return.kind = Int type.return.cconv = 100 type.return.spelling = "int" type.return.is-variadic? false ( kind = ParmDecl spelling = "user_fn" location = test.h:18:24 is-definition? true is-declaration? true is-inlined-function? false usr = "c:test.h@281@F@MPI_Op_create@user_fn" semantic-parent.kind = FunctionDecl semantic-parent.spelling = "MPI_Op_create" semantic-parent.location = test.h:17:1 semantic-parent.is-definition? false semantic-parent.is-declaration? true semantic-parent.is-inlined-function? false semantic-parent.usr = "c:@F@MPI_Op_create" semantic-parent.number-of-args = 3 semantic-parent.ret-type = Int semantic-parent.semantic-parent.kind = TranslationUnit semantic-parent.semantic-parent.spelling = "test.h" semantic-parent.semantic-parent.location = builtin definitions semantic-parent.semantic-parent.is-definition? false semantic-parent.semantic-parent.is-declaration? false semantic-parent.semantic-parent.is-inlined-function? false type.kind = Pointer type.cconv = 100 type.spelling = "MPI_User_function *" type.is-variadic? false type.canonical.kind = Pointer type.canonical.cconv = 100 type.canonical.spelling = "void (*)(void *, void *, int *, int *)" type.canonical.is-variadic? false type.canonical.pointee.kind = FunctionProto type.canonical.pointee.cconv = 1 type.canonical.pointee.spelling = "void (void *, void *, int *, int *)" type.canonical.pointee.is-variadic? false type.canonical.pointee.return.kind = Void type.canonical.pointee.return.cconv = 100 type.canonical.pointee.return.spelling = "void" type.canonical.pointee.return.is-variadic? false type.pointee.kind = FunctionProto type.pointee.cconv = 1 type.pointee.spelling = "void (void *, void *, int *, MPI_Datatype *)" type.pointee.is-variadic? false type.pointee.canonical.kind = FunctionProto type.pointee.canonical.cconv = 1 type.pointee.canonical.spelling = "void (void *, void *, int *, int *)" type.pointee.canonical.is-variadic? false type.pointee.canonical.return.kind = Void type.pointee.canonical.return.cconv = 100 type.pointee.canonical.return.spelling = "void" type.pointee.canonical.return.is-variadic? false type.pointee.return.kind = Void type.pointee.return.cconv = 100 type.pointee.return.spelling = "void" type.pointee.return.is-variadic? false ( kind = TypeRef spelling = "MPI_User_function" location = test.h:18:5 is-definition? false is-declaration? false is-inlined-function? false referenced.kind = TypedefDecl referenced.spelling = "MPI_User_function" referenced.location = test.h:9:9 referenced.is-definition? true referenced.is-declaration? true referenced.is-inlined-function? false referenced.usr = "c:test.h@T@MPI_User_function" referenced.typedef-type = FunctionProto referenced.ret-type = Void referenced.semantic-parent.kind = TranslationUnit referenced.semantic-parent.spelling = "test.h" referenced.semantic-parent.location = builtin definitions referenced.semantic-parent.is-definition? false referenced.semantic-parent.is-declaration? false referenced.semantic-parent.is-inlined-function? false type.kind = FunctionProto type.cconv = 1 type.spelling = "void (void *, void *, int *, MPI_Datatype *)" type.is-variadic? false type.canonical.kind = FunctionProto type.canonical.cconv = 1 type.canonical.spelling = "void (void *, void *, int *, int *)" type.canonical.is-variadic? false type.canonical.return.kind = Void type.canonical.return.cconv = 100 type.canonical.return.spelling = "void" type.canonical.return.is-variadic? false type.return.kind = Void type.return.cconv = 100 type.return.spelling = "void" type.return.is-variadic? false ) ) ( kind = ParmDecl spelling = "commute" location = test.h:19:9 is-definition? true is-declaration? true is-inlined-function? false usr = "c:test.h@314@F@MPI_Op_create@commute" semantic-parent.kind = FunctionDecl semantic-parent.spelling = "MPI_Op_create" semantic-parent.location = test.h:17:1 semantic-parent.is-definition? false semantic-parent.is-declaration? true semantic-parent.is-inlined-function? false semantic-parent.usr = "c:@F@MPI_Op_create" semantic-parent.number-of-args = 3 semantic-parent.ret-type = Int semantic-parent.semantic-parent.kind = TranslationUnit semantic-parent.semantic-parent.spelling = "test.h" semantic-parent.semantic-parent.location = builtin definitions semantic-parent.semantic-parent.is-definition? false semantic-parent.semantic-parent.is-declaration? false semantic-parent.semantic-parent.is-inlined-function? false type.kind = Int type.cconv = 100 type.spelling = "int" type.is-variadic? false ) ( kind = ParmDecl spelling = "op" location = test.h:20:13 is-definition? true is-declaration? true is-inlined-function? false usr = "c:test.h@332@F@MPI_Op_create@op" semantic-parent.kind = FunctionDecl semantic-parent.spelling = "MPI_Op_create" semantic-parent.location = test.h:17:1 semantic-parent.is-definition? false semantic-parent.is-declaration? true semantic-parent.is-inlined-function? false semantic-parent.usr = "c:@F@MPI_Op_create" semantic-parent.number-of-args = 3 semantic-parent.ret-type = Int semantic-parent.semantic-parent.kind = TranslationUnit semantic-parent.semantic-parent.spelling = "test.h" semantic-parent.semantic-parent.location = builtin definitions semantic-parent.semantic-parent.is-definition? false semantic-parent.semantic-parent.is-declaration? false semantic-parent.semantic-parent.is-inlined-function? false type.kind = Pointer type.cconv = 100 type.spelling = "MPI_Op *" type.is-variadic? false type.canonical.kind = Pointer type.canonical.cconv = 100 type.canonical.spelling = "int *" type.canonical.is-variadic? false type.canonical.pointee.kind = Int type.canonical.pointee.cconv = 100 type.canonical.pointee.spelling = "int" type.canonical.pointee.is-variadic? false type.pointee.kind = Typedef type.pointee.cconv = 100 type.pointee.spelling = "MPI_Op" type.pointee.is-variadic? false type.pointee.canonical.kind = Int type.pointee.canonical.cconv = 100 type.pointee.canonical.spelling = "int" type.pointee.canonical.is-variadic? false ( kind = TypeRef spelling = "MPI_Op" location = test.h:20:5 is-definition? false is-declaration? false is-inlined-function? false referenced.kind = TypedefDecl referenced.spelling = "MPI_Op" referenced.location = test.h:5:13 referenced.is-definition? true referenced.is-declaration? true referenced.is-inlined-function? false referenced.usr = "c:test.h@T@MPI_Op" referenced.typedef-type = Int referenced.semantic-parent.kind = TranslationUnit referenced.semantic-parent.spelling = "test.h" referenced.semantic-parent.location = builtin definitions referenced.semantic-parent.is-definition? false referenced.semantic-parent.is-declaration? false referenced.semantic-parent.is-inlined-function? false type.kind = Typedef type.cconv = 100 type.spelling = "MPI_Op" type.is-variadic? false type.canonical.kind = Int type.canonical.cconv = 100 type.canonical.spelling = "int" type.canonical.is-variadic? false type.declaration.kind = TypedefDecl type.declaration.spelling = "MPI_Op" type.declaration.location = test.h:5:13 type.declaration.is-definition? true type.declaration.is-declaration? true type.declaration.is-inlined-function? false type.declaration.usr = "c:test.h@T@MPI_Op" type.declaration.typedef-type = Int type.declaration.semantic-parent.kind = TranslationUnit type.declaration.semantic-parent.spelling = "test.h" type.declaration.semantic-parent.location = builtin definitions type.declaration.semantic-parent.is-definition? false type.declaration.semantic-parent.is-declaration? false type.declaration.semantic-parent.is-inlined-function? false ) ) ) /* automatically generated by rust-bindgen */ pub type MPI_Datatype = ::std::os::raw::c_int; pub type MPI_Op = ::std::os::raw::c_int; extern "C" { pub fn MPI_Op_create( user_fn: ::std::option::Option, commute: ::std::os::raw::c_int, op: *mut MPI_Op, ) -> ::std::os::raw::c_int; }