X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=fwcutter%2Ffwcutter.h;h=a441322aded7b302f11bd8c1ebbf8446415acdcb;hb=b88078e7a07ef6a20f9b8aa2347e7bc1de748023;hp=4a887b632459376834def552d193e4fc4673812f;hpb=37164fe78406e201302ec8bd975698bec48183b9;p=b43-tools.git diff --git a/fwcutter/fwcutter.h b/fwcutter/fwcutter.h index 4a887b6..a441322 100644 --- a/fwcutter/fwcutter.h +++ b/fwcutter/fwcutter.h @@ -15,7 +15,9 @@ typedef uint16_t be16_t; /* Big-endian 16bit */ typedef uint32_t be32_t; /* Big-endian 32bit */ -#ifdef __DragonFly__ +typedef uint32_t le32_t; /* Little-endian 32bit */ + +#if defined(__DragonFly__) || defined(__FreeBSD__) #define bswap_16 bswap16 #define bswap_32 bswap32 #endif @@ -25,9 +27,10 @@ typedef uint32_t be32_t; /* Big-endian 32bit */ #define ARG_ERROR -1 enum fwcutter_mode { - FWCM_EXTRACT = 0, /* default */ + FWCM_EXTRACT_B43 = 0, /* default */ FWCM_LIST, FWCM_IDENTIFY, + FWCM_EXTRACT_BRCMSMAC, }; struct cmdline_args { @@ -68,7 +71,6 @@ struct extract { struct file { const char *name; - const char *id; const char *ucode_version; const char *md5; const struct extract *extract; @@ -105,5 +107,31 @@ struct b43_iv { #define FW_IV_OFFSET_MASK 0x7FFF #define FW_IV_32BIT 0x8000 +/* header format for brcmsmac firmware */ +struct firmware_hdr { + le32_t offset; + le32_t len; + le32_t idx; +}; + +/* numbers of firmware types for brcmsmac firmware */ +enum firmware_brcmsmac { + D11UCODE_NAMETAG_START = 0, + D11LCN0BSINITVALS24, + D11LCN0INITVALS24, + D11LCN1BSINITVALS24, + D11LCN1INITVALS24, + D11LCN2BSINITVALS24, + D11LCN2INITVALS24, + D11N0ABSINITVALS16, + D11N0BSINITVALS16, + D11N0INITVALS16, + D11UCODE_OVERSIGHT16_MIMO, + D11UCODE_OVERSIGHT16_MIMOSZ, + D11UCODE_OVERSIGHT24_LCN, + D11UCODE_OVERSIGHT24_LCNSZ, + D11UCODE_OVERSIGHT_BOMMAJOR, + D11UCODE_OVERSIGHT_BOMMINOR +}; #endif /* _FWCUTTER_H_ */