+++ /dev/null
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_LICENSE_HEADER_START@
- *
- * The contents of this file constitute Original Code as defined in and
- * are subject to the Apple Public Source License Version 1.1 (the
- * "License"). You may not use this file except in compliance with the
- * License. Please obtain a copy of the License at
- * http://www.apple.com/publicsource and read it before using this file.
- *
- * This Original Code and all software distributed under the License are
- * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
- * License for the specific language governing rights and limitations
- * under the License.
- *
- * @APPLE_LICENSE_HEADER_END@
- */
-/* Copyright (c) 1997, 1998 Apple Computer, Inc. All Rights Reserved */
-/*
- * @(#)if_blue.h 1.1 (MacOSX) 6/10/43
- * Justin Walker
- * 970520 - First version
- * 980130 - Second version - performance improvements
- */
-
-#ifndef _IF_BLUE_H
-#define _IF_BLUE_H
-
-#define BLUE_DEBUG 0
-
-/*
- * Y-adapter filter mechanism.
- * Specifies the Atalk or IP network address of this node.
- * If BF_ALLOC is set and BF_VALID is not, the corresponding
- * protocol type should be captured.
- */
-struct BlueFilter
-{
-#define IFNAMSIZ 16
- char ifr_name[IFNAMSIZ]; /* if name, e.g. "en0" */
- short BF_flags;
- unsigned long BF_address; /* IP address or Atalk Network # */
- unsigned char BF_node; /* Atalk node # */
-#ifdef notyet
- struct ifnet *BF_if; /* Destination of "passed" pkts */
-#endif
-};
-
-#define BF_ALLOC 0x01 /* Entry in use */
-#define BF_DEALLOC 0x02 /* Clear matching entry */
-#define BF_VALID 0x04 /* Address is valid */
-#define BF_ATALK 0x08 /* Appletalk network address */
-#define BF_IP 0x10 /* IP network address */
-
-struct Ystats
-{ char YS_name[IFNAMSIZ]; /* if name, e.g. "en0" */
- struct BlueFilter YS_filter[2];
- pid_t YS_blue_pid;
- int YS_pkts_up;
- int YS_pkts_out;
- int YS_pkts_looped_r2b;
- int YS_pkts_looped_b2r;
- int YS_no_bufs1;
- int YS_no_bufs2;
- int YS_full_sockbuf;
-};
-
-struct ifnet_blue
-{ struct ifnet ifb_ifn;
- struct socket *ifb_so;
- pid_t blue_pid;
- int sig_to_send;
- int sig_sent; /* Set when new pkt arrives; cleared when mt */
- struct BlueFilter filter[2]; /* Only need to check IP, A/talk */
- /* Stats */
- int pkts_up;
- int pkts_out;
- int pkts_looped_r2b;
- int pkts_looped_b2r;
- int no_bufs1; /* splitter_input got null mbuf */
- int no_bufs2; /* ndrv_output couldn't dup mbuf */
- int full_sockbuf;
-};
-
-/* Preallocate slots in blue_if to simplify filtering */
-#define BFS_ATALK 0x0 /* The Atalk filter */
-#define BFS_IP 0x1 /* The IP filter */
-
-#define SIOCSSPLITTER _IOW('i', 123, struct ifreq) /* set 'splitter' */
-#define SIOCGSPLITTER _IOR('i', 122, struct ifreq) /* get 'splitter' */
-#define SIOCGSPLTSTAT _IOWR('i', 121, struct Ystats)
-#define SIOCSSPLTFILT _IOW('i', 120, struct BlueFilter)
-#define SIOCZSPLTSTAT _IO('i', 119) /* Clear stats */
-
-/*
- * Config structure for the Y adapter - NYI
- */
-struct if_splitter
-{ char ifs_on; /* 1=>on */
- char ifs_qmax; /* !0 => maxqlen */
- short ifs_wait; /* Time to wait for signal */
- short ifs_sig; /* Signal to send */
- short ifs_pad; /* Extra space */
-};
-
-#ifdef KERNEL
-extern struct ifqueue blueq; /* Place to put incoming BB packets */
-
-#define BFCount 10
-extern struct BlueFilter RhapFilter[]; /* Filters for MacOSX side */
-extern int BFIx;
-#endif
-#endif /* _IF_BLUE_H */