xref: /onnv-gate/usr/src/uts/common/io/hme/hme.h (revision 10806:0bb654cff18b)
19610Sgdamore@opensolaris.org /*
29610Sgdamore@opensolaris.org  * CDDL HEADER START
39610Sgdamore@opensolaris.org  *
49610Sgdamore@opensolaris.org  * The contents of this file are subject to the terms of the
59610Sgdamore@opensolaris.org  * Common Development and Distribution License (the "License").
69610Sgdamore@opensolaris.org  * You may not use this file except in compliance with the License.
79610Sgdamore@opensolaris.org  *
89610Sgdamore@opensolaris.org  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
99610Sgdamore@opensolaris.org  * or http://www.opensolaris.org/os/licensing.
109610Sgdamore@opensolaris.org  * See the License for the specific language governing permissions
119610Sgdamore@opensolaris.org  * and limitations under the License.
129610Sgdamore@opensolaris.org  *
139610Sgdamore@opensolaris.org  * When distributing Covered Code, include this CDDL HEADER in each
149610Sgdamore@opensolaris.org  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
159610Sgdamore@opensolaris.org  * If applicable, add the following below this CDDL HEADER, with the
169610Sgdamore@opensolaris.org  * fields enclosed by brackets "[]" replaced with your own identifying
179610Sgdamore@opensolaris.org  * information: Portions Copyright [yyyy] [name of copyright owner]
189610Sgdamore@opensolaris.org  *
199610Sgdamore@opensolaris.org  * CDDL HEADER END
209610Sgdamore@opensolaris.org  */
219610Sgdamore@opensolaris.org /*
229610Sgdamore@opensolaris.org  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
239610Sgdamore@opensolaris.org  * Use is subject to license terms.
249610Sgdamore@opensolaris.org  */
259610Sgdamore@opensolaris.org 
269610Sgdamore@opensolaris.org #ifndef	_SYS_HME_H
279610Sgdamore@opensolaris.org #define	_SYS_HME_H
289610Sgdamore@opensolaris.org 
299610Sgdamore@opensolaris.org #ifdef	__cplusplus
309610Sgdamore@opensolaris.org extern "C" {
319610Sgdamore@opensolaris.org #endif
329610Sgdamore@opensolaris.org 
339610Sgdamore@opensolaris.org #ifdef _KERNEL
349610Sgdamore@opensolaris.org 
359610Sgdamore@opensolaris.org /* default IPG settings */
369610Sgdamore@opensolaris.org #define	IPG1	8
379610Sgdamore@opensolaris.org #define	IPG2	4
389610Sgdamore@opensolaris.org 
399610Sgdamore@opensolaris.org /*
409610Sgdamore@opensolaris.org  * Declarations and definitions specific to the
419610Sgdamore@opensolaris.org  * FEPS 10/100 Mbps Ethernet (hme) device.
429610Sgdamore@opensolaris.org  */
439610Sgdamore@opensolaris.org 
449610Sgdamore@opensolaris.org /*
459610Sgdamore@opensolaris.org  * Per-Stream instance state information.
469610Sgdamore@opensolaris.org  *
479610Sgdamore@opensolaris.org  * Each instance is dynamically allocated at open() and free'd
489610Sgdamore@opensolaris.org  * at close().  Each per-Stream instance points to at most one
499610Sgdamore@opensolaris.org  * per-device structure using the sb_hmep field.  All instances
509610Sgdamore@opensolaris.org  * are threaded together into one list of active instances
519610Sgdamore@opensolaris.org  * ordered on minor device number.
529610Sgdamore@opensolaris.org  */
539610Sgdamore@opensolaris.org 
549610Sgdamore@opensolaris.org #define	HME_2P0_REVID		0xa0 /* hme - feps. */
559610Sgdamore@opensolaris.org #define	HME_2P1_REVID		0x20
569610Sgdamore@opensolaris.org #define	HME_2P1_REVID_OBP	0x21
579610Sgdamore@opensolaris.org #define	HME_1C0_REVID		0xc0 /* cheerio 1.0, hme 2.0 equiv. */
589610Sgdamore@opensolaris.org #define	HME_2C0_REVID		0xc1 /* cheerio 2.0, hme 2.2 equiv. */
599610Sgdamore@opensolaris.org #define	HME_REV_VERS_MASK	0x0f /* Mask to retain bits for cheerio ver */
609610Sgdamore@opensolaris.org 
619610Sgdamore@opensolaris.org typedef struct {
629610Sgdamore@opensolaris.org 	ddi_dma_handle_t	dmah;
639610Sgdamore@opensolaris.org 	ddi_acc_handle_t	acch;
649610Sgdamore@opensolaris.org 	caddr_t			kaddr;
659610Sgdamore@opensolaris.org 	uint32_t		paddr;
669610Sgdamore@opensolaris.org } hmebuf_t;
679610Sgdamore@opensolaris.org 
689610Sgdamore@opensolaris.org /*
699610Sgdamore@opensolaris.org  * HME Device Channel instance state information.
709610Sgdamore@opensolaris.org  *
719610Sgdamore@opensolaris.org  * Each instance is dynamically allocated on first attach.
729610Sgdamore@opensolaris.org  */
739610Sgdamore@opensolaris.org struct	hme {
749610Sgdamore@opensolaris.org 	mac_handle_t		hme_mh;		/* GLDv3 handle */
75*10806Sgdamore@opensolaris.org 	mii_handle_t		hme_mii;
769610Sgdamore@opensolaris.org 	dev_info_t		*dip;		/* associated dev_info */
779610Sgdamore@opensolaris.org 	int			instance;	/* instance */
789610Sgdamore@opensolaris.org 	ulong_t			pagesize;	/* btop(9F) */
799610Sgdamore@opensolaris.org 
809610Sgdamore@opensolaris.org 	int			hme_mifpoll_enable;
819610Sgdamore@opensolaris.org 	int			hme_frame_enable;
829610Sgdamore@opensolaris.org 	int			hme_lance_mode_enable;
839610Sgdamore@opensolaris.org 	int			hme_rxcv_enable;
849610Sgdamore@opensolaris.org 
85*10806Sgdamore@opensolaris.org 	uint32_t		hme_lance_mode;
86*10806Sgdamore@opensolaris.org 	uint32_t		hme_ipg0;
87*10806Sgdamore@opensolaris.org 	uint32_t		hme_ipg1;
88*10806Sgdamore@opensolaris.org 	uint32_t		hme_ipg2;
89*10806Sgdamore@opensolaris.org 
909610Sgdamore@opensolaris.org 	uint_t			hme_burstsizes; /* binary encoded val */
919610Sgdamore@opensolaris.org 	uint32_t		hme_config;	/* Config reg store */
929610Sgdamore@opensolaris.org 
939610Sgdamore@opensolaris.org 	int			hme_phy_failure; /* phy failure type */
949610Sgdamore@opensolaris.org 
959610Sgdamore@opensolaris.org 	int			hme_64bit_xfer;	/* 64-bit Sbus xfers */
969610Sgdamore@opensolaris.org 	int			hme_phyad;
979610Sgdamore@opensolaris.org 
989610Sgdamore@opensolaris.org 	int			hme_nlasttries;
999610Sgdamore@opensolaris.org 	int			hme_cheerio_mode;
1009610Sgdamore@opensolaris.org 
1019610Sgdamore@opensolaris.org 	struct	ether_addr	hme_factaddr;	/* factory mac address */
1029610Sgdamore@opensolaris.org 	struct	ether_addr	hme_ouraddr;	/* individual address */
1039610Sgdamore@opensolaris.org 	uint32_t		hme_addrflags;	/* address flags */
1049610Sgdamore@opensolaris.org 	uint32_t		hme_flags;	/* misc. flags */
1059610Sgdamore@opensolaris.org 	boolean_t		hme_wantw;	/* xmit: out of resources */
1069610Sgdamore@opensolaris.org 	boolean_t		hme_started;	/* mac layer started */
1079610Sgdamore@opensolaris.org 
1089610Sgdamore@opensolaris.org 	uint8_t			hme_devno;
1099610Sgdamore@opensolaris.org 
1109610Sgdamore@opensolaris.org 	uint16_t		hme_ladrf[4];	/* 64 bit multicast filter */
1119610Sgdamore@opensolaris.org 	uint32_t		hme_ladrf_refcnt[64];
1129610Sgdamore@opensolaris.org 	boolean_t		hme_promisc;
1139610Sgdamore@opensolaris.org 	uint32_t		hme_multi;	/* refcount on mcast addrs */
1149610Sgdamore@opensolaris.org 
1159610Sgdamore@opensolaris.org 	struct	hme_global	*hme_globregp;	/* HME global regs */
1169610Sgdamore@opensolaris.org 	struct	hme_etx		*hme_etxregp;	/* HME ETX regs */
1179610Sgdamore@opensolaris.org 	struct	hme_erx		*hme_erxregp;	/* HME ERX regs */
1189610Sgdamore@opensolaris.org 	struct	hme_bmac	*hme_bmacregp;	/* BigMAC registers */
1199610Sgdamore@opensolaris.org 	struct	hme_mif		*hme_mifregp;	/* HME transceiver */
1209610Sgdamore@opensolaris.org 	unsigned char		*hme_romp;	/* fcode rom pointer */
1219610Sgdamore@opensolaris.org 
1229610Sgdamore@opensolaris.org 	kmutex_t	hme_xmitlock;		/* protect xmit-side fields */
1239610Sgdamore@opensolaris.org 	kmutex_t	hme_intrlock;		/* protect intr-side fields */
1249610Sgdamore@opensolaris.org 	ddi_iblock_cookie_t	hme_cookie;	/* interrupt cookie */
1259610Sgdamore@opensolaris.org 
1269610Sgdamore@opensolaris.org 	struct	hme_rmd	*hme_rmdp;	/* receive descriptor ring start */
1279610Sgdamore@opensolaris.org 	struct	hme_tmd	*hme_tmdp;	/* transmit descriptor ring start */
1289610Sgdamore@opensolaris.org 
1299610Sgdamore@opensolaris.org 	ddi_dma_handle_t	hme_rmd_dmah;
1309610Sgdamore@opensolaris.org 	ddi_acc_handle_t	hme_rmd_acch;
1319610Sgdamore@opensolaris.org 	caddr_t			hme_rmd_kaddr;
1329610Sgdamore@opensolaris.org 	uint32_t		hme_rmd_paddr;
1339610Sgdamore@opensolaris.org 
1349610Sgdamore@opensolaris.org 	ddi_dma_handle_t	hme_tmd_dmah;
1359610Sgdamore@opensolaris.org 	ddi_acc_handle_t	hme_tmd_acch;
1369610Sgdamore@opensolaris.org 	caddr_t			hme_tmd_kaddr;
1379610Sgdamore@opensolaris.org 	uint32_t		hme_tmd_paddr;
1389610Sgdamore@opensolaris.org 
1399610Sgdamore@opensolaris.org 	uint64_t		hme_rxindex;
1409610Sgdamore@opensolaris.org 	uint64_t		hme_txindex;
1419610Sgdamore@opensolaris.org 	uint64_t		hme_txreclaim;
1429610Sgdamore@opensolaris.org 
1439610Sgdamore@opensolaris.org 	hmebuf_t		*hme_tbuf;	/* hmebuf associated with TMD */
1449610Sgdamore@opensolaris.org 	hmebuf_t		*hme_rbuf;	/* hmebuf associated with RMD */
1459610Sgdamore@opensolaris.org 
1469610Sgdamore@opensolaris.org 	ddi_device_acc_attr_t	hme_dev_attr;
1479610Sgdamore@opensolaris.org 	ddi_acc_handle_t	hme_globregh;   /* HME global regs */
1489610Sgdamore@opensolaris.org 	ddi_acc_handle_t	hme_etxregh;    /* HME ETX regs */
1499610Sgdamore@opensolaris.org 	ddi_acc_handle_t	hme_erxregh;    /* HME ERX regs */
1509610Sgdamore@opensolaris.org 	ddi_acc_handle_t	hme_bmacregh;   /* BigMAC registers */
1519610Sgdamore@opensolaris.org 	ddi_acc_handle_t	hme_mifregh;    /* HME transceiver */
1529610Sgdamore@opensolaris.org 	ddi_acc_handle_t	hme_romh;	/* rom handle */
1539610Sgdamore@opensolaris.org 
1549610Sgdamore@opensolaris.org 	ddi_acc_handle_t	pci_config_handle; /* HME PCI config */
1559610Sgdamore@opensolaris.org 
1569610Sgdamore@opensolaris.org 	/*
1579610Sgdamore@opensolaris.org 	 * DDI dma handle, kernel virtual base,
1589610Sgdamore@opensolaris.org 	 * and io virtual base of IOPB area.
1599610Sgdamore@opensolaris.org 	 */
1609610Sgdamore@opensolaris.org 	ddi_dma_handle_t	hme_iopbhandle;
1619610Sgdamore@opensolaris.org 	ulong_t			hme_iopbkbase;
1629610Sgdamore@opensolaris.org 	uint32_t		hme_iopbiobase;
1639610Sgdamore@opensolaris.org 
1649610Sgdamore@opensolaris.org 	kstat_t	*hme_ksp;	/* kstat pointer */
1659610Sgdamore@opensolaris.org 	kstat_t	*hme_intrstats;	/* kstat interrupt counter */
1669610Sgdamore@opensolaris.org 
1679610Sgdamore@opensolaris.org 	uint64_t hme_ipackets;
1689610Sgdamore@opensolaris.org 	uint64_t hme_rbytes;
1699610Sgdamore@opensolaris.org 	uint64_t hme_ierrors;
1709610Sgdamore@opensolaris.org 	uint64_t hme_opackets;
1719610Sgdamore@opensolaris.org 	uint64_t hme_obytes;
1729610Sgdamore@opensolaris.org 	uint64_t hme_oerrors;
1739610Sgdamore@opensolaris.org 	uint64_t hme_multircv;		/* # multicast packets received */
1749610Sgdamore@opensolaris.org 	uint64_t hme_multixmt;		/* # multicast packets for xmit */
1759610Sgdamore@opensolaris.org 	uint64_t hme_brdcstrcv;		/* # broadcast packets received */
1769610Sgdamore@opensolaris.org 	uint64_t hme_brdcstxmt;		/* # broadcast packets for xmit */
1779610Sgdamore@opensolaris.org 	uint64_t hme_oflo;
1789610Sgdamore@opensolaris.org 	uint64_t hme_uflo;
1799610Sgdamore@opensolaris.org 	uint64_t hme_norcvbuf;		/* # rcv packets discarded */
1809610Sgdamore@opensolaris.org 	uint64_t hme_noxmtbuf;		/* # xmit packets discarded */
1819610Sgdamore@opensolaris.org 	uint64_t hme_duplex;
1829610Sgdamore@opensolaris.org 	uint64_t hme_align_errors;
1839610Sgdamore@opensolaris.org 	uint64_t hme_coll;
1849610Sgdamore@opensolaris.org 	uint64_t hme_fcs_errors;
1859610Sgdamore@opensolaris.org 	uint64_t hme_defer_xmts;
1869610Sgdamore@opensolaris.org 	uint64_t hme_sqe_errors;
1879610Sgdamore@opensolaris.org 	uint64_t hme_excol;
1889610Sgdamore@opensolaris.org 	uint64_t hme_fstcol;
1899610Sgdamore@opensolaris.org 	uint64_t hme_tlcol;
1909610Sgdamore@opensolaris.org 	uint64_t hme_toolong_errors;
1919610Sgdamore@opensolaris.org 	uint64_t hme_runt;
1929610Sgdamore@opensolaris.org 	uint64_t hme_carrier_errors;
1939610Sgdamore@opensolaris.org 	uint64_t hme_jab;
1949610Sgdamore@opensolaris.org 
1959610Sgdamore@opensolaris.org 	uint32_t hme_cvc;
1969610Sgdamore@opensolaris.org 	uint32_t hme_lenerr;
1979610Sgdamore@opensolaris.org 	uint32_t hme_buff;
1989610Sgdamore@opensolaris.org 	uint32_t hme_missed;
1999610Sgdamore@opensolaris.org 	uint32_t hme_nocanput;
2009610Sgdamore@opensolaris.org 	uint32_t hme_allocbfail;
2019610Sgdamore@opensolaris.org 	uint32_t hme_babl;
2029610Sgdamore@opensolaris.org 	uint32_t hme_tmder;
2039610Sgdamore@opensolaris.org 	uint32_t hme_txlaterr;
2049610Sgdamore@opensolaris.org 	uint32_t hme_rxlaterr;
2059610Sgdamore@opensolaris.org 	uint32_t hme_slvparerr;
2069610Sgdamore@opensolaris.org 	uint32_t hme_txparerr;
2079610Sgdamore@opensolaris.org 	uint32_t hme_rxparerr;
2089610Sgdamore@opensolaris.org 	uint32_t hme_slverrack;
2099610Sgdamore@opensolaris.org 	uint32_t hme_txerrack;
2109610Sgdamore@opensolaris.org 	uint32_t hme_rxerrack;
2119610Sgdamore@opensolaris.org 	uint32_t hme_txtagerr;
2129610Sgdamore@opensolaris.org 	uint32_t hme_rxtagerr;
2139610Sgdamore@opensolaris.org 	uint32_t hme_eoperr;
2149610Sgdamore@opensolaris.org 	uint32_t hme_notmds;
2159610Sgdamore@opensolaris.org 	uint32_t hme_notbufs;
2169610Sgdamore@opensolaris.org 	uint32_t hme_norbufs;
2179610Sgdamore@opensolaris.org 
2189610Sgdamore@opensolaris.org 	/*
2199610Sgdamore@opensolaris.org 	 * check if transmitter is hung
2209610Sgdamore@opensolaris.org 	 */
2219610Sgdamore@opensolaris.org 	uint32_t hme_starts;
2229610Sgdamore@opensolaris.org 	uint32_t hme_txhung;
2239610Sgdamore@opensolaris.org 	time_t hme_msg_time;
2249610Sgdamore@opensolaris.org 
2259610Sgdamore@opensolaris.org 	/*
2269610Sgdamore@opensolaris.org 	 * Debuging kstats
2279610Sgdamore@opensolaris.org 	 */
2289610Sgdamore@opensolaris.org 	uint32_t inits;
2299610Sgdamore@opensolaris.org 	uint32_t phyfail;
2309610Sgdamore@opensolaris.org 	uint32_t asic_rev;
2319610Sgdamore@opensolaris.org };
2329610Sgdamore@opensolaris.org 
2339610Sgdamore@opensolaris.org /* flags */
2349610Sgdamore@opensolaris.org #define	HMERUNNING	0x01	/* chip is initialized */
2359610Sgdamore@opensolaris.org #define	HMESUSPENDED	0x08	/* suspended interface */
2369610Sgdamore@opensolaris.org #define	HMEINITIALIZED	0x10	/* interface initialized */
2379610Sgdamore@opensolaris.org 
2389610Sgdamore@opensolaris.org /* Mac address flags */
2399610Sgdamore@opensolaris.org 
2409610Sgdamore@opensolaris.org #define	HME_FACTADDR_PRESENT	0x01	/* factory MAC id present */
2419610Sgdamore@opensolaris.org #define	HME_FACTADDR_USE	0x02	/* use factory MAC id */
2429610Sgdamore@opensolaris.org 
2439610Sgdamore@opensolaris.org struct	hmekstat {
2449610Sgdamore@opensolaris.org 	struct kstat_named	hk_cvc;		/* code violation  errors */
2459610Sgdamore@opensolaris.org 	struct kstat_named	hk_lenerr;	/* rx len errors */
2469610Sgdamore@opensolaris.org 	struct kstat_named	hk_buff;	/* buff errors */
2479610Sgdamore@opensolaris.org 	struct kstat_named	hk_missed;	/* missed/dropped packets */
2489610Sgdamore@opensolaris.org 	struct kstat_named	hk_nocanput;	/* nocanput errors */
2499610Sgdamore@opensolaris.org 	struct kstat_named	hk_allocbfail;	/* allocb failures */
2509610Sgdamore@opensolaris.org 	struct kstat_named	hk_babl;	/* runt errors */
2519610Sgdamore@opensolaris.org 	struct kstat_named	hk_tmder;	/* tmd errors */
2529610Sgdamore@opensolaris.org 	struct kstat_named	hk_txlaterr;	/* tx late errors */
2539610Sgdamore@opensolaris.org 	struct kstat_named	hk_rxlaterr;	/* rx late errors */
2549610Sgdamore@opensolaris.org 	struct kstat_named	hk_slvparerr;	/* slave parity errors */
2559610Sgdamore@opensolaris.org 	struct kstat_named	hk_txparerr;	/* tx parity errors */
2569610Sgdamore@opensolaris.org 	struct kstat_named	hk_rxparerr;	/* rx parity errors */
2579610Sgdamore@opensolaris.org 	struct kstat_named	hk_slverrack;	/* slave error acks */
2589610Sgdamore@opensolaris.org 	struct kstat_named	hk_txerrack;	/* tx error acks */
2599610Sgdamore@opensolaris.org 	struct kstat_named	hk_rxerrack;	/* rx error acks */
2609610Sgdamore@opensolaris.org 	struct kstat_named	hk_txtagerr;	/* tx tag error */
2619610Sgdamore@opensolaris.org 	struct kstat_named	hk_rxtagerr;	/* rx tag error */
2629610Sgdamore@opensolaris.org 	struct kstat_named	hk_eoperr;	/* eop error */
2639610Sgdamore@opensolaris.org 	struct kstat_named	hk_notmds;	/* tmd errors */
2649610Sgdamore@opensolaris.org 	struct kstat_named	hk_notbufs;	/* tx buf errors */
2659610Sgdamore@opensolaris.org 	struct kstat_named	hk_norbufs;	/* rx buf errors */
2669610Sgdamore@opensolaris.org 
2679610Sgdamore@opensolaris.org 	struct kstat_named	hk_inits;		/* global inits */
2689610Sgdamore@opensolaris.org 	struct	kstat_named	hk_phyfail;		/* phy failures */
2699610Sgdamore@opensolaris.org 
2709610Sgdamore@opensolaris.org 	struct	kstat_named	hk_asic_rev;		/* asic_rev */
2719610Sgdamore@opensolaris.org };
2729610Sgdamore@opensolaris.org 
2739610Sgdamore@opensolaris.org #define	HMEDRAINTIME	(400000)	/* # microseconds xmit drain */
2749610Sgdamore@opensolaris.org 
2759610Sgdamore@opensolaris.org #define	ROUNDUP(a, n)	(((a) + ((n) - 1)) & ~((n) - 1))
2769610Sgdamore@opensolaris.org #define	ROUNDUP2(a, n)	(uchar_t *)((((uintptr_t)(a)) + ((n) - 1)) & ~((n) - 1))
2779610Sgdamore@opensolaris.org 
2789610Sgdamore@opensolaris.org /*
2799610Sgdamore@opensolaris.org  * Xmit/receive buffer structure.
2809610Sgdamore@opensolaris.org  * This structure is organized to meet the following requirements:
2819610Sgdamore@opensolaris.org  * - bb_buf starts on an HMEBURSTSIZE boundary.
2829610Sgdamore@opensolaris.org  * - hmebuf is an even multiple of HMEBURSTSIZE
2839610Sgdamore@opensolaris.org  * - bb_buf[] is large enough to contain max VLAN frame (1522) plus
2849610Sgdamore@opensolaris.org  *   (3 x HMEBURSTSIZE) rounded up to the next HMEBURSTSIZE
2859610Sgdamore@opensolaris.org  * XXX What about another 128 bytes (HMEC requirement).
2869610Sgdamore@opensolaris.org  * Fast aligned copy requires both the source and destination
2879610Sgdamore@opensolaris.org  * addresses have the same offset from some N-byte boundary.
2889610Sgdamore@opensolaris.org  */
2899610Sgdamore@opensolaris.org #define		HMEBURSTSIZE	(64)
2909610Sgdamore@opensolaris.org #define		HMEBURSTMASK	(HMEBURSTSIZE - 1)
2919610Sgdamore@opensolaris.org #define		HMEBUFSIZE	(1728)
2929610Sgdamore@opensolaris.org 
2939610Sgdamore@opensolaris.org /*
2949610Sgdamore@opensolaris.org  * Define offset from start of bb_buf[] to point receive descriptor.
2959610Sgdamore@opensolaris.org  * Requirements:
2969610Sgdamore@opensolaris.org  * - must be 14 bytes back of a 4-byte boundary so the start of
2979610Sgdamore@opensolaris.org  *   the network packet is 4-byte aligned.
2989610Sgdamore@opensolaris.org  * - leave some headroom for others
2999610Sgdamore@opensolaris.org  */
3009610Sgdamore@opensolaris.org #define		HMEHEADROOM	(34)
3019610Sgdamore@opensolaris.org 
3029610Sgdamore@opensolaris.org /* Offset for the first byte in the receive buffer */
3039610Sgdamore@opensolaris.org #define	HME_FSTBYTE_OFFSET	2
3049610Sgdamore@opensolaris.org 
3059610Sgdamore@opensolaris.org #endif	/* _KERNEL */
3069610Sgdamore@opensolaris.org 
3079610Sgdamore@opensolaris.org #ifdef	__cplusplus
3089610Sgdamore@opensolaris.org }
3099610Sgdamore@opensolaris.org #endif
3109610Sgdamore@opensolaris.org 
3119610Sgdamore@opensolaris.org #endif	/* _SYS_HME_H */
312