File: init.c

package info (click to toggle)
r-cran-bitops 1.0-9-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 148 kB
  • sloc: ansic: 231; sh: 13; makefile: 2
file content (48 lines) | stat: -rw-r--r-- 946 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <R.h>
#include <Rinternals.h>
#include <R_ext/Rdynload.h>

#include "bit-ops.h"

#define CDEF(name)  {#name, (DL_FUNC) &name, sizeof(name ## _typ)/sizeof(name ## _typ[0]), name ##_typ}

#define CALLDEF(name, n)  {#name, (DL_FUNC) &name, n}

static R_NativePrimitiveArgType cksum_typ[3] = {
    INTSXP, STRSXP, REALSXP
};

static const R_CMethodDef CEntries[]  = {
    CDEF(cksum),

    {NULL, NULL, 0}
};

static R_CallMethodDef CallEntries[] = {
    CALLDEF(bitFlip, 2),
    CALLDEF(bitAnd, 2),
    CALLDEF(bitOr, 2),
    CALLDEF(bitXor, 2),
    CALLDEF(bitShiftL, 2),
    CALLDEF(bitShiftR, 2),

    {NULL, NULL, 0}
};

/**
 * register routines
 * @param dll pointer
 * @return none
 * @author Martin Maechler
 */
void
#ifdef HAVE_VISIBILITY_ATTRIBUTE
__attribute__ ((visibility ("default")))
#endif
R_init_bitops(DllInfo *dll)
{
    R_registerRoutines(dll, CEntries, CallEntries, NULL, NULL);
    R_useDynamicSymbols(dll, FALSE);
}