bcmdefs.h revision ac2bc7e7aaad957f235992ff74d5f9af34dc5f88
1b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt/* 2b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt * Misc system wide definitions 3b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt * 4ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt * Copyright (C) 1999-2012, Broadcom Corporation 56dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * 66dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * Permission to use, copy, modify, and/or distribute this software for any 76dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * purpose with or without fee is hereby granted, provided that the above 86dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * copyright notice and this permission notice appear in all copies. 96dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * 106dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 116dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 126dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 136dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 146dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 156dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 166dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt * 18ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt * $Id: bcmdefs.h 316830 2012-02-23 20:29:22Z $ 19b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt */ 20b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 21b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#ifndef _bcmdefs_h_ 22b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define _bcmdefs_h_ 23b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 24b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 25b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 26ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt 27ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCM_REFERENCE(data) ((void)(data)) 28ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt 29ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt 30ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define STATIC_ASSERT(expr) { \ 31ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt \ 32ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt typedef enum { _STATIC_ASSERT_NOT_CONSTANT = (expr) } _static_assert_e; \ 33ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt \ 34ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt typedef char STATIC_ASSERT_FAIL[(expr) ? 1 : -1]; \ 35ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt} 36ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt 37ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt 38b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define bcmreclaimed 0 39b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define _data _data 40b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define _fn _fn 41ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCMPREATTACHDATA(_data) _data 42ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCMPREATTACHFN(_fn) _fn 43b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define _data _data 44b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define _fn _fn 45b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define _fn _fn 46ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCMNMIATTACHFN(_fn) _fn 47ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCMNMIATTACHDATA(_data) _data 48b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define CONST const 49ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#ifndef BCMFASTPATH 50b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BCMFASTPATH 51ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCMFASTPATH_HOST 52ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#endif 53b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 54b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 55b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 56b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define _data _data 57ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCMROMDAT_NAME(_data) _data 58b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define _fn _fn 59b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define _fn _fn 60b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define STATIC static 61ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCMROMDAT_ARYSIZ(data) ARRAYSIZE(data) 62ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCMROMDAT_SIZEOF(data) sizeof(data) 63ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCMROMDAT_APATCH(data) 64ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCMROMDAT_SPATCH(data) 65b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 66b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 676dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define SI_BUS 0 686dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define PCI_BUS 1 696dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define PCMCIA_BUS 2 706dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define SDIO_BUS 3 716dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define JTAG_BUS 4 726dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define USB_BUS 5 736dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define SPI_BUS 6 746dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define RPC_BUS 7 75b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 76b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 77b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#ifdef BCMBUSTYPE 78b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BUSTYPE(bus) (BCMBUSTYPE) 79b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#else 80b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BUSTYPE(bus) (bus) 81b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#endif 82b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 83b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 84b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#ifdef BCMCHIPTYPE 85b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define CHIPTYPE(bus) (BCMCHIPTYPE) 86b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#else 87b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define CHIPTYPE(bus) (bus) 88b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#endif 89b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 90b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 91b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 92b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#if defined(BCMSPROMBUS) 93b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define SPROMBUS (BCMSPROMBUS) 94b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#elif defined(SI_PCMCIA_SROM) 95b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define SPROMBUS (PCMCIA_BUS) 96b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#else 97b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define SPROMBUS (PCI_BUS) 98b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#endif 99b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 100b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 101b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#ifdef BCMCHIPID 102b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define CHIPID(chip) (BCMCHIPID) 103b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#else 104b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define CHIPID(chip) (chip) 105b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#endif 106b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 107b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#ifdef BCMCHIPREV 108b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define CHIPREV(rev) (BCMCHIPREV) 109b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#else 110b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define CHIPREV(rev) (rev) 111b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#endif 112b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 113b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 1146dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define DMADDR_MASK_32 0x0 1156dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define DMADDR_MASK_30 0xc0000000 1166dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define DMADDR_MASK_0 0xffffffff 117b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 1186dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define DMADDRWIDTH_30 30 1196dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define DMADDRWIDTH_32 32 1206dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define DMADDRWIDTH_63 63 1216dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define DMADDRWIDTH_64 64 122b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 123b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#ifdef BCMDMA64OSL 124b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidttypedef struct { 125b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt uint32 loaddr; 126b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt uint32 hiaddr; 127b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt} dma64addr_t; 128b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 129b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidttypedef dma64addr_t dmaaddr_t; 130b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define PHYSADDRHI(_pa) ((_pa).hiaddr) 131b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define PHYSADDRHISET(_pa, _val) \ 132b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt do { \ 133b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt (_pa).hiaddr = (_val); \ 134b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt } while (0) 135b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define PHYSADDRLO(_pa) ((_pa).loaddr) 136b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define PHYSADDRLOSET(_pa, _val) \ 137b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt do { \ 138b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt (_pa).loaddr = (_val); \ 139b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt } while (0) 140b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 141b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#else 142b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidttypedef unsigned long dmaaddr_t; 143b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define PHYSADDRHI(_pa) (0) 144b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define PHYSADDRHISET(_pa, _val) 145b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define PHYSADDRLO(_pa) ((_pa)) 146b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define PHYSADDRLOSET(_pa, _val) \ 147b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt do { \ 148b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt (_pa) = (_val); \ 149b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt } while (0) 1506dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#endif 151b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 152b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 153b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidttypedef struct { 154b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt dmaaddr_t addr; 155b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt uint32 length; 156b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt} hnddma_seg_t; 157b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 158b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define MAX_DMA_SEGS 4 159b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 160b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 161b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidttypedef struct { 1626dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt void *oshdmah; 1636dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt uint origsize; 164b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt uint nsegs; 165b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt hnddma_seg_t segs[MAX_DMA_SEGS]; 166b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt} hnddma_seg_map_t; 167b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 168b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 169b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 170b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 171b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#if defined(BCM_RPC_NOCOPY) || defined(BCM_RCP_TXNOCOPY) 172b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 173b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BCMEXTRAHDROOM 220 174b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#else 175b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BCMEXTRAHDROOM 172 176b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#endif 177b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 178b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 179ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#ifndef SDALIGN 180ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define SDALIGN 32 181ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#endif 182ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt 183ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt 184b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BCMDONGLEHDRSZ 12 185b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BCMDONGLEPADSZ 16 186b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 187b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BCMDONGLEOVERHEAD (BCMDONGLEHDRSZ + BCMDONGLEPADSZ) 188b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 189b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 190ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#if defined(NO_BCMDBG_ASSERT) 191ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt# undef BCMDBG_ASSERT 192ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt# undef BCMASSERT_LOG 193ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#endif 194ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt 195b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#if defined(BCMASSERT_LOG) 196b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BCMASSERT_SUPPORT 1976dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#endif 198b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 199b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 200b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BITFIELD_MASK(width) \ 201b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt (((unsigned)1 << (width)) - 1) 202b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define GFIELD(val, field) \ 203b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt (((val) >> field ## _S) & field ## _M) 204b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define SFIELD(val, field, bits) \ 205b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt (((val) & (~(field ## _M << field ## _S))) | \ 206b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt ((unsigned)(bits) << field ## _S)) 207b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 208b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 209b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#ifdef BCMSMALL 210b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#undef BCMSPACE 2116dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define bcmspace FALSE 212b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#else 213b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BCMSPACE 2146dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define bcmspace TRUE 215b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#endif 216b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 217b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 218b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define MAXSZ_NVRAM_VARS 4096 219b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 220b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt 221ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#ifdef DL_NVRAM 222ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define NVRAM_ARRAY_MAXSIZE DL_NVRAM 223ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#else 224ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define NVRAM_ARRAY_MAXSIZE MAXSZ_NVRAM_VARS 225ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#endif 226ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt 227ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#ifdef BCMUSBDEV_ENABLED 228ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidtextern uint32 gFWID; 2296dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#endif 230ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt 231ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#endif 232