bcm-v4

[Specification

mhf ( u8 idx, u16 sel, u16 val, u8 bands)

  1. Initialize array addr with values 0x5E, 0x60, 0x62, 0x78, 0xD4
  2. Create a struct wlcband (defined below) named band
  3. If bands is 0 or 3
    1. set band to band

  4. Else if bands is 1
    1. Set band to bandstate[1]

  5. Else if bands is 2
    1. Set band to bandstate[0]

  6. Otherwise
    1. Issue warning and set band to NULL
  7. If band is not NULL
    1. Set tmp to band->mhfs[idx]

    2. Maskset band->mhfs[idx] to band->mhfs[idx] with mask ~(sel) and set with val

    3. If the interface is up AND band->mhfs[idx] is not equal to tmp AND band equals band

      1. Write band->mhfs[idx] to Shared Memory Address addr[idx]

  8. If bands is 3
    1. MaskSet bandstate[0].mhfs[idx] with mask ~(sel) and set with val

    2. MaskSet bandstate[1].mhfs[idx] with mask ~(sel) and set with val

struct wlcband {int bandtype; u32 bandunit; u16 mhfs[3]; }


Exported/Archived from the wiki to HTML on 2016-10-27