typedef PK_ERROR_code_t (*PK_MARK_open_f_t)(PK_MARK_t, PK_LOGICAL_t); typedef PK_ERROR_code_t (*PK_MARK_close_f_t)(PK_MARK_t); typedef PK_ERROR_code_t (*PK_MARK_write_f_t)(PK_MARK_t, int, const char*); typedef PK_ERROR_code_t (*PK_MARK_read_f_t)(PK_MARK_t, int, char*); typedef PK_ERROR_code_t (*PK_MARK_check_f_t)(PK_MARK_t, PK_LOGICAL_t *); typedef PK_ERROR_code_t (*PK_MARK_delete_f_t)(PK_MARK_t); struct PK_MARK_frustrum_s { PK_MARK_open_f_t open_fn; --- open a rollmark for read or write PK_MARK_close_f_t close_fn; --- close a rollmark PK_MARK_write_f_t write_fn; --- write data to a rollmark PK_MARK_read_f_t read_fn; --- read data from a rollmark PK_MARK_check_f_t check_fn; --- check if mark is still valid PK_MARK_delete_f_t delete_fn; --- delete a rollmark }; typedef struct PK_MARK_frustrum_s PK_MARK_frustrum_t; This data structure holds pointers to six rollmark functions that the application wishes to register with the PK using PK_MARK_start.