History log of /src/sys/dev/ic/si4136reg.h |
Revision | | Date | Author | Comments |
1.6 |
| 19-Oct-2009 |
rmind | Drop 3rd and 4th clauses from David Young's license. Reviewed and approved by dyoung@ (copyright holder).
|
1.5 |
| 31-Aug-2006 |
dyoung | branches: 1.5.56; Per discussion on tech-kern and tech-userlevel, move the bit-twiddling macros, __BIT, __BITS, SHIFTIN, SHIFTOUT, and __arraycount() from lib/libkern/libkern.h to sys/cdefs.h. Add a __-prefix to SHIFTIN and SHIFTOUT, and add a manual page for the bit-twiddling macros, bits(3).
Make the __BIT and __BITS macros "widthless," as best I can, by changing their type to uintmax_t from uint32_t. XXX The manual page lags this change by a bit.
Define __PRIxBIT and __PRIxBITS printf(3) format strings.
|
1.4 |
| 08-Mar-2006 |
dyoung | Change macro names to avoid collisions:
BIT -> __BIT BITS -> __BITS
|
1.3 |
| 08-Mar-2006 |
dyoung | Move my bit-twiddling macros to libkern.h from my drivers, where I had duplicated them. Improve the macros' names. Simplify their implementation.
A brief description of each macro is below.
BIT(n): Return a bitmask with bit m set, where the least significant bit is bit 0.
BITS(m, n): Return a bitmask with bits m through n, inclusive, set. It does not matter whether m>n or m<=n. The least significant bit is bit 0.
A "bitfield" is a span of consecutive bits defined by a bitmask, where 1s select the bits in the bitfield. SHIFTIN, SHIFTOUT, and SHIFTOUT_MASK help read and write bitfields from device registers.
SHIFTIN(v, mask): Left-shift bits `v' into the bitfield defined by `mask', and return them. No side-effects.
SHIFTOUT(v, mask): Extract and return the bitfield selected by `mask' from `v', right-shifting the bits so that the rightmost selected bit is at bit 0. No side-effects.
SHIFTOUT_MASK(mask): Right-shift the bits in `mask' so that the rightmost non-zero bit is at bit 0. This is useful for finding the greatest unsigned value that a bitfield can hold. No side-effects. Note that SHIFTOUT_MASK(m) = SHIFTOUT(m, m).
Examples:
/* * Register definitions taken from the RFMD RF3000 manual. */ #define RF3000_GAINCTL 0x11 /* TX variable gain control */ #define RF3000_GAINCTL_TXVGC_MASK BITS(7, 2) #define RF3000_GAINCTL_SCRAMBLER BIT(1)
/* * Shift the transmit power into the transmit-power field of the * gain-control register and write it to the baseband processor. */ atw_rf3000_write(sc, RF3000_GAINCTL, SHIFTIN(txpower, RF3000_GAINCTL_TXVGC_MASK));
/* * Register definitions taken from the ADMtek ADM8211 manual. * */ #define ATW_RXSTAT_OWN BIT(31) /* 1: NIC may fill descriptor */ /* ... */ #define ATW_RXSTAT_DA1 BIT(17) /* DA bit 1, admin'd address */ #define ATW_RXSTAT_DA0 BIT(16) /* DA bit 0, group address */ #define ATW_RXSTAT_RXDR_MASK BITS(15,12) /* RX data rate */ #define ATW_RXSTAT_FL_MASK BITS(11,0) /* RX frame length, last * descriptor only */
/* Extract the frame length from the Rx descriptor's * status field. */ len = SHIFTOUT(rxstat, ATW_RXSTAT_FL_MASK);
|
1.2 |
| 11-Dec-2005 |
christos | branches: 1.2.4; 1.2.6; 1.2.8; 1.2.10; merge ktrace-lwp.
|
1.1 |
| 17-Feb-2004 |
dyoung | branches: 1.1.4; 1.1.18; Move the RF Microdevices RF3000 & Silicon Laboratories SI4126/SI4136 register sets into their own header files for re-use by future drivers.
|
1.1.18.2 |
| 30-Dec-2006 |
yamt | sync with head.
|
1.1.18.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.1.4.4 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.1.4.3 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.1.4.2 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.1.4.1 |
| 17-Feb-2004 |
skrll | file si4136reg.h was added on branch ktrace-lwp on 2004-08-03 10:46:18 +0000
|
1.2.10.1 |
| 19-Apr-2006 |
elad | sync with head.
|
1.2.8.2 |
| 03-Sep-2006 |
yamt | sync with head.
|
1.2.8.1 |
| 13-Mar-2006 |
yamt | sync with head.
|
1.2.6.1 |
| 22-Apr-2006 |
simonb | Sync with head.
|
1.2.4.1 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.5.56.1 |
| 11-Mar-2010 |
yamt | sync with head
|