if_en.h   [plain text]


/*
 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
 *
 * @APPLE_LICENSE_HEADER_START@
 * 
 * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
 * 
 * This file contains Original Code and/or Modifications of Original Code
 * as defined in and that are subject to the Apple Public Source License
 * Version 2.0 (the 'License'). You may not use this file except in
 * compliance with the License. Please obtain a copy of the License at
 * http://www.opensource.apple.com/apsl/ and read it before using this
 * file.
 * 
 * The 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, QUIET ENJOYMENT OR NON-INFRINGEMENT.
 * Please see the License for the specific language governing rights and
 * limitations under the License.
 * 
 * @APPLE_LICENSE_HEADER_END@
 */
/*
 * MacOSX Mace driver
 * Defines and device state
 * Dieter Siegmund (dieter@next.com) Thu Feb 27 18:25:33 PST 1997
 * - ripped off code from MK/LINUX
 */

#define PG_SIZE		0x1000UL
#define PG_MASK		(PG_SIZE - 1UL)

#define ETHERMTU		1500
#define	ETHER_RX_NUM_DBDMA_BUFS	32
#define	ETHERNET_BUF_SIZE	(ETHERMTU + 36)
#define ETHER_MIN_PACKET	64
#define TX_NUM_DBDMA		6

#define	DBDMA_ETHERNET_EOP	0x40

typedef struct mace_s {
    struct arpcom 		en_arpcom;
    struct mace_board * 	ereg;	/* ethernet register set address */
    unsigned char		macaddr[NUM_EN_ADDR_BYTES]; /* mac address */
    int				chip_id;
    dbdma_command_t		*rv_dma;
    dbdma_command_t		*tx_dma;
    unsigned char		*rv_dma_area;
    unsigned char		*tx_dma_area;
    unsigned char		multi_mask[8]; /* Multicast mask */
    unsigned char		multi_use[64]; /* Per-mask-bit use count */
    int				rv_tail;
    int				rv_head;
    int				tx_busy;
    int				txintr;
    int				rxintr;
    int				txwatchdog;
    int				ready;
    int				promisc;	/* IFF_PROMISC state */
} mace_t;