|
Packit |
4e8bc4 |
#ifndef RESTART_H
|
|
Packit |
4e8bc4 |
#define RESTART_H
|
|
Packit |
4e8bc4 |
|
|
Packit |
4e8bc4 |
#define RESTART_TAG_MAXLEN 255
|
|
Packit |
4e8bc4 |
|
|
Packit |
4e8bc4 |
// Track the pointer size for restart fiddling.
|
|
Packit |
4e8bc4 |
#if SIZEOF_VOID_P == 8
|
|
Packit |
4e8bc4 |
typedef uint64_t mc_ptr_t;
|
|
Packit |
4e8bc4 |
#else
|
|
Packit |
4e8bc4 |
typedef uint32_t mc_ptr_t;
|
|
Packit |
4e8bc4 |
#endif
|
|
Packit |
4e8bc4 |
|
|
Packit |
4e8bc4 |
enum restart_get_kv_ret {
|
|
Packit |
4e8bc4 |
RESTART_OK=0, RESTART_NOTAG, RESTART_BADLINE, RESTART_DONE
|
|
Packit |
4e8bc4 |
};
|
|
Packit |
4e8bc4 |
|
|
Packit |
4e8bc4 |
typedef int (*restart_check_cb)(const char *tag, void *ctx, void *data);
|
|
Packit |
4e8bc4 |
typedef int (*restart_save_cb)(const char *tag, void *ctx, void *data);
|
|
Packit |
4e8bc4 |
void restart_register(const char *tag, restart_check_cb ccb, restart_save_cb scb, void *data);
|
|
Packit |
4e8bc4 |
|
|
Packit |
4e8bc4 |
void restart_set_kv(void *ctx, const char *key, const char *fmt, ...);
|
|
Packit |
4e8bc4 |
enum restart_get_kv_ret restart_get_kv(void *ctx, char **key, char **val);
|
|
Packit |
4e8bc4 |
|
|
Packit |
4e8bc4 |
bool restart_mmap_open(const size_t limit, const char *file, void **mem_base);
|
|
Packit |
4e8bc4 |
void restart_mmap_close(void);
|
|
Packit |
4e8bc4 |
unsigned int restart_fixup(void *old_base);
|
|
Packit |
4e8bc4 |
|
|
Packit |
4e8bc4 |
#endif
|