squotah.inc 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. function dbtob(num: cardinal): cardinal;
  2. function btodb(num: cardinal): cardinal;
  3. function fs_to_dq_blocks(num, blksize: cardinal): quad_t;
  4. const
  5. MAX_IQ_TIME = 604800;
  6. MAX_DQ_TIME = 604800;
  7. MAXQUOTAS = 2;
  8. USRQUOTA = 0;
  9. GRPQUOTA = 1;
  10. const
  11. INITQFNAMES: array[0..2] of PChar = ('user','group','undefined');
  12. QUOTAFILENAME = 'quota';
  13. QUOTAGROUP = 'staff';
  14. NR_DQHASH = 43;
  15. NR_DQUOTS = 256;
  16. SUBCMDMASK = $00ff;
  17. SUBCMDSHIFT = 8;
  18. function QCMD(cmd, _type: cardinal): cardinal;
  19. const
  20. Q_QUOTAON = $0100;
  21. Q_QUOTAOFF = $0200;
  22. Q_GETQUOTA = $0300;
  23. Q_SETQUOTA = $0400;
  24. Q_SETUSE = $0500;
  25. Q_SYNC = $0600;
  26. Q_SETQLIM = $0700;
  27. Q_GETSTATS = $0800;
  28. Q_RSQUASH = $1000;
  29. type
  30. Pdqblk = ^dqblk;
  31. dqblk = record
  32. dqb_bhardlimit : u_int32_t;
  33. dqb_bsoftlimit : u_int32_t;
  34. dqb_curblocks : u_int32_t;
  35. dqb_ihardlimit : u_int32_t;
  36. dqb_isoftlimit : u_int32_t;
  37. dqb_curinodes : u_int32_t;
  38. dqb_btime : time_t;
  39. dqb_itime : time_t;
  40. end;
  41. function dqoff(UID: loff_t): quad_t;
  42. type
  43. Pdqstats = ^dqstats;
  44. dqstats = record
  45. lookups : u_int32_t;
  46. drops : u_int32_t;
  47. reads : u_int32_t;
  48. writes : u_int32_t;
  49. cache_hits : u_int32_t;
  50. allocated_dquots : u_int32_t;
  51. free_dquots : u_int32_t;
  52. syncs : u_int32_t;
  53. end;
  54. function quotactl(__cmd:longint; __special:Pchar; __id:longint; __addr:caddr_t):longint;cdecl;external clib name 'quotactl';
  55. { ---------------------------------------------------------------------
  56. Borland compatibility types
  57. ---------------------------------------------------------------------}
  58. // Type