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

static const struct xlat aclcmds[] = {
#if defined(SETACL) || (defined(HAVE_DECL_SETACL) && HAVE_DECL_SETACL)
	XLAT(SETACL),
#endif
#if defined(GETACL) || (defined(HAVE_DECL_GETACL) && HAVE_DECL_GETACL)
	XLAT(GETACL),
#endif
#if defined(GETACLCNT) || (defined(HAVE_DECL_GETACLCNT) && HAVE_DECL_GETACLCNT)
	XLAT(GETACLCNT),
#endif
#if defined(ACL_GET) || (defined(HAVE_DECL_ACL_GET) && HAVE_DECL_ACL_GET)
	XLAT(ACL_GET),
#endif
#if defined(ACL_SET) || (defined(HAVE_DECL_ACL_SET) && HAVE_DECL_ACL_SET)
	XLAT(ACL_SET),
#endif
#if defined(ACL_CNT) || (defined(HAVE_DECL_ACL_CNT) && HAVE_DECL_ACL_CNT)
	XLAT(ACL_CNT),
#endif
	XLAT_END
};
