Mercurial > pub > dyncall > bindings
comparison R/rdyncall/src/rpackage.c @ 0:0cfcc391201f
initial from svn dyncall-1745
| author | Daniel Adler |
|---|---|
| date | Thu, 19 Mar 2015 22:26:28 +0100 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:0cfcc391201f |
|---|---|
| 1 /** =========================================================================== | |
| 2 ** R-Package: rdyncall | |
| 3 ** File: src/rpackage.c | |
| 4 ** Description: R package registry | |
| 5 **/ | |
| 6 | |
| 7 #include <Rinternals.h> | |
| 8 #include <R_ext/Rdynload.h> | |
| 9 | |
| 10 /** --------------------------------------------------------------------------- | |
| 11 ** Package contents: | |
| 12 */ | |
| 13 | |
| 14 /* rdyncall.c */ | |
| 15 SEXP r_new_callvm(SEXP callmode, SEXP size); | |
| 16 SEXP r_free_callvm(SEXP callvm); | |
| 17 SEXP r_dyncall(SEXP args); /* .External() with args = callvm, address, signature, args */ | |
| 18 | |
| 19 /* rdynload.c */ | |
| 20 SEXP r_dynload(SEXP libpath); | |
| 21 SEXP r_dynsym(SEXP libobj, SEXP symname, SEXP protectlib); | |
| 22 SEXP r_dynunload(SEXP libobj); | |
| 23 | |
| 24 /* rpack.c */ | |
| 25 SEXP r_pack(SEXP ptr, SEXP offset, SEXP sig, SEXP value); | |
| 26 SEXP r_unpack(SEXP ptr, SEXP offset, SEXP sig); | |
| 27 | |
| 28 /* rcallback.c */ | |
| 29 SEXP r_new_callback(SEXP sig, SEXP fun, SEXP rho, SEXP mode); | |
| 30 | |
| 31 /* rutils.c */ | |
| 32 SEXP r_asextptr(SEXP v); | |
| 33 SEXP r_isnullptr(SEXP x); | |
| 34 SEXP r_offsetPtr(SEXP x, SEXP offset); | |
| 35 | |
| 36 /* rutils_str.c */ | |
| 37 SEXP r_ptr2str(SEXP ptr); | |
| 38 SEXP r_strarrayptr(SEXP ptr); | |
| 39 SEXP r_strptr(SEXP x); | |
| 40 | |
| 41 /* rutils_float.c */ | |
| 42 SEXP r_as_floatraw(SEXP real); | |
| 43 SEXP r_floatraw2numeric(SEXP floatraw); | |
| 44 | |
| 45 /** --------------------------------------------------------------------------- | |
| 46 ** R Interface .External registry | |
| 47 */ | |
| 48 | |
| 49 R_ExternalMethodDef externalMethods[] = | |
| 50 { | |
| 51 /* --- rdyncall.c -------------------------------------------------------- */ | |
| 52 {"dyncall", (DL_FUNC) &r_dyncall, -1}, | |
| 53 /* --- end (sentinel) ---------------------------------------------------- */ | |
| 54 {NULL,NULL,0} | |
| 55 }; | |
| 56 | |
| 57 /** --------------------------------------------------------------------------- | |
| 58 ** R Interface .Call registry | |
| 59 */ | |
| 60 | |
| 61 R_CallMethodDef callMethods[] = | |
| 62 { | |
| 63 /* --- rdyncall.c -------------------------------------------------------- */ | |
| 64 {"new_callvm" , (DL_FUNC) &r_new_callvm , 2}, | |
| 65 {"free_callvm" , (DL_FUNC) &r_free_callvm , 1}, | |
| 66 /* --- rdynload.c -------------------------------------------------------- */ | |
| 67 {"dynload" , (DL_FUNC) &r_dynload , 1}, | |
| 68 {"dynsym" , (DL_FUNC) &r_dynsym , 3}, | |
| 69 {"dynunload" , (DL_FUNC) &r_dynunload , 1}, | |
| 70 /* --- rcallback.c ------------------------------------------------------- */ | |
| 71 {"new_callback" , (DL_FUNC) &r_new_callback , 3}, | |
| 72 /* --- rpack.c ----------------------------------------------------------- */ | |
| 73 {"pack" , (DL_FUNC) &r_pack , 4}, | |
| 74 {"unpack" , (DL_FUNC) &r_unpack , 3}, | |
| 75 /* --- rutils.c ---------------------------------------------------------- */ | |
| 76 {"asextptr" , (DL_FUNC) &r_asextptr , 1}, | |
| 77 {"isnullptr" , (DL_FUNC) &r_isnullptr , 1}, | |
| 78 {"offsetPtr" , (DL_FUNC) &r_offsetPtr , 2}, | |
| 79 /* --- rutils_str.c ------------------------------------------------------ */ | |
| 80 {"r_ptr2str" , (DL_FUNC) &r_ptr2str , 1}, | |
| 81 {"r_strarrayptr" , (DL_FUNC) &r_strarrayptr , 1}, | |
| 82 {"r_strptr" , (DL_FUNC) &r_strptr , 1}, | |
| 83 /* --- rutils_float.c ---------------------------------------------------- */ | |
| 84 {"r_as_floatraw" , (DL_FUNC) &r_as_floatraw , 1}, | |
| 85 {"r_floatraw2numeric" , (DL_FUNC) &r_floatraw2numeric , 1}, | |
| 86 /* --- end (sentinel) ---------------------------------------------------- */ | |
| 87 {NULL,NULL, 0} | |
| 88 }; | |
| 89 | |
| 90 /** --------------------------------------------------------------------------- | |
| 91 ** R Library entry: | |
| 92 */ | |
| 93 | |
| 94 void R_init_rdyncall(DllInfo *info) | |
| 95 { | |
| 96 R_registerRoutines(info, NULL, callMethods, NULL, externalMethods); | |
| 97 } | |
| 98 | |
| 99 void R_unload_rdyncall(DllInfo *info) | |
| 100 { | |
| 101 } |
