Skip to content
Permalink
Browse files

bcm43455c0: updated sk_buff struct.

  • Loading branch information...
matthiasseemoo committed Aug 1, 2019
1 parent 3735235 commit a8126fb9693c93965a4f9c3d2b86eb03b8d009e3
Showing with 42 additions and 12 deletions.
  1. +39 −9 firmwares/bcm43455c0/structs.common.h
  2. +3 −3 patches/bcm43455c0/7_45_189/nexmon/src/monitormode.c
@@ -219,17 +219,17 @@ struct wl_rxsts {
#define WL_RXS_NFRM_AMSDU_SUB 0x00000008 /* subsequent MSDU(s) in A-MSDU */

struct osl_info {
unsigned int pktalloced;
int PAD[1];
void *callback_when_dropped;
unsigned int bustype;
unsigned int pktalloced;
int PAD[1];
void *callback_when_dropped;
unsigned int bustype;
} __attribute__((packed));

typedef struct sk_buff {
int field0; /* 0x00 */
int field4; /* 0x04 */
void *data; /* 0x08 */
short len; /* 0x0C */
typedef struct sk_buff_old {
int field0; /* 0x00 */
int field4; /* 0x04 */
void *data; /* 0x08 */
short len; /* 0x0C */
short fieldE; // 0x0E
int field10; // 0x10
unsigned short next; // 0x14
@@ -244,6 +244,36 @@ typedef struct sk_buff {
int PAD; // 0x24
int PAD; // 0x28
int dword2C; // 0x2C
} __attribute__((packed)) sk_buff_old;

typedef struct sk_buff {
uint16 pktid; // 0x00
uint8 refcnt; // 0x02
uint8 poolid; // 0x03
struct {
uint32 head_off : 21;
uint32 end_off : 11;
}; // 0x04
void *data; // 0x08
uint16 len; // 0x0C
union {
uint16 flags;
uint16 fieldE;
}; // 0x0E
struct {
union {
uint16 dmapad;
uint16 rxcpl_id;
};
uint8 dataOff;
uint8 ifidx;
}; // 0x10
uint16 nextby4; // 0x14
uint16 field16; // 0x16
uint32 pkttag_flags; // 0x18
uint16 pkttag_seq; // 0x20
uint8 pkttag_flags2; // 0x22
uint8 pkttag_flags3; // 0x23 afterwards follow more pkttag fields
} __attribute__((packed)) sk_buff;

#define HNDRTE_DEV_NAME_MAX 16
@@ -106,7 +106,7 @@ wl_monitor_radiotap(struct wl_info *wl, struct wl_rxsts *sts, struct sk_buff *p)
frame->dbm_antsignal = sts->signal;
frame->dbm_antnoise = sts->noise;

p->fieldE |= 0x80u;
p->flags |= 0x80u;
wl_sendup_multiif(wl, p);
}

@@ -117,7 +117,7 @@ wl_monitor_hook(struct wl_info *wl, struct wl_rxsts *sts, struct sk_buff *p) {
if (monitor & MONITOR_STS) {
skb_push(p, sizeof(struct wl_rxsts));
memcpy(p->data, sts, sizeof(struct wl_rxsts));
p->fieldE |= 0x80u;
p->flags |= 0x80u;
wl_sendup_multiif(wl, p);
}

@@ -127,7 +127,7 @@ wl_monitor_hook(struct wl_info *wl, struct wl_rxsts *sts, struct sk_buff *p) {

if (monitor & MONITOR_IEEE80211) {
skb_pull(p, PLCP_HDR_LEN);
p->fieldE |= 0x80u;
p->flags |= 0x80u;
wl_sendup_multiif(wl, p);
}

0 comments on commit a8126fb

Please sign in to comment.
You can’t perform that action at this time.