X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=augeas-c.c;h=f3f52231886f66220b0f82137f95ae66da74ad72;hb=bb20badcb781cbecc9e33a352d0078545d27a967;hp=59a3ef4f02bc54008c0fe6a69374abbe2090be9d;hpb=8e1cf339a7d6deae00e668da01ee2bce3031b6cc;p=ocaml-augeas.git diff --git a/augeas-c.c b/augeas-c.c index 59a3ef4..f3f5223 100644 --- a/augeas-c.c +++ b/augeas-c.c @@ -29,6 +29,30 @@ #include #include +#ifdef __GNUC__ + #define NORETURN __attribute__ ((noreturn)) +#else + #define NORETURN +#endif + +extern CAMLprim value ocaml_augeas_create (value rootv, value loadpathv, value flagsv); +extern CAMLprim value ocaml_augeas_close (value tv); +extern CAMLprim value ocaml_augeas_get (value tv, value pathv); +extern CAMLprim value ocaml_augeas_exists (value tv, value pathv); +extern CAMLprim value ocaml_augeas_insert (value tv, value beforev, value pathv, value labelv); +extern CAMLprim value ocaml_augeas_rm (value tv, value pathv); +extern CAMLprim value ocaml_augeas_match (value tv, value pathv); +extern CAMLprim value ocaml_augeas_count_matches (value tv, value pathv); +extern CAMLprim value ocaml_augeas_save (value tv); +extern CAMLprim value ocaml_augeas_load (value tv); +extern CAMLprim value ocaml_augeas_set (value tv, value pathv, value valuev); +extern CAMLprim value ocaml_augeas_transform (value tv, value lensv, value filev, value modev); +extern CAMLprim value ocaml_augeas_source (value tv, value pathv) +#ifndef HAVE_AUG_SOURCE + NORETURN +#endif +; + typedef augeas *augeas_t; /* Map C aug_errcode_t to OCaml error_code. */ @@ -109,6 +133,10 @@ static const int flag_map[] = { /* AugNoStdinc */ AUG_NO_STDINC, /* AugSaveNoop */ AUG_SAVE_NOOP, /* AugNoLoad */ AUG_NO_LOAD, + /* AugNoModlAutoload */ AUG_NO_MODL_AUTOLOAD, + /* AugEnableSpan */ AUG_ENABLE_SPAN, + /* AugNoErrClose */ AUG_NO_ERR_CLOSE, + /* AugTraceModuleLoading */ AUG_TRACE_MODULE_LOADING, }; /* Wrap and unwrap augeas_t handles, with a finalizer. */