Skip to main content
FFIType provides type constants used in function definitions.

Constants

ConstantCodeTS TypeC Type
FFIType.char / int8_t / i8cnumberchar / int8_t
FFIType.uint8_t / u8inumberuint8_t
FFIType.int16_t / i16inumberint16_t
FFIType.uint16_t / u16inumberuint16_t
FFIType.int32 / i32 / int / uint32_t / u32inumberint32_t
FFIType.int64 / i64 / int64_t / uint64_t / u64lnumberint64_t / uint64_t
FFIType.double / f64dnumberdouble
FFIType.float / f32fnumberfloat
FFIType.boolbnumberbool
FFIType.CStringsstringconst char*
FFIType.ptr / pointer / function / bufferpnumbervoid*
FFIType.callbackkJSCallbackint32_t (*)(int32_t)
FFIType.usizelnumbersize_t / uintptr_t

Usage

import { FFIType } from 'arkffi';

const def = {
  args: [FFIType.int32, FFIType.double, FFIType.CString],
  returns: FFIType.double,
};

// String literals are also accepted (shorthand):
// args: ['i', 'd', 's']
// returns: 'd'

ARM64 Register Mapping

C TypeTS TypeRegister
int32_t, bool, charnumberx0-x7
int64_t, uint64_t, void*numberx0-x7
float, doublenumberv0-v7
const char*stringx0-x7 (pointer)