Graft C ABI primitives

Graft C ABI primitives

C-compatible manifest and export conventions shared by plugin-in and host-out graft surfaces.

Classes

NameDescription
icy_graft_manifestWhat a graft plugin exports under ICY_GRAFT_PLUGIN_MANIFEST_SYMBOL: its ABI version, file name, ID, name, version, runtime and entry point.

Macros


ICY_GRAFT_EXPORT

#define ICY_GRAFT_EXPORT

Defined in src/graft/include/icy/graft/abi.h:26


ICY_GRAFT_EXTERN_C_BEGIN

#define ICY_GRAFT_EXTERN_C_BEGIN

Defined in src/graft/include/icy/graft/abi.h:35


ICY_GRAFT_EXTERN_C_END

#define ICY_GRAFT_EXTERN_C_END

Defined in src/graft/include/icy/graft/abi.h:36


ICY_GRAFT_MANIFEST_STORAGE

#define ICY_GRAFT_MANIFEST_STORAGE ICY_GRAFT_EXPORT const

Defined in src/graft/include/icy/graft/abi.h:37


ICY_GRAFT_ABI_VERSION

#define ICY_GRAFT_ABI_VERSION 1u

Defined in src/graft/include/icy/graft/abi.h:41


ICY_GRAFT_PLUGIN_MANIFEST_SYMBOL

#define ICY_GRAFT_PLUGIN_MANIFEST_SYMBOL "icy_graft_manifest"

Defined in src/graft/include/icy/graft/abi.h:43


ICY_GRAFT_RUNTIME_NATIVE

#define ICY_GRAFT_RUNTIME_NATIVE "native"

Defined in src/graft/include/icy/graft/abi.h:45


ICY_GRAFT_RUNTIME_WORKER

#define ICY_GRAFT_RUNTIME_WORKER "worker"

Defined in src/graft/include/icy/graft/abi.h:46


ICY_GRAFT_RUNTIME_HOST

#define ICY_GRAFT_RUNTIME_HOST "host"

Defined in src/graft/include/icy/graft/abi.h:47


ICY_GRAFT_MANIFEST

#define ICY_GRAFT_MANIFEST(symbolName, surfaceId, surfaceName, surfaceVersion, runtimeKind, entrypointName) ICY_GRAFT_EXTERN_C_BEGIN                                                                      \
    ICY_GRAFT_MANIFEST_STORAGEicy_graft_manifest_t symbolName = {                                \
        ICY_GRAFT_ABI_VERSION,                                                                    \
        __FILE__,                                                                                 \
        surfaceId,                                                                                \
        surfaceName,                                                                              \
        surfaceVersion,                                                                           \
        runtimeKind,                                                                              \
        entrypointName,                                                                           \
    };                                                                                            \
    ICY_GRAFT_EXTERN_C_END

Defined in src/graft/include/icy/graft/abi.h:74


ICY_GRAFT_HOST_SURFACE

#define ICY_GRAFT_HOST_SURFACE(manifestSymbol, surfaceId, surfaceName, surfaceVersion, entrypointName) ICY_GRAFT_MANIFEST(manifestSymbol,                                                              \
                       surfaceId,                                                                   \
                       surfaceName,                                                                 \
                       surfaceVersion,                                                              \
                       ICY_GRAFT_RUNTIME_HOST,                                                       \
                       entrypointName)

Defined in src/graft/include/icy/graft/abi.h:88

Enumerations

NameDescription
icy_graft_status

icy_graft_status

enum icy_graft_status

Defined in src/graft/include/icy/graft/abi.h:64

ValueDescription
ICY_GRAFT_STATUS_OK
ICY_GRAFT_STATUS_ERROR
ICY_GRAFT_STATUS_INVALID_ARGUMENT
ICY_GRAFT_STATUS_INVALID_STATE
ICY_GRAFT_STATUS_UNSUPPORTED

Typedefs

ReturnNameDescription
struct icy_graft_manifesticy_graft_manifest_tWhat a graft plugin exports under ICY_GRAFT_PLUGIN_MANIFEST_SYMBOL: its ABI version, file name, ID, name, version, runtime and entry point.
enum icy_graft_statusicy_graft_status_t

icy_graft_manifest_t

using icy_graft_manifest_t = struct icy_graft_manifest

Type: struct icy_graft_manifest

Defined in src/graft/include/icy/graft/abi.h:61

What a graft plugin exports under ICY_GRAFT_PLUGIN_MANIFEST_SYMBOL: its ABI version, file name, ID, name, version, runtime and entry point.


icy_graft_status_t

using icy_graft_status_t = enum icy_graft_status

Type: enum icy_graft_status

Defined in src/graft/include/icy/graft/abi.h:71

Edit this page