#ifndef FRIIDUMP_LINUX_RAWIO_H_INCLUDED
#define FRIIDUMP_LINUX_RAWIO_H_INCLUDED

#include <stddef.h>

#ifdef __cplusplus
extern "C" {
#endif

#define FRIIDUMP_LINUX_CAP_SYS_RAWIO 17

typedef enum {
    FRIIDUMP_LINUX_RAWIO_UNKNOWN = -1,
    FRIIDUMP_LINUX_RAWIO_MISSING = 0,
    FRIIDUMP_LINUX_RAWIO_PRESENT = 1
} friidump_linux_rawio_state;

friidump_linux_rawio_state friidump_linux_rawio_state_from_status_file(
    const char *status_path,
    unsigned long long *effective_mask);

friidump_linux_rawio_state friidump_linux_rawio_effective(
    unsigned long long *effective_mask);

int friidump_linux_executable_path(char *buffer, size_t buffer_size);

#ifdef __cplusplus
}
#endif

#endif
