summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDebian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>2020-03-31 19:10:08 +0200
committergregor herrmann <gregoa@debian.org>2020-03-31 19:10:08 +0200
commit3abfe4e946ed1f582ba15e8e35ee58d357dcd86c (patch)
treee2f7ffc40fd6e8845a8618e754cce2d3727c2171
parent6ca7b4869cf33a5be062e6d97a015b45684a654a (diff)
Forwarded: not-needed Reviewed-by: Nicholas Bamber <nicholas@periapt.co.uk> Reviewed-by: Salvatore Bonaccorso <carnil@debian.org> Last-Update: 2015-06-01 Gbp-Pq: Name 02_gnu_hurd.patch
-rw-r--r--Makefile.PL1
-rw-r--r--hints/gnu.h88
2 files changed, 89 insertions, 0 deletions
diff --git a/Makefile.PL b/Makefile.PL
index f3681e1..983766a 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -14,6 +14,7 @@ elsif($os =~ /^IRIX 5/) { $config='irix_5.h'; }
elsif($os =~ /^IRIX\d* 6/) { $config='irix_6.h'; }
elsif($os =~ /^OSF1/) { $config='dec_osf.h'; }
elsif($os =~ /^Linux/) { $config='linux.h'; $picobj='linuxapi.o'; }
+elsif($os =~ /^GNU/) { $config='gnu.h'; }
elsif($os =~ /^AIX/) { $config='aix_4_1.h'; }
elsif($os =~ /^BSD\/OS 2/ ||
$os =~ /^Darwin/ ||
diff --git a/hints/gnu.h b/hints/gnu.h
new file mode 100644
index 0000000..02d247c
--- /dev/null
+++ b/hints/gnu.h
@@ -0,0 +1,88 @@
+/*
+ * Configuration for GNU
+ *
+ * For AFS support look at the end of this file
+ */
+
+/* See hints/none.h for a complete list of options with explanations */
+
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/syscall.h>
+#include <mntent.h>
+
+#include <rpc/rpc.h>
+#include <rpc/pmap_prot.h>
+#include <rpcsvc/rquota.h>
+/* #include "include/rquota.h" */
+#include <sys/socket.h>
+#include <netdb.h>
+
+#include <string.h>
+#include <stdio.h>
+
+/* definitions from sys/quota.h */
+#define USRQUOTA 0 /* element used for user quotas */
+#define GRPQUOTA 1 /* element used for group quotas */
+
+/*
+ * Command definitions for the 'quotactl' system call.
+ * The commands are broken into a main command defined below
+ * and a subcommand that is used to convey the type of
+ * quota that is being manipulated (see above).
+ */
+#define SUBCMDMASK 0x00ff
+#define SUBCMDSHIFT 8
+#define QCMD(cmd, type) (((cmd) << SUBCMDSHIFT) | ((type) & SUBCMDMASK))
+
+/* declare an internal version of the quota block struct */
+typedef u_int64_t qsize_t;
+struct dqblk {
+ qsize_t dqb_ihardlimit; /* absolute limit on allocated inodes */
+ qsize_t dqb_isoftlimit; /* preferred inode limit */
+ qsize_t dqb_curinodes; /* current # allocated inodes */
+ qsize_t dqb_bhardlimit; /* absolute limit on disk blks alloc */
+ qsize_t dqb_bsoftlimit; /* preferred limit on disk blks */
+ qsize_t dqb_curblocks; /* current block count */
+ time_t dqb_btime; /* time limit for excessive disk use */
+ time_t dqb_itime; /* time limit for excessive inode use */
+};
+/* you can use this switch to hard-wire the quota API if it's not identified correctly */
+/* #define LINUX_API_VERSION 1 */ /* API range [1..3] */
+
+int linuxquota_query( const char * dev, int uid, int isgrp, struct dqblk * dqb );
+int linuxquota_setqlim( const char * dev, int uid, int isgrp, struct dqblk * dqb );
+int linuxquota_sync( const char * dev, int isgrp );
+
+
+#define Q_DIV(X) (X)
+#define Q_MUL(X) (X)
+#define DEV_QBSIZE 1024
+
+#define Q_CTL_V3
+#define CADR (caddr_t)
+
+#define MY_XDR
+
+#define MNTENT mntent
+
+#define GQR_STATUS status
+#define GQR_RQUOTA getquota_rslt_u.gqr_rquota
+
+#define QS_BHARD dqb_bhardlimit
+#define QS_BSOFT dqb_bsoftlimit
+#define QS_BCUR dqb_curblocks
+#define QS_FHARD dqb_ihardlimit
+#define QS_FSOFT dqb_isoftlimit
+#define QS_FCUR dqb_curinodes
+#define QS_BTIME dqb_btime
+#define QS_FTIME dqb_itime
+
+/* uncomment this is you're using NFS with a version of the quota tools < 3.0 */
+/* #define LINUX_RQUOTAD_BUG */
+
+/* enable support for extended quota RPC (i.e. quota RPC version 2) */
+/* note: could also be enabled by defining MY_XDR (and including "include/rquota.h") */
+#if defined (EXT_RQUOTAVERS)
+#define USE_EXT_RQUOTA
+#endif