traditionally, in C, a boolean is represented with a type int. in C ++, a type is defined bool, but pay attention to the lower case "b". if your argument is of type bool(note the uppercase "B"), you should have a class declaration somewhere (in your C ++ library) that will tell you more about the implementation of this type. as a rule, such a Bool class is compatible with the standard bool type through some language artifact: the Bool class does not define a virtual function and stores its value in a member that is reasonably placed first in the class definition.
I have not tested it, but I would say that you can go with type int. do a test to make sure it is accepted by the C ++ function. to convert from boolean to intyou can use something like Interfaces.C.int(Boolean'Pos(your_bool_value)).
, , Ada [B.3.62]: An implementation may provide additional declarations in the C interface packages., Interfaces.C, bool.