Skip to content

C Device API

Initialise and drive one standard Portable Frame Protocol endpoint.

corelib_context_size

c
size_t corelib_context_size(void);

Returns the bytes required for opaque endpoint context storage.

Required context bytes.

corelib_context_alignment

c
size_t corelib_context_alignment(void);

Returns the alignment required for endpoint context storage.

Required byte alignment.

corelib_pending_request_entry_size

c
size_t corelib_pending_request_entry_size(void);

Returns the bytes required for one pending-request entry.

Required entry bytes.

corelib_init

c
corelib_status_t corelib_init(void *context_memory, size_t context_memory_size, const corelib_config_t *config, corelib_context_t **context);

Initialises an endpoint in caller-owned memory.

context_memory Suitably aligned writable context storage. context_memory_size Available context storage bytes. config Endpoint configuration copied by Corelib. context Receives the initialised opaque context on success. Status describing validation or initialisation success.

corelib_reset

c
corelib_status_t corelib_reset(corelib_context_t *context);

Clears protocol state while retaining configuration and registered link.

context Initialised context. Operation status.

corelib_tick

c
corelib_status_t corelib_tick(corelib_context_t *context, uint64_t monotonic_ms);

Advances deadlines, heartbeats, and queued-frame transmission.

context Initialised context. monotonic_ms Non-decreasing monotonic time. Operation status.

c
corelib_status_t corelib_add_link(corelib_context_t *context, corelib_link_id_t link_id, void *transport_context);

Registers the endpoint's single dedicated PFP link.

context Initialised context. link_id Non-zero application link identifier. transport_context Opaque value returned to the send callback. Operation status.

c
corelib_status_t corelib_remove_link(corelib_context_t *context, corelib_link_id_t link_id);

Removes the registered link and clears its protocol state.

context Initialised context. link_id Registered link identifier. Operation status.

corelib_receive_frame

c
corelib_status_t corelib_receive_frame(corelib_context_t *context, corelib_link_id_t link_id, const uint8_t frame[CORELIB_FRAME_SIZE], uint64_t monotonic_ms);

Processes one complete 64-byte PFP frame.

context Initialised context. link_id Receiving link. frame Complete borrowed frame. monotonic_ms Non-decreasing monotonic time. Frame-processing status.

corelib_accept_bootstrap_assignment

c
corelib_status_t corelib_accept_bootstrap_assignment(corelib_context_t *context, const corelib_bootstrap_assignment_t *assignment, uint64_t monotonic_ms);

Activates a profile-delivered downstream assignment.

context Initialised inactive endpoint. assignment Assignment matching this node and link. monotonic_ms Non-decreasing monotonic time. Assignment validation status.

corelib_respond

c
corelib_status_t corelib_respond(corelib_context_t *context, const corelib_transaction_id_t *request, corelib_transaction_result_t result, const uint8_t *data, size_t data_size);

Sends an application response for a pending request.

context Initialised context. request Retained request identity. result Application result. data Optional borrowed encoded payload. data_size Payload bytes. Queueing or validation status.

corelib_publish

c
corelib_status_t corelib_publish(corelib_context_t *context, bool common, uint32_t share_id, const uint8_t *data, size_t data_size);

Publishes an encoded Common or Share payload.

context Initialised context. common True for Common and false for Share. share_id Schema identifier. data Borrowed encoded payload. data_size Payload bytes. Queueing or validation status.

corelib_version

c
corelib_version_t corelib_version(void);

Returns compile-time Corelib and protocol versions.

Version values.

corelib_usage

c
corelib_status_t corelib_usage(const corelib_context_t *context, corelib_usage_t *usage);

Reads current resource usage.

context Initialised context. usage Receives a consistent usage snapshot. Operation status.

corelib_limits

c
corelib_status_t corelib_limits(const corelib_context_t *context, corelib_limits_t *limits);

Reads fixed context capacities.

context Initialised context. limits Receives configured limits. Operation status.

Released under the MIT Licence.