~ubuntu-branches/debian/wheezy/linux-2.6/wheezy

« back to all changes in this revision

Viewing changes to drivers/staging/brcm80211/include/proto/ethernet.h

  • Committer: Bazaar Package Importer
  • Author(s): Ben Hutchings, Ben Hutchings, Aurelien Jarno, Martin Michlmayr
  • Date: 2011-04-06 13:53:30 UTC
  • mfrom: (43.1.5 sid)
  • Revision ID: james.westby@ubuntu.com-20110406135330-wjufxhd0tvn3zx4z
Tags: 2.6.38-3
[ Ben Hutchings ]
* [ppc64] Add to linux-tools package architectures (Closes: #620124)
* [amd64] Save cr4 to mmu_cr4_features at boot time (Closes: #620284)
* appletalk: Fix bugs introduced when removing use of BKL
* ALSA: Fix yet another race in disconnection
* cciss: Fix lost command issue
* ath9k: Fix kernel panic in AR2427
* ses: Avoid kernel panic when lun 0 is not mapped
* PCI/ACPI: Report ASPM support to BIOS if not disabled from command line

[ Aurelien Jarno ]
* rtlwifi: fix build when PCI is not enabled.

[ Martin Michlmayr ]
* rtlwifi: Eliminate udelay calls with too large values (Closes: #620204)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (c) 2010 Broadcom Corporation
 
3
 *
 
4
 * Permission to use, copy, modify, and/or distribute this software for any
 
5
 * purpose with or without fee is hereby granted, provided that the above
 
6
 * copyright notice and this permission notice appear in all copies.
 
7
 *
 
8
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 
9
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 
10
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
 
11
 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 
12
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
 
13
 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 
14
 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
15
 */
 
16
 
 
17
#ifndef _NET_ETHERNET_H_
 
18
#define _NET_ETHERNET_H_
 
19
 
 
20
#include <linux/if_ether.h>
 
21
 
 
22
#include <packed_section_start.h>
 
23
 
 
24
#define ETHER_TYPE_LEN          2
 
25
#define ETHER_CRC_LEN           4
 
26
#define ETHER_MIN_LEN           64
 
27
#define ETHER_MIN_DATA          46
 
28
#define ETHER_MAX_LEN           1518
 
29
#define ETHER_MAX_DATA          1500
 
30
 
 
31
#define ETHER_TYPE_BRCM         0x886c
 
32
 
 
33
#define ETHER_DEST_OFFSET       (0 * ETH_ALEN)
 
34
#define ETHER_SRC_OFFSET        (1 * ETH_ALEN)
 
35
#define ETHER_TYPE_OFFSET       (2 * ETH_ALEN)
 
36
 
 
37
#define ETHER_IS_VALID_LEN(foo) \
 
38
        ((foo) >= ETHER_MIN_LEN && (foo) <= ETHER_MAX_LEN)
 
39
 
 
40
#define ETHER_FILL_MCAST_ADDR_FROM_IP(ea, mgrp_ip) {            \
 
41
                ((u8 *)ea)[0] = 0x01;                   \
 
42
                ((u8 *)ea)[1] = 0x00;                   \
 
43
                ((u8 *)ea)[2] = 0x5e;                   \
 
44
                ((u8 *)ea)[3] = ((mgrp_ip) >> 16) & 0x7f;       \
 
45
                ((u8 *)ea)[4] = ((mgrp_ip) >>  8) & 0xff;       \
 
46
                ((u8 *)ea)[5] = ((mgrp_ip) >>  0) & 0xff;       \
 
47
}
 
48
 
 
49
BWL_PRE_PACKED_STRUCT struct ether_header {
 
50
        u8 ether_dhost[ETH_ALEN];
 
51
        u8 ether_shost[ETH_ALEN];
 
52
        u16 ether_type;
 
53
} BWL_POST_PACKED_STRUCT;
 
54
 
 
55
BWL_PRE_PACKED_STRUCT struct ether_addr {
 
56
        u8 octet[ETH_ALEN];
 
57
} BWL_POST_PACKED_STRUCT;
 
58
 
 
59
#define ETHER_SET_UNICAST(ea)   (((u8 *)(ea))[0] = (((u8 *)(ea))[0] & ~1))
 
60
 
 
61
static const struct ether_addr ether_bcast = { {255, 255, 255, 255, 255, 255} };
 
62
 
 
63
#define ETHER_MOVE_HDR(d, s) \
 
64
do { \
 
65
        struct ether_header t; \
 
66
        t = *(struct ether_header *)(s); \
 
67
        *(struct ether_header *)(d) = t; \
 
68
} while (0)
 
69
 
 
70
#include <packed_section_end.h>
 
71
 
 
72
#endif                          /* _NET_ETHERNET_H_ */