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));
  
 |