add all source code from linksys/broadcom which is free, to cvs for better maintainen...
[openwrt/staging/mkresin.git] / openwrt / package / linux / kernel-source / include / bcmenetrxh.h
1 /*
2 * Hardware-specific Receive Data Header for the
3 * Broadcom Home Networking Division
4 * BCM44XX and BCM47XX 10/100 Mbps Ethernet cores.
5 *
6 * Copyright 2004, Broadcom Corporation
7 * All Rights Reserved.
8 *
9 * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
10 * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
11 * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
12 * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
13 * $Id$
14 */
15
16 #ifndef _bcmenetrxh_h_
17 #define _bcmenetrxh_h_
18
19 /*
20 * The Ethernet MAC core returns an 8-byte Receive Frame Data Header
21 * with every frame consisting of
22 * 16bits of frame length, followed by
23 * 16bits of EMAC rx descriptor info, followed by 32bits of undefined.
24 */
25 typedef volatile struct {
26 uint16 len;
27 uint16 flags;
28 uint16 pad[12];
29 } bcmenetrxh_t;
30
31 #define RXHDR_LEN 28
32
33 #define RXF_L ((uint16)1 << 11) /* last buffer in a frame */
34 #define RXF_MISS ((uint16)1 << 7) /* received due to promisc mode */
35 #define RXF_BRDCAST ((uint16)1 << 6) /* dest is broadcast address */
36 #define RXF_MULT ((uint16)1 << 5) /* dest is multicast address */
37 #define RXF_LG ((uint16)1 << 4) /* frame length > rxmaxlength */
38 #define RXF_NO ((uint16)1 << 3) /* odd number of nibbles */
39 #define RXF_RXER ((uint16)1 << 2) /* receive symbol error */
40 #define RXF_CRC ((uint16)1 << 1) /* crc error */
41 #define RXF_OV ((uint16)1 << 0) /* fifo overflow */
42
43 #endif /* _bcmenetrxh_h_ */