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 }