diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2003-10-09 20:59:38 +0000 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2003-10-09 20:59:38 +0000 |
commit | 12d2580ad7b80bdbae04b32e85abc375b332f0ab (patch) | |
tree | 716dbe584694205eee6a8986e8e80afa02feff2a /source3/tests | |
parent | f18551dcbb5568da7d94adcf2d41798e90e3e6a0 (diff) | |
download | samba-12d2580ad7b80bdbae04b32e85abc375b332f0ab.tar.gz samba-12d2580ad7b80bdbae04b32e85abc375b332f0ab.tar.bz2 samba-12d2580ad7b80bdbae04b32e85abc375b332f0ab.zip |
Move sysquotas autoconf tests to a seperate file in tests/
Patch by Stefan Metzmacher <metze@metzemix.de>
(This used to be commit cd3e4882fcf2437f4140557608e671284d0e92b4)
Diffstat (limited to 'source3/tests')
-rw-r--r-- | source3/tests/sysquotas.c | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/source3/tests/sysquotas.c b/source3/tests/sysquotas.c new file mode 100644 index 0000000000..e83f28e2d0 --- /dev/null +++ b/source3/tests/sysquotas.c @@ -0,0 +1,94 @@ +/* this test should find out what quota api is avalable on the os */ + +#if defined(HAVE_QUOTACTL_4A) +/* long quotactl(int cmd, char *special, qid_t id, caddr_t addr) */ + +#ifdef HAVE_SYS_TYPES_H +#include <sys/types.h> +#endif + +#ifdef HAVE_ASM_TYPES_H +#include <asm/types.h> +#endif + +#if defined(HAVE_LINUX_QUOTA_H) +# include <linux/quota.h> +# if defined(HAVE_STRUCT_IF_DQBLK) +# define SYS_DQBLK if_dqblk +# elif defined(HAVE_STRUCT_MEM_DQBLK) +# define SYS_DQBLK mem_dqblk +# endif +#elif defined(HAVE_SYS_QUOTA_H) +# include <sys/quota.h> +#endif + +#ifndef SYS_DQBLK +#define SYS_DQBLK dqblk +#endif + + int autoconf_quota(void) +{ + int ret = -1; + struct SYS_DQBLK D; + + ret = quotactl(Q_GETQUOTA,"/dev/hda1",0,(void *)&D); + + return ret; +} + +#elif defined(HAVE_QUOTACTL_4B) +/* int quotactl(const char *path, int cmd, int id, char *addr); */ + +#ifdef HAVE_SYS_QUOTA_H +#include <sys/quota.h> +#else /* *BSD */ +#include <sys/types.h> +#include <ufs/ufs/quota.h> +#include <machine/param.h> +#endif + + int autoconf_quota(void) +{ + int ret = -1; + struct dqblk D; + + ret = quotactl("/",Q_GETQUOTA,0,(char *) &D); + + return ret; +} + +#elif defined(HAVE_QUOTACTL_3) +/* int quotactl (char *spec, int request, char *arg); */ + +#ifdef HAVE_SYS_TYPES_H +#include <sys/types.h> +#endif +#ifdef HAVE_SYS_QUOTA_H +#include <sys/quota.h> +#endif + + int autoconf_quota(void) +{ + int ret = -1; + struct q_request request; + + ret = quotactl("/", Q_GETQUOTA, &request); + + return ret; +} + +#elif defined(HAVE_QUOTACTL_2) + +#error HAVE_QUOTACTL_2 not implemented + +#else + +#error Unknow QUOTACTL prototype + +#endif + + int main(void) +{ + autoconf_quota(); + return 0; +} |