|
From: Peter K. <pk...@us...> - 2001-09-18 12:22:01
|
The following file was modified in linux/drivers/char/bluetooth:
Name Old version New version Comment
---- ----------- ----------- -------
hci_vendor.c 1.53 1.54=20=20=20=20=20=20=20=20=20=20=20=20
The accompanying log:
Use GET_BITS() and SET_BITS() instead of using bitfields for the
descriptor byte in CSR messages.
The diff of the modified file(s):
--- hci_vendor.c 2001/09/18 08:32:50 1.53
+++ hci_vendor.c 2001/09/18 12:22:00 1.54
@@ -463,16 +463,18 @@
#define CSR_VARID_PACKET_STAT_REPORT 0x1001
#define CSR_VARID_BITERR_REPORT 0x1006
=20
-typedef struct payload_descr
-{
- u8 ch_id:6;
- u8 first:1;
- u8 last:1;
-} __attribute__ ((packed)) payload_descr;
+#define CSR_GET_CH_ID(msg) GET_BITS((msg)->descr, 0, 6)
+#define CSR_SET_CH_ID(msg, id) SET_BITS((msg)->descr, 0, 6, id)
=20
+#define CSR_GET_FIRST(msg) GET_BITS((msg)->descr, 6, 1)
+#define CSR_SET_FIRST(msg, x) SET_BITS((msg)->descr, 6, 1, (x) !=3D 0)
+
+#define CSR_GET_LAST(msg) GET_BITS((msg)->descr, 7, 1)
+#define CSR_SET_LAST(msg, x) SET_BITS((msg)->descr, 7, 1, (x) !=3D 0)
+
typedef struct csr_msg
{
- payload_descr p_descr;
+ u8 descr;
u8 msg[0];
} __attribute__ ((packed)) csr_msg;
=20
@@ -761,9 +763,9 @@
msg =3D (csr_msg *)c_pkt.data;
=20=09
/* General msg header */
- msg->p_descr.last =3D 1; /* first and last segment */
- msg->p_descr.first =3D 1;
- msg->p_descr.ch_id =3D CSR_CH_ID_HQ;
+ CSR_SET_LAST(msg, 1); /* first and last segment */
+ CSR_SET_FIRST(msg, 1);
+ CSR_SET_CH_ID(msg, CSR_CH_ID_HQ);
=20
memcpy(msg->msg, cmd, cmd->len * 2);
=20
@@ -816,9 +818,9 @@
ps =3D (csr_bccmd_ps *)cmd->payload;
=20
/* General msg header */
- msg->p_descr.last =3D 1; /* first and last segment */
- msg->p_descr.first =3D 1;
- msg->p_descr.ch_id =3D CSR_CH_ID_BCCMD;
+ CSR_SET_LAST(msg, 1); /* first and last segment */
+ CSR_SET_FIRST(msg, 1);
+ CSR_SET_CH_ID(msg, CSR_CH_ID_BCCMD);
=20
/* BCCMD type */
=20
@@ -871,9 +873,9 @@
ps =3D (csr_bccmd_ps *)cmd->payload;
=20
/* General msg header */
- msg->p_descr.last =3D 1; /* first and last segment */
- msg->p_descr.first =3D 1;
- msg->p_descr.ch_id =3D CSR_CH_ID_BCCMD;
+ CSR_SET_LAST(msg, 1); /* first and last segment */
+ CSR_SET_FIRST(msg, 1);
+ CSR_SET_CH_ID(msg, CSR_CH_ID_BCCMD);
=20
/* BCCMD type */
cmd->type =3D CSR_MSGTYPE_SETREQ;
@@ -915,9 +917,9 @@
ps =3D (csr_bccmd_ps *)cmd->payload;
=20
/* General msg header */
- msg->p_descr.last =3D 1; /* first and last segment */
- msg->p_descr.first =3D 1;
- msg->p_descr.ch_id =3D CSR_CH_ID_BCCMD;
+ CSR_SET_LAST(msg, 1); /* first and last segment */
+ CSR_SET_FIRST(msg, 1);
+ CSR_SET_CH_ID(msg, CSR_CH_ID_BCCMD);
=20
/* BCCMD type */
cmd->type =3D CSR_MSGTYPE_SETREQ;
@@ -962,9 +964,9 @@
cmd =3D (csr_bccmd *)msg->msg;
=20
/* General msg header */
- msg->p_descr.last =3D 1; /* first and last segment */
- msg->p_descr.first =3D 1;
- msg->p_descr.ch_id =3D CSR_CH_ID_BCCMD;
+ CSR_SET_LAST(msg, 1); /* first and last segment */
+ CSR_SET_FIRST(msg, 1);
+ CSR_SET_CH_ID(msg, CSR_CH_ID_BCCMD);
=20
/* BCCMD type */
cmd->type =3D CSR_MSGTYPE_GETREQ;
@@ -1044,9 +1046,9 @@
ps =3D (csr_bccmd_ps *)cmd->payload;
=20
/* General msg header */
- msg->p_descr.last =3D 1; /* first and last segment */
- msg->p_descr.first =3D 1;
- msg->p_descr.ch_id =3D CSR_CH_ID_BCCMD;
+ CSR_SET_LAST(msg, 1); /* first and last segment */
+ CSR_SET_FIRST(msg, 1);
+ CSR_SET_CH_ID(msg, CSR_CH_ID_BCCMD);
=20
cmd->type =3D CSR_MSGTYPE_SETREQ;
cmd->len =3D 5 + 4;
@@ -1100,7 +1102,7 @@
cmd =3D (struct csr_bccmd *)msg->msg;
ps =3D (struct csr_bccmd_ps *)cmd->payload;
=20
- switch (msg->p_descr.ch_id) {
+ switch (CSR_GET_CH_ID(msg)) {
case CSR_CH_ID_BCCMD:
if (cmd->type =3D=3D CSR_MSGTYPE_GETRESP &&
cmd->status =3D=3D CSR_STATUS_OK) {
@@ -1176,12 +1178,12 @@
=20
#ifdef VERBOSE
printk("msg: last: %d, first: %d, chID: %d\n",=20
- msg->p_descr.last, msg->p_descr.first, msg->p_descr.ch_id);
+ CSR_GET_LAST(msg), CSR_GET_FIRST(msg), CSR_GET_CH_ID(msg));
=20
printk("cmd: type: 0x%04X, msg_len: %d, seq_nbr: %d, varid: 0x%04X, statu=
s: 0x%04X\n",
cmd->type, cmd->len, cmd->seq, cmd->var_id, cmd->status);
=20
- switch (msg->p_descr.ch_id) {
+ switch (CSR_GET_CH_ID(msg)) {
case CSR_CH_ID_BCCMD:
printk("BCCMD MSG\n");
=20
|