/* Generated by ./xlat/gen.sh from ./xlat/syslog_action_type.in; do not edit. */

#include "gcc_compat.h"
#include "static_assert.h"


#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat syslog_action_type in mpers mode

# else

static
const struct xlat syslog_action_type[] = {
 XLAT(SYSLOG_ACTION_CLOSE),
 XLAT(SYSLOG_ACTION_OPEN),
 XLAT(SYSLOG_ACTION_READ),
 XLAT(SYSLOG_ACTION_READ_ALL),
 XLAT(SYSLOG_ACTION_READ_CLEAR),
 XLAT(SYSLOG_ACTION_CLEAR),
 XLAT(SYSLOG_ACTION_CONSOLE_OFF),
 XLAT(SYSLOG_ACTION_CONSOLE_ON),
 XLAT(SYSLOG_ACTION_CONSOLE_LEVEL),
 XLAT(SYSLOG_ACTION_SIZE_UNREAD),
 XLAT(SYSLOG_ACTION_SIZE_BUFFER),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
