1 /*
2 * Copyright (C) 1993-2001, 2003 by Darren Reed.
3 *
4 * See the IPFILTER.LICENCE file for details on licencing.
5 *
6 * @(#)ip_fil.h 1.35 6/5/96
7 * $Id: ip_fil.h,v 2.170.2.22 2005/07/16 05:55:35 darrenr Exp $
8 *
9 * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
10 *
11 * Copyright (c) 2014, Joyent, Inc. All rights reserved.
12 */
13
14 #ifndef __IP_FIL_H__
15 #define __IP_FIL_H__
16
17 #include "netinet/ip_compat.h"
18 #include <sys/zone.h>
19
20 #ifdef SOLARIS
21 #undef SOLARIS
22 #endif
23 #if (defined(sun) && (defined(__svr4__) || defined(__SVR4)))
24 #define SOLARIS (1)
25 #else
26 #define SOLARIS (0)
27 #endif
28
29 #ifndef __P
30 # ifdef __STDC__
31 # define __P(x) x
1542 extern int frflush __P((minor_t, int, int, ipf_stack_t *));
1543 extern void frsync __P((int, int, void *, char *, ipf_stack_t *));
1544 #if SOLARIS2 >= 10
1545 extern void fr_ifindexsync __P((void *, void *, ipf_stack_t *));
1546 #endif
1547 extern frgroup_t *fr_addgroup __P((char *, void *, u_32_t, minor_t, int,
1548 ipf_stack_t *));
1549 extern int fr_derefrule __P((frentry_t **, ipf_stack_t *));
1550 extern void fr_delgroup __P((char *, minor_t, int, ipf_stack_t *));
1551 extern frgroup_t *fr_findgroup __P((char *, minor_t, int, frgroup_t ***,
1552 ipf_stack_t *));
1553
1554 extern int fr_loginit __P((ipf_stack_t *));
1555 extern int ipflog_clear __P((minor_t, ipf_stack_t *));
1556 extern int ipflog_read __P((minor_t, struct uio *, ipf_stack_t *));
1557 extern int ipflog __P((fr_info_t *, u_int));
1558 extern int ipllog __P((int, fr_info_t *, void **, size_t *, int *, int,
1559 ipf_stack_t *));
1560 extern void fr_logunload __P((ipf_stack_t *));
1561
1562 extern frentry_t *fr_acctpkt __P((fr_info_t *, u_32_t *));
1563 extern int fr_copytolog __P((int, char *, int));
1564 extern u_short fr_cksum __P((mb_t *, ip_t *, int, void *));
1565 extern void fr_deinitialise __P((ipf_stack_t *));
1566 extern frentry_t *fr_dolog __P((fr_info_t *, u_32_t *));
1567 extern frentry_t *fr_dstgrpmap __P((fr_info_t *, u_32_t *));
1568 extern void fr_fixskip __P((frentry_t **, frentry_t *, int));
1569 extern void fr_forgetifp __P((void *, ipf_stack_t *));
1570 extern frentry_t *fr_getrulen __P((int, char *, u_32_t,
1571 ipf_stack_t *));
1572 extern void fr_getstat __P((struct friostat *, ipf_stack_t *));
1573 extern int fr_ifpaddr __P((int, int, void *,
1574 struct in_addr *, struct in_addr *,
1575 ipf_stack_t *));
1576 extern int fr_initialise __P((ipf_stack_t *));
1577 extern int fr_lock __P((caddr_t, int *));
1578 extern int fr_makefrip __P((int, ip_t *, fr_info_t *));
1579 extern int fr_matchtag __P((ipftag_t *, ipftag_t *));
1580 extern int fr_matchicmpqueryreply __P((int, icmpinfo_t *,
1581 struct icmp *, int));
|
1 /*
2 * Copyright (C) 1993-2001, 2003 by Darren Reed.
3 *
4 * See the IPFILTER.LICENCE file for details on licencing.
5 *
6 * @(#)ip_fil.h 1.35 6/5/96
7 * $Id: ip_fil.h,v 2.170.2.22 2005/07/16 05:55:35 darrenr Exp $
8 *
9 * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
10 *
11 * Copyright 2019, Joyent, Inc.
12 */
13
14 #ifndef __IP_FIL_H__
15 #define __IP_FIL_H__
16
17 #include "netinet/ip_compat.h"
18 #include <sys/zone.h>
19
20 #ifdef SOLARIS
21 #undef SOLARIS
22 #endif
23 #if (defined(sun) && (defined(__svr4__) || defined(__SVR4)))
24 #define SOLARIS (1)
25 #else
26 #define SOLARIS (0)
27 #endif
28
29 #ifndef __P
30 # ifdef __STDC__
31 # define __P(x) x
1542 extern int frflush __P((minor_t, int, int, ipf_stack_t *));
1543 extern void frsync __P((int, int, void *, char *, ipf_stack_t *));
1544 #if SOLARIS2 >= 10
1545 extern void fr_ifindexsync __P((void *, void *, ipf_stack_t *));
1546 #endif
1547 extern frgroup_t *fr_addgroup __P((char *, void *, u_32_t, minor_t, int,
1548 ipf_stack_t *));
1549 extern int fr_derefrule __P((frentry_t **, ipf_stack_t *));
1550 extern void fr_delgroup __P((char *, minor_t, int, ipf_stack_t *));
1551 extern frgroup_t *fr_findgroup __P((char *, minor_t, int, frgroup_t ***,
1552 ipf_stack_t *));
1553
1554 extern int fr_loginit __P((ipf_stack_t *));
1555 extern int ipflog_clear __P((minor_t, ipf_stack_t *));
1556 extern int ipflog_read __P((minor_t, struct uio *, ipf_stack_t *));
1557 extern int ipflog __P((fr_info_t *, u_int));
1558 extern int ipllog __P((int, fr_info_t *, void **, size_t *, int *, int,
1559 ipf_stack_t *));
1560 extern void fr_logunload __P((ipf_stack_t *));
1561
1562 /* SmartOS single-FD global-zone state accumulator (see cfw.c) */
1563 extern boolean_t ipf_cfwlog_enabled;
1564 struct ipstate; /* Ugggh. */
1565 extern void ipf_log_cfwlog __P((struct ipstate *, uint_t, ipf_stack_t *));
1566 extern void ipf_block_cfwlog __P((frentry_t *, fr_info_t *, ipf_stack_t *));
1567 #define IFS_CFWLOG(ifs) ((ifs)->ifs_gz_controlled && ipf_cfwlog_enabled)
1568
1569
1570 extern frentry_t *fr_acctpkt __P((fr_info_t *, u_32_t *));
1571 extern int fr_copytolog __P((int, char *, int));
1572 extern u_short fr_cksum __P((mb_t *, ip_t *, int, void *));
1573 extern void fr_deinitialise __P((ipf_stack_t *));
1574 extern frentry_t *fr_dolog __P((fr_info_t *, u_32_t *));
1575 extern frentry_t *fr_dstgrpmap __P((fr_info_t *, u_32_t *));
1576 extern void fr_fixskip __P((frentry_t **, frentry_t *, int));
1577 extern void fr_forgetifp __P((void *, ipf_stack_t *));
1578 extern frentry_t *fr_getrulen __P((int, char *, u_32_t,
1579 ipf_stack_t *));
1580 extern void fr_getstat __P((struct friostat *, ipf_stack_t *));
1581 extern int fr_ifpaddr __P((int, int, void *,
1582 struct in_addr *, struct in_addr *,
1583 ipf_stack_t *));
1584 extern int fr_initialise __P((ipf_stack_t *));
1585 extern int fr_lock __P((caddr_t, int *));
1586 extern int fr_makefrip __P((int, ip_t *, fr_info_t *));
1587 extern int fr_matchtag __P((ipftag_t *, ipftag_t *));
1588 extern int fr_matchicmpqueryreply __P((int, icmpinfo_t *,
1589 struct icmp *, int));
|