| #include "defs.h" |
| |
| #include DEF_MPERS_TYPE(struct_xfs_dqstats) |
| |
| #include "xfs_quota_stat.h" |
| typedef struct xfs_dqstats struct_xfs_dqstats; |
| |
| #include MPERS_DEFS |
| |
| MPERS_PRINTER_DECL(bool, fetch_struct_quotastat, struct tcb *const tcp, |
| const kernel_ulong_t data, void *p) |
| { |
| struct xfs_dqstats *dq = p; |
| struct_xfs_dqstats dqstat; |
| |
| if (umove_or_printaddr(tcp, data, &dqstat)) |
| return false; |
| |
| dq->qs_version = dqstat.qs_version; |
| dq->qs_flags = dqstat.qs_flags; |
| dq->qs_pad = dqstat.qs_pad; |
| dq->qs_uquota.qfs_ino = dqstat.qs_uquota.qfs_ino; |
| dq->qs_uquota.qfs_nblks = dqstat.qs_uquota.qfs_nblks; |
| dq->qs_uquota.qfs_nextents = dqstat.qs_uquota.qfs_nextents; |
| dq->qs_gquota.qfs_ino = dqstat.qs_gquota.qfs_ino; |
| dq->qs_gquota.qfs_nblks = dqstat.qs_gquota.qfs_nblks; |
| dq->qs_gquota.qfs_nextents = dqstat.qs_gquota.qfs_nextents; |
| dq->qs_incoredqs = dqstat.qs_incoredqs; |
| dq->qs_btimelimit = dqstat.qs_btimelimit; |
| dq->qs_itimelimit = dqstat.qs_itimelimit; |
| dq->qs_rtbtimelimit = dqstat.qs_rtbtimelimit; |
| dq->qs_bwarnlimit = dqstat.qs_bwarnlimit; |
| dq->qs_iwarnlimit = dqstat.qs_iwarnlimit; |
| return true; |
| } |