Indeed, you use CAMLlocal to declare the result, and, typically CAMLreturn and the end of the function (CAMLdrop is a low-level macro which is not documented if I’m not wrong).
I should have mentioned this before, but if you are writing C bindings you should read the official docs OCaml - Interfacing C with OCaml which are full of useful information.
Cheers,
Nicolas