#ifndef __FAIL_CONFIG_HPP__
  #define __FAIL_CONFIG_HPP__

// #define / #undef the following configuration macros to enable/disable the
// various event sources, fault injection sinks, and miscellaneous other
// features.

// Event sources
#cmakedefine CONFIG_EVENT_BREAKPOINTS
#cmakedefine CONFIG_EVENT_BREAKPOINTS_RANGE
#cmakedefine CONFIG_EVENT_MEMREAD
#cmakedefine CONFIG_EVENT_MEMWRITE
#cmakedefine CONFIG_EVENT_GUESTSYS
#cmakedefine CONFIG_EVENT_IOPORT
#cmakedefine CONFIG_EVENT_INTERRUPT
#cmakedefine CONFIG_EVENT_TRAP
#cmakedefine CONFIG_EVENT_JUMP

// Performance options
#cmakedefine CONFIG_FAST_BREAKPOINTS
#cmakedefine CONFIG_FAST_WATCHPOINTS

// Save/restore functionality
#cmakedefine CONFIG_SR_RESTORE
#cmakedefine CONFIG_SR_SAVE
#cmakedefine CONFIG_SR_REBOOT

// Fail configuration
#cmakedefine CONFIG_BOCHS_NON_VERBOSE
#cmakedefine CONFIG_BOCHS_NO_ABORT
#cmakedefine CONFIG_BOCHS_COMPRESS_STATE
#cmakedefine CONFIG_SUPPRESS_INTERRUPTS
#cmakedefine CONFIG_FIRE_INTERRUPTS
#cmakedefine CONFIG_DISABLE_KEYB_INTERRUPTS
#cmakedefine SERVER_PERFORMANCE_MEASURE
#define SERVER_COMM_HOSTNAME            "@SERVER_COMM_HOSTNAME@"
#define SERVER_COMM_TCP_PORT            @SERVER_COMM_TCP_PORT@
#define SERVER_OUT_QUEUE_SIZE           @SERVER_OUT_QUEUE_SIZE@
#define SERVER_PERF_LOG_PATH            "@SERVER_PERF_LOG_PATH@"
#define SERVER_PERF_STEPPING_SEC        @SERVER_PERF_STEPPING_SEC@
#define CLIENT_RAND_BACKOFF_TSTART      @CLIENT_RAND_BACKOFF_TSTART@
#define CLIENT_RAND_BACKOFF_TEND        @CLIENT_RAND_BACKOFF_TEND@
#define CLIENT_RETRY_COUNT              @CLIENT_RETRY_COUNT@
#define CLIENT_JOB_REQUEST_SEC          @CLIENT_JOB_REQUEST_SEC@
#define CLIENT_JOB_LIMIT                @CLIENT_JOB_LIMIT@
#define PROJECT_VERSION                 "@PROJECT_VERSION@"
#define FAIL_VERSION PROJECT_VERSION

#endif // __FAIL_CONFIG_HPP__
