#define rw_runlock(_l) spin_unlock_bh(_l)
#define rw_wlock(_l) spin_lock_bh(_l)
#define rw_wunlock(_l) spin_unlock_bh(_l)
+#define rw_init_flags(_l, s, v)
#define mtx_assert(a, b)
#define mtx_destroy(m)
/* defined in session.c */
int priv_check(struct thread *td, int priv);
+/* struct ucred is in linux/socket.h and has pid, uid, gid.
+ * We need a 'bsd_ucred' to store also the extra info
+ */
+
+struct bsd_ucred {
+ uid_t uid;
+ gid_t gid;
+ uint32_t xid;
+ uint32_t nid;
+};
+
int securelevel_ge(struct ucred *cr, int level);
struct sysctl_oid;
#ifdef _WIN32
#define module_param_named(_name, _var, _ty, _perm)
#else
+
+/* Linux 2.4 is mostly for openwrt */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
+#include <linux/bitops.h> /* generic_ffs() used in ip_fw2.c */
+typedef uint32_t __be32;
+typedef uint16_t __be16;
+struct sock;
+struct net;
+struct inet_hashinfo;
+struct sock *inet_lookup(
+ struct inet_hashinfo *hashinfo,
+ const __be32 saddr, const __be16 sport,
+ const __be32 daddr, const __be16 dport,
+ const int dif);
+static int inet_iif(const struct sk_buff *skb);
+struct sock *tcp_v4_lookup(u32 saddr, u16 sport, u32 daddr, u16 dport, int dif);
+#endif /* Linux < 2.6 */
+
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17)
#define module_param_named(_name, _var, _ty, _perm) \
//module_param(_name, _ty, 0644)
_SYSCTL_BASE(_name, _var, ulong, _mode)
#define SYSCTL_UINT(_base, _oid, _name, _mode, _var, _val, _desc) \
- // _SYSCTL_BASE(_name, _var, uint, _mode)
+ _SYSCTL_BASE(_name, _var, uint, _mode)
#define SYSCTL_HANDLER_ARGS \
struct sysctl_oid *oidp, void *arg1, int arg2, struct sysctl_req *req
#define INP_LOCK_ASSERT(a)
#endif
-int rn_inithead(void **head, int off);
-
int jailed(struct ucred *cred);
/*
int fnmatch(const char *pattern, const char *string, int flags);
-struct ip_fw_ugid;
int
linux_lookup(const int proto, const __be32 saddr, const __be16 sport,
const __be32 daddr, const __be16 dport,
- struct sk_buff *skb, int dir, struct ip_fw_ugid *ugp);
+ struct sk_buff *skb, int dir, struct bsd_ucred *u);
/* vnet wrappers, in vnet.h and ip_var.h */
int ipfw_init(void);