1/*
2    Unix SMB/CIFS implementation.
3    SYS QUOTA code constants
4    Copyright (C) Stefan (metze) Metzmacher	2003
5
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 2 of the License, or
9    (at your option) any later version.
10
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15
16    You should have received a copy of the GNU General Public License
17    along with this program; if not, write to the Free Software
18    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19*/
20
21#ifndef _SYSQUOTAS_H
22#define _SYSQUOTAS_H
23
24#ifdef HAVE_SYS_QUOTAS
25
26#if defined(HAVE_MNTENT_H)&&defined(HAVE_SETMNTENT)&&defined(HAVE_GETMNTENT)&&defined(HAVE_ENDMNTENT)
27#include <mntent.h>
28#define HAVE_MNTENT 1
29/*#endif defined(HAVE_MNTENT_H)&&defined(HAVE_SETMNTENT)&&defined(HAVE_GETMNTENT)&&defined(HAVE_ENDMNTENT) */
30#elif defined(HAVE_DEVNM_H)&&defined(HAVE_DEVNM)
31#include <devnm.h>
32#endif /* defined(HAVE_DEVNM_H)&&defined(HAVE_DEVNM) */
33
34#endif /* HAVE_SYS_QUOTAS */
35
36
37/**************************************************
38 Some stuff for the sys_quota api.
39 **************************************************/
40
41#define SMB_QUOTAS_NO_LIMIT	((SMB_BIG_UINT)(0))
42#define SMB_QUOTAS_NO_SPACE	((SMB_BIG_UINT)(1))
43
44#define SMB_QUOTAS_SET_NO_LIMIT(dp) \
45{\
46	(dp)->softlimit = SMB_QUOTAS_NO_LIMIT;\
47	(dp)->hardlimit = SMB_QUOTAS_NO_LIMIT;\
48	(dp)->isoftlimit = SMB_QUOTAS_NO_LIMIT;\
49	(dp)->ihardlimit = SMB_QUOTAS_NO_LIMIT;\
50}
51
52#define SMB_QUOTAS_SET_NO_SPACE(dp) \
53{\
54	(dp)->softlimit = SMB_QUOTAS_NO_SPACE;\
55	(dp)->hardlimit = SMB_QUOTAS_NO_SPACE;\
56	(dp)->isoftlimit = SMB_QUOTAS_NO_SPACE;\
57	(dp)->ihardlimit = SMB_QUOTAS_NO_SPACE;\
58}
59
60typedef struct _SMB_DISK_QUOTA {
61	enum SMB_QUOTA_TYPE qtype;
62	SMB_BIG_UINT bsize;
63	SMB_BIG_UINT hardlimit; /* In bsize units. */
64	SMB_BIG_UINT softlimit; /* In bsize units. */
65	SMB_BIG_UINT curblocks; /* In bsize units. */
66	SMB_BIG_UINT ihardlimit; /* inode hard limit. */
67	SMB_BIG_UINT isoftlimit; /* inode soft limit. */
68	SMB_BIG_UINT curinodes; /* Current used inodes. */
69	uint32       qflags;
70} SMB_DISK_QUOTA;
71
72#ifndef QUOTABLOCK_SIZE
73#define QUOTABLOCK_SIZE 1024
74#endif
75
76#endif /*_SYSQUOTAS_H */
77