#ifndef OSI_MACHDEP_H_
#define OSI_MACHDEP_H_
-#include <linux/version.h>
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,4)
-# define AFS_LINUX26_ONEGROUP_ENV 1
-#endif
-
/* Only needed for xdr.h in glibc 2.1.x */
#ifndef quad_t
# define quad_t __quad_t
#define NGROUPS NGROUPS_SMALL
#endif
+#ifdef STRUCT_GROUP_INFO_HAS_GID
+/* compat macro for Linux 4.9 */
+#define GROUP_AT(gi,x) ((gi)->gid[x])
+#endif
+
typedef struct task_struct afs_proc_t;
#ifdef HAVE_LINUX_KUID_T
+#include <linux/uidgid.h>
typedef kuid_t afs_kuid_t;
typedef kgid_t afs_kgid_t;
extern struct user_namespace *afs_ns;
static inline afs_kgid_t afs_make_kgid(gid_t gid) {return gid;}
static inline uid_t afs_from_kuid(afs_kuid_t kuid) {return kuid;}
static inline gid_t afs_from_kgid(afs_kgid_t kgid) {return kgid;}
-static inline bool uid_eq(uid_t a, uid_t b) {return a == b;}
-static inline bool gid_eq(gid_t a, gid_t b) {return a == b;}
-static inline bool uid_lt(uid_t a, uid_t b) {return a < b;}
-static inline bool gid_lt(gid_t a, gid_t b) {return a < b;}
+static inline unsigned char uid_eq(uid_t a, uid_t b) {return a == b;}
+static inline unsigned char gid_eq(gid_t a, gid_t b) {return a == b;}
+static inline unsigned char uid_lt(uid_t a, uid_t b) {return a < b;}
+static inline unsigned char gid_lt(gid_t a, gid_t b) {return a < b;}
#define GLOBAL_ROOT_UID ((afs_kuid_t) 0)
#define GLOBAL_ROOT_GID ((afs_kgid_t) 0)