/* Generated by ./xlat/gen.sh from ./xlat/quotacmds.in; do not edit. */
#if !(defined(Q_V1_QUOTAON) || (defined(HAVE_DECL_Q_V1_QUOTAON) && HAVE_DECL_Q_V1_QUOTAON))
# define Q_V1_QUOTAON OLD_CMD(0x1)
#endif
#if !(defined(Q_V1_QUOTAOFF) || (defined(HAVE_DECL_Q_V1_QUOTAOFF) && HAVE_DECL_Q_V1_QUOTAOFF))
# define Q_V1_QUOTAOFF OLD_CMD(0x2)
#endif
#if !(defined(Q_V1_GETQUOTA) || (defined(HAVE_DECL_Q_V1_GETQUOTA) && HAVE_DECL_Q_V1_GETQUOTA))
# define Q_V1_GETQUOTA OLD_CMD(0x3)
#endif
#if !(defined(Q_V1_SETQUOTA) || (defined(HAVE_DECL_Q_V1_SETQUOTA) && HAVE_DECL_Q_V1_SETQUOTA))
# define Q_V1_SETQUOTA OLD_CMD(0x4)
#endif
#if !(defined(Q_V1_SETUSE) || (defined(HAVE_DECL_Q_V1_SETUSE) && HAVE_DECL_Q_V1_SETUSE))
# define Q_V1_SETUSE OLD_CMD(0x5)
#endif
#if !(defined(Q_V1_SYNC) || (defined(HAVE_DECL_Q_V1_SYNC) && HAVE_DECL_Q_V1_SYNC))
# define Q_V1_SYNC OLD_CMD(0x6)
#endif
#if !(defined(Q_SETQLIM) || (defined(HAVE_DECL_Q_SETQLIM) && HAVE_DECL_Q_SETQLIM))
# define Q_SETQLIM OLD_CMD(0x7)
#endif
#if !(defined(Q_V1_GETSTATS) || (defined(HAVE_DECL_Q_V1_GETSTATS) && HAVE_DECL_Q_V1_GETSTATS))
# define Q_V1_GETSTATS OLD_CMD(0x8)
#endif
#if !(defined(Q_V1_RSQUASH) || (defined(HAVE_DECL_Q_V1_RSQUASH) && HAVE_DECL_Q_V1_RSQUASH))
# define Q_V1_RSQUASH OLD_CMD(0x10)
#endif
#if !(defined(Q_V2_GETQUOTA) || (defined(HAVE_DECL_Q_V2_GETQUOTA) && HAVE_DECL_Q_V2_GETQUOTA))
# define Q_V2_GETQUOTA OLD_CMD(0xD)
#endif
#if !(defined(Q_V2_SETQUOTA) || (defined(HAVE_DECL_Q_V2_SETQUOTA) && HAVE_DECL_Q_V2_SETQUOTA))
# define Q_V2_SETQUOTA OLD_CMD(0xE)
#endif
#if !(defined(Q_V2_SETUSE) || (defined(HAVE_DECL_Q_V2_SETUSE) && HAVE_DECL_Q_V2_SETUSE))
# define Q_V2_SETUSE OLD_CMD(0xF)
#endif
#if !(defined(Q_V2_GETINFO) || (defined(HAVE_DECL_Q_V2_GETINFO) && HAVE_DECL_Q_V2_GETINFO))
# define Q_V2_GETINFO OLD_CMD(0x9)
#endif
#if !(defined(Q_V2_SETINFO) || (defined(HAVE_DECL_Q_V2_SETINFO) && HAVE_DECL_Q_V2_SETINFO))
# define Q_V2_SETINFO OLD_CMD(0xA)
#endif
#if !(defined(Q_V2_SETGRACE) || (defined(HAVE_DECL_Q_V2_SETGRACE) && HAVE_DECL_Q_V2_SETGRACE))
# define Q_V2_SETGRACE OLD_CMD(0xB)
#endif
#if !(defined(Q_V2_SETFLAGS) || (defined(HAVE_DECL_Q_V2_SETFLAGS) && HAVE_DECL_Q_V2_SETFLAGS))
# define Q_V2_SETFLAGS OLD_CMD(0xC)
#endif
#if !(defined(Q_V2_GETSTATS) || (defined(HAVE_DECL_Q_V2_GETSTATS) && HAVE_DECL_Q_V2_GETSTATS))
# define Q_V2_GETSTATS OLD_CMD(0x11)
#endif
#if !(defined(Q_SYNC) || (defined(HAVE_DECL_Q_SYNC) && HAVE_DECL_Q_SYNC))
# define Q_SYNC NEW_CMD(0x1)
#endif
#if !(defined(Q_QUOTAON) || (defined(HAVE_DECL_Q_QUOTAON) && HAVE_DECL_Q_QUOTAON))
# define Q_QUOTAON NEW_CMD(0x2)
#endif
#if !(defined(Q_QUOTAOFF) || (defined(HAVE_DECL_Q_QUOTAOFF) && HAVE_DECL_Q_QUOTAOFF))
# define Q_QUOTAOFF NEW_CMD(0x3)
#endif
#if !(defined(Q_GETFMT) || (defined(HAVE_DECL_Q_GETFMT) && HAVE_DECL_Q_GETFMT))
# define Q_GETFMT NEW_CMD(0x4)
#endif
#if !(defined(Q_GETINFO) || (defined(HAVE_DECL_Q_GETINFO) && HAVE_DECL_Q_GETINFO))
# define Q_GETINFO NEW_CMD(0x5)
#endif
#if !(defined(Q_SETINFO) || (defined(HAVE_DECL_Q_SETINFO) && HAVE_DECL_Q_SETINFO))
# define Q_SETINFO NEW_CMD(0x6)
#endif
#if !(defined(Q_GETQUOTA) || (defined(HAVE_DECL_Q_GETQUOTA) && HAVE_DECL_Q_GETQUOTA))
# define Q_GETQUOTA NEW_CMD(0x7)
#endif
#if !(defined(Q_SETQUOTA) || (defined(HAVE_DECL_Q_SETQUOTA) && HAVE_DECL_Q_SETQUOTA))
# define Q_SETQUOTA NEW_CMD(0x8)
#endif
#if !(defined(Q_GETNEXTQUOTA) || (defined(HAVE_DECL_Q_GETNEXTQUOTA) && HAVE_DECL_Q_GETNEXTQUOTA))
# define Q_GETNEXTQUOTA NEW_CMD(0x9)
#endif
#if !(defined(Q_XQUOTAON) || (defined(HAVE_DECL_Q_XQUOTAON) && HAVE_DECL_Q_XQUOTAON))
# define Q_XQUOTAON XQM_CMD(0x1)
#endif
#if !(defined(Q_XQUOTAOFF) || (defined(HAVE_DECL_Q_XQUOTAOFF) && HAVE_DECL_Q_XQUOTAOFF))
# define Q_XQUOTAOFF XQM_CMD(0x2)
#endif
#if !(defined(Q_XGETQUOTA) || (defined(HAVE_DECL_Q_XGETQUOTA) && HAVE_DECL_Q_XGETQUOTA))
# define Q_XGETQUOTA XQM_CMD(0x3)
#endif
#if !(defined(Q_XSETQLIM) || (defined(HAVE_DECL_Q_XSETQLIM) && HAVE_DECL_Q_XSETQLIM))
# define Q_XSETQLIM XQM_CMD(0x4)
#endif
#if !(defined(Q_XGETQSTAT) || (defined(HAVE_DECL_Q_XGETQSTAT) && HAVE_DECL_Q_XGETQSTAT))
# define Q_XGETQSTAT XQM_CMD(0x5)
#endif
#if !(defined(Q_XQUOTARM) || (defined(HAVE_DECL_Q_XQUOTARM) && HAVE_DECL_Q_XQUOTARM))
# define Q_XQUOTARM XQM_CMD(0x6)
#endif
#if !(defined(Q_XQUOTASYNC) || (defined(HAVE_DECL_Q_XQUOTASYNC) && HAVE_DECL_Q_XQUOTASYNC))
# define Q_XQUOTASYNC XQM_CMD(0x7)
#endif
#if !(defined(Q_XGETQSTATV) || (defined(HAVE_DECL_Q_XGETQSTATV) && HAVE_DECL_Q_XGETQSTATV))
# define Q_XGETQSTATV XQM_CMD(0x8)
#endif
#if !(defined(Q_XGETNEXTQUOTA) || (defined(HAVE_DECL_Q_XGETNEXTQUOTA) && HAVE_DECL_Q_XGETNEXTQUOTA))
# define Q_XGETNEXTQUOTA XQM_CMD(0x9)
#endif

#ifdef IN_MPERS

# error static const struct xlat quotacmds in mpers mode

#else

static
const struct xlat quotacmds[] = {
 XLAT(Q_V1_QUOTAON),
 XLAT(Q_V1_QUOTAOFF),
 XLAT(Q_V1_GETQUOTA),
 XLAT(Q_V1_SETQUOTA),
 XLAT(Q_V1_SETUSE),
 XLAT(Q_V1_SYNC),
 XLAT(Q_SETQLIM),
 XLAT(Q_V1_GETSTATS),
 XLAT(Q_V1_RSQUASH),

 XLAT(Q_V2_GETQUOTA),
 XLAT(Q_V2_SETQUOTA),
 XLAT(Q_V2_SETUSE),
 XLAT(Q_V2_GETINFO),
 XLAT(Q_V2_SETINFO),
 XLAT(Q_V2_SETGRACE),
 XLAT(Q_V2_SETFLAGS),
 XLAT(Q_V2_GETSTATS),

 XLAT(Q_SYNC),
 XLAT(Q_QUOTAON),
 XLAT(Q_QUOTAOFF),
 XLAT(Q_GETFMT),
 XLAT(Q_GETINFO),
 XLAT(Q_SETINFO),
 XLAT(Q_GETQUOTA),
 XLAT(Q_SETQUOTA),
 XLAT(Q_GETNEXTQUOTA),

 XLAT(Q_XQUOTAON),
 XLAT(Q_XQUOTAOFF),
 XLAT(Q_XGETQUOTA),
 XLAT(Q_XSETQLIM),
 XLAT(Q_XGETQSTAT),
 XLAT(Q_XQUOTARM),
 XLAT(Q_XQUOTASYNC),
 XLAT(Q_XGETQSTATV),
 XLAT(Q_XGETNEXTQUOTA),
 XLAT_END
};

#endif /* !IN_MPERS */
