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

static const struct xlat key_spec[] = {
#if defined(KEY_SPEC_THREAD_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_THREAD_KEYRING) && HAVE_DECL_KEY_SPEC_THREAD_KEYRING)
	XLAT(KEY_SPEC_THREAD_KEYRING),
#endif
#if defined(KEY_SPEC_PROCESS_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_PROCESS_KEYRING) && HAVE_DECL_KEY_SPEC_PROCESS_KEYRING)
	XLAT(KEY_SPEC_PROCESS_KEYRING),
#endif
#if defined(KEY_SPEC_SESSION_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_SESSION_KEYRING) && HAVE_DECL_KEY_SPEC_SESSION_KEYRING)
	XLAT(KEY_SPEC_SESSION_KEYRING),
#endif
#if defined(KEY_SPEC_USER_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_USER_KEYRING) && HAVE_DECL_KEY_SPEC_USER_KEYRING)
	XLAT(KEY_SPEC_USER_KEYRING),
#endif
#if defined(KEY_SPEC_USER_SESSION_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_USER_SESSION_KEYRING) && HAVE_DECL_KEY_SPEC_USER_SESSION_KEYRING)
	XLAT(KEY_SPEC_USER_SESSION_KEYRING),
#endif
#if defined(KEY_SPEC_GROUP_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_GROUP_KEYRING) && HAVE_DECL_KEY_SPEC_GROUP_KEYRING)
	XLAT(KEY_SPEC_GROUP_KEYRING),
#endif
#if defined(KEY_SPEC_REQKEY_AUTH_KEY) || (defined(HAVE_DECL_KEY_SPEC_REQKEY_AUTH_KEY) && HAVE_DECL_KEY_SPEC_REQKEY_AUTH_KEY)
	XLAT(KEY_SPEC_REQKEY_AUTH_KEY),
#endif
#if defined(KEY_SPEC_REQUESTOR_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_REQUESTOR_KEYRING) && HAVE_DECL_KEY_SPEC_REQUESTOR_KEYRING)
	XLAT(KEY_SPEC_REQUESTOR_KEYRING),
#endif
	XLAT_END
};
