All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 01/13] doc/coding-style: Update 'enum as switch variable' section
@ 2014-12-02 17:28 Szymon Janc
  2014-12-02 17:28 ` [PATCH 02/13] profiles: List all enum values in switch Szymon Janc
                   ` (12 more replies)
  0 siblings, 13 replies; 14+ messages in thread
From: Szymon Janc @ 2014-12-02 17:28 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Szymon Janc

Since GCC has option (-Wswitch-enum) that ensure all enum values are
handled inside switch it is no longer necessary to forbit default in
such case.
---
 doc/coding-style.txt | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/doc/coding-style.txt b/doc/coding-style.txt
index 59df64a..b3fbd2e 100644
--- a/doc/coding-style.txt
+++ b/doc/coding-style.txt
@@ -175,10 +175,11 @@ enum animal_type {
 M10: Enum as switch variable
 ============================
 
-If the variable of a switch is an enum, you must not include a default in
-switch body. The reason for this is: If later on you modify the enum by adding
-a new type, and forget to change the switch accordingly, the compiler will
-complain the new added type hasn't been handled.
+If the variable of a switch is an enum, you must include all values in
+switch body even if providing default. This is enforced by compiler option
+enabling extra warning in such case. The reason for this is to ensure that if
+later on enum is modified and one forget to change the switch accordingly, the
+compiler will complain the new added type hasn't been handled.
 
 Example:
 
@@ -190,7 +191,7 @@ enum animal_type {
 
 enum animal_type t;
 
-switch (t) {
+switch (t) { // OK
 case ANIMAL_TYPE_FOUR_LEGS:
 	...
 	break;
@@ -200,7 +201,18 @@ case ANIMAL_TYPE_EIGHT_LEGS:
 case ANIMAL_TYPE_TWO_LEGS:
 	...
 	break;
-default:  // wrong
+default:
+	break;
+}
+
+switch (t) { // Wrong
+case ANIMAL_TYPE_FOUR_LEGS:
+	...
+	break;
+case ANIMAL_TYPE_TWO_LEGS:
+	...
+	break;
+default:
 	break;
 }
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 02/13] profiles: List all enum values in switch
  2014-12-02 17:28 [PATCH 01/13] doc/coding-style: Update 'enum as switch variable' section Szymon Janc
@ 2014-12-02 17:28 ` Szymon Janc
  2014-12-02 17:28 ` [PATCH 03/13] lib: " Szymon Janc
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Szymon Janc @ 2014-12-02 17:28 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Szymon Janc

As described in coding style M10.
---
 profiles/alert/server.c  |  1 +
 profiles/audio/a2dp.c    | 12 ++++++++++++
 profiles/audio/avrcp.c   |  1 +
 profiles/audio/control.c |  2 ++
 profiles/health/mcap.c   |  1 +
 5 files changed, 17 insertions(+)

diff --git a/profiles/alert/server.c b/profiles/alert/server.c
index 8601bf1..aefcff8 100644
--- a/profiles/alert/server.c
+++ b/profiles/alert/server.c
@@ -406,6 +406,7 @@ static void attio_connected_cb(GAttrib *attrib, gpointer user_data)
 		len = enc_notification(al_adapter->hnd_value[type],
 					nd->value, nd->len, pdu, len);
 		break;
+	case NOTIFY_SIZE:
 	default:
 		DBG("Unknown type, could not send notification");
 		goto end;
diff --git a/profiles/audio/a2dp.c b/profiles/audio/a2dp.c
index 6b72f99..75503f3 100644
--- a/profiles/audio/a2dp.c
+++ b/profiles/audio/a2dp.c
@@ -1619,6 +1619,9 @@ unsigned int a2dp_config(struct avdtp *session, struct a2dp_sep *sep,
 			}
 		}
 		break;
+	case AVDTP_STATE_CONFIGURED:
+	case AVDTP_STATE_CLOSING:
+	case AVDTP_STATE_ABORTING:
 	default:
 		error("SEP in bad state for requesting a new stream");
 		goto failed;
@@ -1675,6 +1678,8 @@ unsigned int a2dp_resume(struct avdtp *session, struct a2dp_sep *sep,
 			cb_data->source_id = g_idle_add(finalize_resume,
 								setup);
 		break;
+	case AVDTP_STATE_CLOSING:
+	case AVDTP_STATE_ABORTING:
 	default:
 		error("SEP in bad state for resume");
 		goto failed;
@@ -1719,6 +1724,9 @@ unsigned int a2dp_suspend(struct avdtp *session, struct a2dp_sep *sep,
 		}
 		sep->suspending = TRUE;
 		break;
+	case AVDTP_STATE_CONFIGURED:
+	case AVDTP_STATE_CLOSING:
+	case AVDTP_STATE_ABORTING:
 	default:
 		error("SEP in bad state for suspend");
 		goto failed;
@@ -1806,6 +1814,10 @@ gboolean a2dp_sep_unlock(struct a2dp_sep *sep, struct avdtp *session)
 		if (avdtp_suspend(session, sep->stream) == 0)
 			sep->suspending = TRUE;
 		break;
+	case AVDTP_STATE_IDLE:
+	case AVDTP_STATE_CONFIGURED:
+	case AVDTP_STATE_CLOSING:
+	case AVDTP_STATE_ABORTING:
 	default:
 		break;
 	}
diff --git a/profiles/audio/avrcp.c b/profiles/audio/avrcp.c
index 5c3c4f9..11de6ee 100644
--- a/profiles/audio/avrcp.c
+++ b/profiles/audio/avrcp.c
@@ -3610,6 +3610,7 @@ static void state_changed(struct btd_device *device, avctp_state_t old_state,
 		session_init_browsing(session);
 
 		break;
+	case AVCTP_STATE_BROWSING_CONNECTING:
 	default:
 		return;
 	}
diff --git a/profiles/audio/control.c b/profiles/audio/control.c
index ab94a57..3985362 100644
--- a/profiles/audio/control.c
+++ b/profiles/audio/control.c
@@ -96,6 +96,8 @@ static void state_changed(struct btd_device *dev, avctp_state_t old_state,
 		g_dbus_emit_property_changed(conn, path,
 					AUDIO_CONTROL_INTERFACE, "Connected");
 		break;
+	case AVCTP_STATE_BROWSING_CONNECTING:
+	case AVCTP_STATE_BROWSING_CONNECTED:
 	default:
 		return;
 	}
diff --git a/profiles/health/mcap.c b/profiles/health/mcap.c
index a20a7ad..cc47a1e 100644
--- a/profiles/health/mcap.c
+++ b/profiles/health/mcap.c
@@ -952,6 +952,7 @@ static gboolean parse_set_opts(struct mcap_mdl_cb *mdl_cb, GError **err,
 			c->mdl_reconn_req = va_arg(args,
 						mcap_remote_mdl_reconn_req_cb);
 			break;
+		case MCAP_MDL_CB_INVALID:
 		default:
 			g_set_error(err, MCAP_ERROR, MCAP_ERROR_INVALID_ARGS,
 						"Unknown option %d", cb);
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 03/13] lib: List all enum values in switch
  2014-12-02 17:28 [PATCH 01/13] doc/coding-style: Update 'enum as switch variable' section Szymon Janc
  2014-12-02 17:28 ` [PATCH 02/13] profiles: List all enum values in switch Szymon Janc
@ 2014-12-02 17:28 ` Szymon Janc
  2014-12-02 17:28 ` [PATCH 04/13] btio: " Szymon Janc
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Szymon Janc @ 2014-12-02 17:28 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Szymon Janc

As described in coding style M10.
---
 lib/uuid.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/uuid.c b/lib/uuid.c
index 5c3f986..186a7e6 100644
--- a/lib/uuid.c
+++ b/lib/uuid.c
@@ -84,6 +84,7 @@ void bt_uuid_to_uuid128(const bt_uuid_t *src, bt_uuid_t *dst)
 	case BT_UUID16:
 		bt_uuid16_to_uuid128(src, dst);
 		break;
+	case BT_UUID_UNSPEC:
 	default:
 		break;
 	}
@@ -171,6 +172,7 @@ int bt_uuid_to_string(const bt_uuid_t *uuid, char *str, size_t n)
 				ntohl(data4), ntohs(data5));
 		}
 		break;
+	case BT_UUID_UNSPEC:
 	default:
 		snprintf(str, n, "Type of UUID (%x) unknown.", uuid->type);
 		return -EINVAL;	/* Enum type of UUID not set */
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 04/13] btio: List all enum values in switch
  2014-12-02 17:28 [PATCH 01/13] doc/coding-style: Update 'enum as switch variable' section Szymon Janc
  2014-12-02 17:28 ` [PATCH 02/13] profiles: List all enum values in switch Szymon Janc
  2014-12-02 17:28 ` [PATCH 03/13] lib: " Szymon Janc
@ 2014-12-02 17:28 ` Szymon Janc
  2014-12-02 17:28 ` [PATCH 05/13] attrib: " Szymon Janc
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Szymon Janc @ 2014-12-02 17:28 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Szymon Janc

As described in coding style M10.
---
 btio/btio.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/btio/btio.c b/btio/btio.c
index 4ec286c..db731fa 100644
--- a/btio/btio.c
+++ b/btio/btio.c
@@ -875,6 +875,12 @@ static gboolean parse_set_opts(struct set_opts *opts, GError **err,
 		case BT_IO_OPT_VOICE:
 			opts->voice = va_arg(args, int);
 			break;
+		case BT_IO_OPT_INVALID:
+		case BT_IO_OPT_KEY_SIZE:
+		case BT_IO_OPT_SOURCE_CHANNEL:
+		case BT_IO_OPT_DEST_CHANNEL:
+		case BT_IO_OPT_HANDLE:
+		case BT_IO_OPT_CLASS:
 		default:
 			g_set_error(err, BT_IO_ERROR, EINVAL,
 					"Unknown option %d", opt);
@@ -1141,6 +1147,13 @@ parse_opts:
 			}
 			*(va_arg(args, uint32_t *)) = priority;
 			break;
+		case BT_IO_OPT_INVALID:
+		case BT_IO_OPT_SOURCE_TYPE:
+		case BT_IO_OPT_CHANNEL:
+		case BT_IO_OPT_SOURCE_CHANNEL:
+		case BT_IO_OPT_DEST_CHANNEL:
+		case BT_IO_OPT_MTU:
+		case BT_IO_OPT_VOICE:
 		default:
 			g_set_error(err, BT_IO_ERROR, EINVAL,
 					"Unknown option %d", opt);
@@ -1274,6 +1287,19 @@ static gboolean rfcomm_get(int sock, GError **err, BtIOOption opt1,
 			}
 			memcpy(va_arg(args, uint8_t *), dev_class, 3);
 			break;
+		case BT_IO_OPT_SOURCE_TYPE:
+		case BT_IO_OPT_DEST_TYPE:
+		case BT_IO_OPT_KEY_SIZE:
+		case BT_IO_OPT_PSM:
+		case BT_IO_OPT_CID:
+		case BT_IO_OPT_MTU:
+		case BT_IO_OPT_OMTU:
+		case BT_IO_OPT_IMTU:
+		case BT_IO_OPT_MODE:
+		case BT_IO_OPT_FLUSHABLE:
+		case BT_IO_OPT_PRIORITY:
+		case BT_IO_OPT_VOICE:
+		case BT_IO_OPT_INVALID:
 		default:
 			g_set_error(err, BT_IO_ERROR, EINVAL,
 					"Unknown option %d", opt);
@@ -1359,6 +1385,22 @@ static gboolean sco_get(int sock, GError **err, BtIOOption opt1, va_list args)
 			}
 			memcpy(va_arg(args, uint8_t *), dev_class, 3);
 			break;
+		case BT_IO_OPT_SOURCE_TYPE:
+		case BT_IO_OPT_DEST_TYPE:
+		case BT_IO_OPT_DEFER_TIMEOUT:
+		case BT_IO_OPT_SEC_LEVEL:
+		case BT_IO_OPT_KEY_SIZE:
+		case BT_IO_OPT_CHANNEL:
+		case BT_IO_OPT_SOURCE_CHANNEL:
+		case BT_IO_OPT_DEST_CHANNEL:
+		case BT_IO_OPT_PSM:
+		case BT_IO_OPT_CID:
+		case BT_IO_OPT_MASTER:
+		case BT_IO_OPT_MODE:
+		case BT_IO_OPT_FLUSHABLE:
+		case BT_IO_OPT_PRIORITY:
+		case BT_IO_OPT_VOICE:
+		case BT_IO_OPT_INVALID:
 		default:
 			g_set_error(err, BT_IO_ERROR, EINVAL,
 					"Unknown option %d", opt);
@@ -1385,6 +1427,7 @@ static gboolean get_valist(GIOChannel *io, BtIOType type, GError **err,
 		return rfcomm_get(sock, err, opt1, args);
 	case BT_IO_SCO:
 		return sco_get(sock, err, opt1, args);
+	case BT_IO_INVALID:
 	default:
 		g_set_error(err, BT_IO_ERROR, EINVAL,
 				"Unknown BtIO type %d", type);
@@ -1452,6 +1495,7 @@ gboolean bt_io_set(GIOChannel *io, GError **err, BtIOOption opt1, ...)
 		return rfcomm_set(sock, opts.sec_level, opts.master, err);
 	case BT_IO_SCO:
 		return sco_set(sock, opts.mtu, opts.voice, err);
+	case BT_IO_INVALID:
 	default:
 		g_set_error(err, BT_IO_ERROR, EINVAL,
 				"Unknown BtIO type %d", type);
@@ -1522,6 +1566,7 @@ static GIOChannel *create_io(gboolean server, struct set_opts *opts,
 		if (!sco_set(sock, opts->mtu, opts->voice, err))
 			goto failed;
 		break;
+	case BT_IO_INVALID:
 	default:
 		g_set_error(err, BT_IO_ERROR, EINVAL,
 				"Unknown BtIO type %d", opts->type);
@@ -1575,6 +1620,7 @@ GIOChannel *bt_io_connect(BtIOConnect connect, gpointer user_data,
 	case BT_IO_SCO:
 		err = sco_connect(sock, &opts.dst);
 		break;
+	case BT_IO_INVALID:
 	default:
 		g_set_error(gerr, BT_IO_ERROR, EINVAL,
 					"Unknown BtIO type %d", opts.type);
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 05/13] attrib: List all enum values in switch
  2014-12-02 17:28 [PATCH 01/13] doc/coding-style: Update 'enum as switch variable' section Szymon Janc
                   ` (2 preceding siblings ...)
  2014-12-02 17:28 ` [PATCH 04/13] btio: " Szymon Janc
@ 2014-12-02 17:28 ` Szymon Janc
  2014-12-02 17:28 ` [PATCH 06/13] core: " Szymon Janc
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Szymon Janc @ 2014-12-02 17:28 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Szymon Janc

As described in coding style M10
---
 attrib/gatt-service.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/attrib/gatt-service.c b/attrib/gatt-service.c
index 874552b..f592a70 100644
--- a/attrib/gatt-service.c
+++ b/attrib/gatt-service.c
@@ -118,6 +118,10 @@ static GSList *parse_opts(gatt_option opt1, va_list args)
 		case GATT_OPT_CHR_AUTHORIZATION:
 			info->authorization = va_arg(args, gatt_option);
 			break;
+		case GATT_CHR_VALUE_READ:
+		case GATT_CHR_VALUE_WRITE:
+		case GATT_CHR_VALUE_BOTH:
+		case GATT_OPT_INVALID:
 		default:
 			error("Invalid option: %d", opt);
 		}
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 06/13] core: List all enum values in switch
  2014-12-02 17:28 [PATCH 01/13] doc/coding-style: Update 'enum as switch variable' section Szymon Janc
                   ` (3 preceding siblings ...)
  2014-12-02 17:28 ` [PATCH 05/13] attrib: " Szymon Janc
@ 2014-12-02 17:28 ` Szymon Janc
  2014-12-02 17:28 ` [PATCH 07/13] gobex: " Szymon Janc
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Szymon Janc @ 2014-12-02 17:28 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Szymon Janc

As described in coding style M10
---
 src/agent.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/agent.c b/src/agent.c
index 97daf71..73b2fdd 100644
--- a/src/agent.c
+++ b/src/agent.c
@@ -242,6 +242,10 @@ void agent_unref(struct agent *agent)
 			passkey_cb = agent->request->cb;
 			passkey_cb(agent, &err, 0, agent->request->user_data);
 			break;
+		case AGENT_REQUEST_CONFIRMATION:
+		case AGENT_REQUEST_AUTHORIZATION:
+		case AGENT_REQUEST_AUTHORIZE_SERVICE:
+		case AGENT_REQUEST_DISPLAY_PINCODE:
 		default:
 			cb = agent->request->cb;
 			cb(agent, &err, agent->request->user_data);
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 07/13] gobex: List all enum values in switch
  2014-12-02 17:28 [PATCH 01/13] doc/coding-style: Update 'enum as switch variable' section Szymon Janc
                   ` (4 preceding siblings ...)
  2014-12-02 17:28 ` [PATCH 06/13] core: " Szymon Janc
@ 2014-12-02 17:28 ` Szymon Janc
  2014-12-02 17:28 ` [PATCH 08/13] obexd: " Szymon Janc
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Szymon Janc @ 2014-12-02 17:28 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Szymon Janc

As described in coding style M10.
---
 gobex/gobex-header.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gobex/gobex-header.c b/gobex/gobex-header.c
index ed7fd08..c594999 100644
--- a/gobex/gobex-header.c
+++ b/gobex/gobex-header.c
@@ -241,6 +241,7 @@ GObexHeader *g_obex_header_decode(const void *data, gsize len,
 			header->extdata = TRUE;
 			header->v.extdata = ptr;
 			break;
+		case G_OBEX_DATA_INHERIT:
 		default:
 			g_set_error(err, G_OBEX_ERROR,
 					G_OBEX_ERROR_INVALID_ARGS,
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 08/13] obexd: List all enum values in switch
  2014-12-02 17:28 [PATCH 01/13] doc/coding-style: Update 'enum as switch variable' section Szymon Janc
                   ` (5 preceding siblings ...)
  2014-12-02 17:28 ` [PATCH 07/13] gobex: " Szymon Janc
@ 2014-12-02 17:28 ` Szymon Janc
  2014-12-02 17:28 ` [PATCH 09/13] shared: " Szymon Janc
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Szymon Janc @ 2014-12-02 17:28 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Szymon Janc

As described in coding style M10.
---
 obexd/client/map.c    | 2 ++
 obexd/plugins/vcard.c | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/obexd/client/map.c b/obexd/client/map.c
index 76cf055..e6c1073 100644
--- a/obexd/client/map.c
+++ b/obexd/client/map.c
@@ -1929,6 +1929,8 @@ static void map_handle_notification(struct map_event *event, void *user_data)
 	case MAP_ET_MESSAGE_SHIFT:
 		map_handle_folder_changed(map, event, event->folder);
 		break;
+	case MAP_ET_MEMORY_FULL:
+	case MAP_ET_MEMORY_AVAILABLE:
 	default:
 		break;
 	}
diff --git a/obexd/plugins/vcard.c b/obexd/plugins/vcard.c
index b36e4bf..aaa126b 100644
--- a/obexd/plugins/vcard.c
+++ b/obexd/plugins/vcard.c
@@ -574,6 +574,7 @@ static void vcard_printf_email(GString *vcards, uint8_t format,
 		else if (format == FORMAT_VCARD30)
 			category_string = "TYPE=INTERNET;TYPE=WORK";
 		break;
+	case FIELD_TYPE_OTHER:
 	default:
 		if (format == FORMAT_VCARD21)
 			category_string = "INTERNET";
@@ -616,6 +617,7 @@ static void vcard_printf_url(GString *vcards, uint8_t format,
 		else if (format == FORMAT_VCARD30)
 			category_string = "TYPE=INTERNET;TYPE=WORK";
 		break;
+	case FIELD_TYPE_OTHER:
 	default:
 		if (format == FORMAT_VCARD21)
 			category_string = "INTERNET";
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 09/13] shared: List all enum values in switch
  2014-12-02 17:28 [PATCH 01/13] doc/coding-style: Update 'enum as switch variable' section Szymon Janc
                   ` (6 preceding siblings ...)
  2014-12-02 17:28 ` [PATCH 08/13] obexd: " Szymon Janc
@ 2014-12-02 17:28 ` Szymon Janc
  2014-12-02 17:28 ` [PATCH 10/13] android: " Szymon Janc
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Szymon Janc @ 2014-12-02 17:28 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Szymon Janc

As described in coding style M10.
---
 src/shared/att.c          | 15 +++++++++++++++
 src/shared/gatt-helpers.c |  1 +
 src/shared/gatt-server.c  |  1 +
 src/shared/hfp.c          |  9 +++++++++
 src/shared/io-glib.c      |  3 +++
 5 files changed, 29 insertions(+)

diff --git a/src/shared/att.c b/src/shared/att.c
index bc01827..ee425d8 100644
--- a/src/shared/att.c
+++ b/src/shared/att.c
@@ -488,6 +488,12 @@ static bool can_write_data(struct io *io, void *user_data)
 	case ATT_OP_TYPE_RSP:
 		/* Set in_req to false to indicate that no request is pending */
 		att->in_req = false;
+
+		/* Fall through to the next case */
+	case ATT_OP_TYPE_CMD:
+	case ATT_OP_TYPE_NOT:
+	case ATT_OP_TYPE_CONF:
+	case ATT_OP_TYPE_UNKNOWN:
 	default:
 		destroy_att_send_op(op);
 		return true;
@@ -784,6 +790,10 @@ static bool can_read_data(struct io *io, void *user_data)
 		att->in_req = true;
 
 		/* Fall through to the next case */
+	case ATT_OP_TYPE_CMD:
+	case ATT_OP_TYPE_NOT:
+	case ATT_OP_TYPE_UNKNOWN:
+	case ATT_OP_TYPE_IND:
 	default:
 		/* For all other opcodes notify the upper layer of the PDU and
 		 * let them act on it.
@@ -1067,6 +1077,11 @@ unsigned int bt_att_send(struct bt_att *att, uint8_t opcode,
 	case ATT_OP_TYPE_IND:
 		result = queue_push_tail(att->ind_queue, op);
 		break;
+	case ATT_OP_TYPE_CMD:
+	case ATT_OP_TYPE_NOT:
+	case ATT_OP_TYPE_UNKNOWN:
+	case ATT_OP_TYPE_RSP:
+	case ATT_OP_TYPE_CONF:
 	default:
 		result = queue_push_tail(att->write_queue, op);
 		break;
diff --git a/src/shared/gatt-helpers.c b/src/shared/gatt-helpers.c
index dc4a8e8..c6e179c 100644
--- a/src/shared/gatt-helpers.c
+++ b/src/shared/gatt-helpers.c
@@ -581,6 +581,7 @@ static void put_uuid_le(const bt_uuid_t *src, void *dst)
 		bt_uuid_to_uuid128(src, &uuid);
 		bswap_128(&uuid.value.u128, dst);
 		break;
+	case BT_UUID_UNSPEC:
 	default:
 		break;
 	}
diff --git a/src/shared/gatt-server.c b/src/shared/gatt-server.c
index ef91289..5eb2e4f 100644
--- a/src/shared/gatt-server.c
+++ b/src/shared/gatt-server.c
@@ -512,6 +512,7 @@ static void put_uuid_le(const bt_uuid_t *src, void *dst)
 		bt_uuid_to_uuid128(src, &uuid);
 		bswap_128(&uuid.value.u128, dst);
 		break;
+	case BT_UUID_UNSPEC:
 	default:
 		break;
 	}
diff --git a/src/shared/hfp.c b/src/shared/hfp.c
index 5a91d12..0a5a57e 100644
--- a/src/shared/hfp.c
+++ b/src/shared/hfp.c
@@ -738,6 +738,15 @@ bool hfp_gw_send_result(struct hfp_gw *hfp, enum hfp_result result)
 	case HFP_RESULT_ERROR:
 		str = "ERROR";
 		break;
+	case HFP_RESULT_RING:
+	case HFP_RESULT_NO_CARRIER:
+	case HFP_RESULT_BUSY:
+	case HFP_RESULT_NO_ANSWER:
+	case HFP_RESULT_DELAYED:
+	case HFP_RESULT_BLACKLISTED:
+	case HFP_RESULT_CME_ERROR:
+	case HFP_RESULT_NO_DIALTONE:
+	case HFP_RESULT_CONNECT:
 	default:
 		return false;
 	}
diff --git a/src/shared/io-glib.c b/src/shared/io-glib.c
index e9578e1..6687a6b 100644
--- a/src/shared/io-glib.c
+++ b/src/shared/io-glib.c
@@ -220,6 +220,9 @@ static bool io_set_handler(struct io *io, GIOCondition cond,
 	case G_IO_HUP:
 		watch = &io->disconnect_watch;
 		break;
+	case G_IO_PRI:
+	case G_IO_ERR:
+	case G_IO_NVAL:
 	default:
 		return false;
 	}
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 10/13] android: List all enum values in switch
  2014-12-02 17:28 [PATCH 01/13] doc/coding-style: Update 'enum as switch variable' section Szymon Janc
                   ` (7 preceding siblings ...)
  2014-12-02 17:28 ` [PATCH 09/13] shared: " Szymon Janc
@ 2014-12-02 17:28 ` Szymon Janc
  2014-12-02 17:28 ` [PATCH 11/13] unit: " Szymon Janc
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Szymon Janc @ 2014-12-02 17:28 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Szymon Janc

As described in coding style M10.
---
 android/avdtp.c            |  3 +++
 android/avdtptest.c        |  1 +
 android/client/if-bt.c     | 28 +++++++++++++++++++++++++++
 android/gatt.c             |  1 +
 android/hal-bluetooth.c    | 15 +++++++++++++++
 android/hal-utils.c        |  2 ++
 android/handsfree-client.c |  3 +++
 android/system/audio.h     | 48 ++++++++++++++++++++++++++++++++++++++++++++++
 8 files changed, 101 insertions(+)

diff --git a/android/avdtp.c b/android/avdtp.c
index 9f2527f..853fdf3 100644
--- a/android/avdtp.c
+++ b/android/avdtp.c
@@ -1765,6 +1765,9 @@ static gboolean avdtp_delayreport_cmd(struct avdtp *session,
 	case AVDTP_STATE_CLOSING:
 		err = AVDTP_BAD_STATE;
 		goto failed;
+	case AVDTP_STATE_CONFIGURED:
+	case AVDTP_STATE_OPEN:
+	case AVDTP_STATE_STREAMING:
 	default:
 		break;
 	}
diff --git a/android/avdtptest.c b/android/avdtptest.c
index a56b9c0..ce39519 100644
--- a/android/avdtptest.c
+++ b/android/avdtptest.c
@@ -141,6 +141,7 @@ static void send_command(void)
 	case CMD_DELAY:
 		avdtp_delay_report(avdtp , avdtp_stream , 250);
 		break;
+	case CMD_NONE:
 	default:
 		break;
 	}
diff --git a/android/client/if-bt.c b/android/client/if-bt.c
index 4f1a9d9..776098e 100644
--- a/android/client/if-bt.c
+++ b/android/client/if-bt.c
@@ -289,6 +289,8 @@ static void ssp_request_cb(bt_bdaddr_t *remote_bd_addr, bt_bdname_t *bd_name,
 
 		terminal_prompt_for(prompt, ssp_request_yes_no_answer);
 		break;
+	case BT_SSP_VARIANT_PASSKEY_ENTRY:
+	case BT_SSP_VARIANT_PASSKEY_NOTIFICATION:
 	default:
 		haltest_info("Not automatically handled\n");
 		break;
@@ -554,6 +556,19 @@ static void set_adapter_property_p(int argc, const char **argv)
 		property.len = sizeof(timeout);
 		break;
 
+	case BT_PROPERTY_BDADDR:
+	case BT_PROPERTY_UUIDS:
+	case BT_PROPERTY_CLASS_OF_DEVICE:
+	case BT_PROPERTY_TYPE_OF_DEVICE:
+	case BT_PROPERTY_SERVICE_RECORD:
+	case BT_PROPERTY_ADAPTER_BONDED_DEVICES:
+	case BT_PROPERTY_REMOTE_FRIENDLY_NAME:
+	case BT_PROPERTY_REMOTE_RSSI:
+	case BT_PROPERTY_REMOTE_VERSION_INFO:
+	case BT_PROPERTY_REMOTE_DEVICE_TIMESTAMP:
+#if ANDROID_VERSION >= PLATFORM_VER(5, 0, 0)
+	case BT_PROPERTY_LOCAL_LE_FEATURES:
+#endif
 	default:
 		haltest_error("Invalid property %s\n", argv[3]);
 		return;
@@ -630,6 +645,19 @@ static void set_remote_device_property_p(int argc, const char **argv)
 		property.len = strlen(argv[4]);
 		property.val = (char *) argv[4];
 		break;
+	case BT_PROPERTY_BDNAME:
+	case BT_PROPERTY_BDADDR:
+	case BT_PROPERTY_UUIDS:
+	case BT_PROPERTY_CLASS_OF_DEVICE:
+	case BT_PROPERTY_TYPE_OF_DEVICE:
+	case BT_PROPERTY_SERVICE_RECORD:
+	case BT_PROPERTY_ADAPTER_SCAN_MODE:
+	case BT_PROPERTY_ADAPTER_BONDED_DEVICES:
+	case BT_PROPERTY_ADAPTER_DISCOVERY_TIMEOUT:
+	case BT_PROPERTY_REMOTE_RSSI:
+	case BT_PROPERTY_REMOTE_VERSION_INFO:
+	case BT_PROPERTY_LOCAL_LE_FEATURES:
+	case BT_PROPERTY_REMOTE_DEVICE_TIMESTAMP:
 	default:
 		return;
 	}
diff --git a/android/gatt.c b/android/gatt.c
index b9b3c7b..3cf4f67 100644
--- a/android/gatt.c
+++ b/android/gatt.c
@@ -5146,6 +5146,7 @@ static uint32_t add_sdp_record(const bt_uuid_t *uuid, uint16_t start,
 	case BT_UUID128:
 		sdp_uuid128_create(&u, &uuid->value.u128);
 		break;
+	case BT_UUID_UNSPEC:
 	default:
 		return 0;
 	}
diff --git a/android/hal-bluetooth.c b/android/hal-bluetooth.c
index cceb196..b13cffe 100644
--- a/android/hal-bluetooth.c
+++ b/android/hal-bluetooth.c
@@ -116,6 +116,21 @@ static void adapter_prop_from_hal(const bt_property_t *property, uint8_t *type,
 	case HAL_PROP_ADAPTER_SCAN_MODE:
 		enum_prop_from_hal(property, len, val, bt_scan_mode_t);
 		break;
+	case BT_PROPERTY_BDNAME:
+	case BT_PROPERTY_BDADDR:
+	case BT_PROPERTY_UUIDS:
+	case BT_PROPERTY_CLASS_OF_DEVICE:
+	case BT_PROPERTY_TYPE_OF_DEVICE:
+	case BT_PROPERTY_SERVICE_RECORD:
+	case BT_PROPERTY_ADAPTER_BONDED_DEVICES:
+	case BT_PROPERTY_ADAPTER_DISCOVERY_TIMEOUT:
+	case BT_PROPERTY_REMOTE_FRIENDLY_NAME:
+	case BT_PROPERTY_REMOTE_RSSI:
+	case BT_PROPERTY_REMOTE_VERSION_INFO:
+	case BT_PROPERTY_REMOTE_DEVICE_TIMESTAMP:
+#if ANDROID_VERSION >= PLATFORM_VER(5, 0, 0)
+	case BT_PROPERTY_LOCAL_LE_FEATURES:
+#endif
 	default:
 		*len = property->len;
 		memcpy(val, property->val, property->len);
diff --git a/android/hal-utils.c b/android/hal-utils.c
index f18a82c..004d89d 100644
--- a/android/hal-utils.c
+++ b/android/hal-utils.c
@@ -395,6 +395,8 @@ const char *btproperty2str(const bt_property_t *property)
 		}
 		break;
 #endif
+	case BT_PROPERTY_REMOTE_VERSION_INFO:
+	case BT_PROPERTY_REMOTE_DEVICE_TIMESTAMP:
 	default:
 		sprintf(p, "%p", property->val);
 	}
diff --git a/android/handsfree-client.c b/android/handsfree-client.c
index 9818a47..a81830c 100644
--- a/android/handsfree-client.c
+++ b/android/handsfree-client.c
@@ -428,6 +428,9 @@ static void cmd_complete_cb(enum hfp_result result, enum hfp_error cme_err,
 		ev.type = HAL_HF_CLIENT_CMD_COMP_ERR_CME;
 		ev.cme = cme_err;
 		break;
+	case HFP_RESULT_CONNECT:
+	case HFP_RESULT_RING:
+	case HFP_RESULT_NO_DIALTONE:
 	default:
 		error("hf-client: Unknown error code %d", result);
 		ev.type = HAL_HF_CLIENT_CMD_COMP_ERR;
diff --git a/android/system/audio.h b/android/system/audio.h
index 1d045b3..d2da76d 100644
--- a/android/system/audio.h
+++ b/android/system/audio.h
@@ -1295,6 +1295,30 @@ static inline bool audio_is_valid_format(audio_format_t format)
         case AUDIO_FORMAT_PCM_FLOAT:
         case AUDIO_FORMAT_PCM_24_BIT_PACKED:
             return true;
+        case AUDIO_FORMAT_INVALID:
+        case AUDIO_FORMAT_DEFAULT:
+        case AUDIO_FORMAT_MP3:
+        case AUDIO_FORMAT_AMR_NB:
+        case AUDIO_FORMAT_AMR_WB:
+        case AUDIO_FORMAT_AAC:
+        case AUDIO_FORMAT_HE_AAC_V1:
+        case AUDIO_FORMAT_HE_AAC_V2:
+        case AUDIO_FORMAT_VORBIS:
+        case AUDIO_FORMAT_OPUS:
+        case AUDIO_FORMAT_AC3:
+        case AUDIO_FORMAT_E_AC3:
+        case AUDIO_FORMAT_MAIN_MASK:
+        case AUDIO_FORMAT_SUB_MASK:
+        case AUDIO_FORMAT_AAC_MAIN:
+        case AUDIO_FORMAT_AAC_LC:
+        case AUDIO_FORMAT_AAC_SSR:
+        case AUDIO_FORMAT_AAC_LTP:
+        case AUDIO_FORMAT_AAC_HE_V1:
+        case AUDIO_FORMAT_AAC_SCALABLE:
+        case AUDIO_FORMAT_AAC_ERLC:
+        case AUDIO_FORMAT_AAC_LD:
+        case AUDIO_FORMAT_AAC_HE_V2:
+        case AUDIO_FORMAT_AAC_ELD:
         default:
             return false;
         }
@@ -1341,6 +1365,30 @@ static inline size_t audio_bytes_per_sample(audio_format_t format)
     case AUDIO_FORMAT_PCM_FLOAT:
         size = sizeof(float);
         break;
+    case AUDIO_FORMAT_INVALID:
+    case AUDIO_FORMAT_DEFAULT:
+    case AUDIO_FORMAT_MP3:
+    case AUDIO_FORMAT_AMR_NB:
+    case AUDIO_FORMAT_AMR_WB:
+    case AUDIO_FORMAT_AAC:
+    case AUDIO_FORMAT_HE_AAC_V1:
+    case AUDIO_FORMAT_HE_AAC_V2:
+    case AUDIO_FORMAT_VORBIS:
+    case AUDIO_FORMAT_OPUS:
+    case AUDIO_FORMAT_AC3:
+    case AUDIO_FORMAT_E_AC3:
+    case AUDIO_FORMAT_MAIN_MASK:
+    case AUDIO_FORMAT_SUB_MASK:
+    case AUDIO_FORMAT_AAC_MAIN:
+    case AUDIO_FORMAT_AAC_LC:
+    case AUDIO_FORMAT_AAC_SSR:
+    case AUDIO_FORMAT_AAC_LTP:
+    case AUDIO_FORMAT_AAC_HE_V1:
+    case AUDIO_FORMAT_AAC_SCALABLE:
+    case AUDIO_FORMAT_AAC_ERLC:
+    case AUDIO_FORMAT_AAC_LD:
+    case AUDIO_FORMAT_AAC_HE_V2:
+    case AUDIO_FORMAT_AAC_ELD:
     default:
         break;
     }
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 11/13] unit: List all enum values in switch
  2014-12-02 17:28 [PATCH 01/13] doc/coding-style: Update 'enum as switch variable' section Szymon Janc
                   ` (8 preceding siblings ...)
  2014-12-02 17:28 ` [PATCH 10/13] android: " Szymon Janc
@ 2014-12-02 17:28 ` Szymon Janc
  2014-12-02 17:28 ` [PATCH 12/13] tools: " Szymon Janc
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Szymon Janc @ 2014-12-02 17:28 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Szymon Janc

As described in coding style M10.
---
 unit/test-uuid.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/unit/test-uuid.c b/unit/test-uuid.c
index 6c7e9d0..49ea031 100644
--- a/unit/test-uuid.c
+++ b/unit/test-uuid.c
@@ -115,6 +115,7 @@ static void test_uuid(gconstpointer data)
 		 */
 		g_assert(memcmp(&uuid.value.u128, test_data->binary, 16) == 0);
 		break;
+	case BT_UUID_UNSPEC:
 	default:
 		return;
         }
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 12/13] tools: List all enum values in switch
  2014-12-02 17:28 [PATCH 01/13] doc/coding-style: Update 'enum as switch variable' section Szymon Janc
                   ` (9 preceding siblings ...)
  2014-12-02 17:28 ` [PATCH 11/13] unit: " Szymon Janc
@ 2014-12-02 17:28 ` Szymon Janc
  2014-12-02 17:28 ` [PATCH 13/13] build: Enable -Wswitch-enum in maintainer mode Szymon Janc
  2014-12-08 13:25 ` [PATCH 01/13] doc/coding-style: Update 'enum as switch variable' section Szymon Janc
  12 siblings, 0 replies; 14+ messages in thread
From: Szymon Janc @ 2014-12-02 17:28 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Szymon Janc

As described in coding style M10.
---
 tools/hid2hci.c    |  1 +
 tools/parser/lmp.c | 15 +++++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/tools/hid2hci.c b/tools/hid2hci.c
index 2dbfca7..a183bfa 100644
--- a/tools/hid2hci.c
+++ b/tools/hid2hci.c
@@ -382,6 +382,7 @@ int main(int argc, char *argv[])
 		err = hid_switch_logitech(device);
 		break;
 	}
+	case METHOD_UNDEF:
 	default:
 		break;
 	}
diff --git a/tools/parser/lmp.c b/tools/parser/lmp.c
index c303c1b..3f65ace 100644
--- a/tools/parser/lmp.c
+++ b/tools/parser/lmp.c
@@ -120,6 +120,11 @@ static inline void comb_key(struct frame *frm)
 		memcpy(pairing_data.comb_key_s, val, 16);
 		pairing_state = AU_RAND_M;
 		break;
+	case IN_RAND:
+	case AU_RAND_M:
+	case AU_RAND_S:
+	case SRES_M:
+	case SRES_S:
 	default:
 		pairing_state = IN_RAND;
 		break;
@@ -139,6 +144,11 @@ static inline void au_rand(struct frame *frm)
 		memcpy(pairing_data.au_rand_s, val, 16);
 		pairing_state = SRES_S;
 		break;
+	case COMB_KEY_M:
+	case COMB_KEY_S:
+	case IN_RAND:
+	case SRES_M:
+	case SRES_S:
 	default:
 		pairing_state = IN_RAND;
 		break;
@@ -159,6 +169,11 @@ static inline void sres(struct frame *frm)
 		pairing_state = IN_RAND;
 		pairing_data_dump();
 		break;
+	case COMB_KEY_M:
+	case COMB_KEY_S:
+	case IN_RAND:
+	case AU_RAND_M:
+	case AU_RAND_S:
 	default:
 		pairing_state = IN_RAND;
 		break;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 13/13] build: Enable -Wswitch-enum in maintainer mode
  2014-12-02 17:28 [PATCH 01/13] doc/coding-style: Update 'enum as switch variable' section Szymon Janc
                   ` (10 preceding siblings ...)
  2014-12-02 17:28 ` [PATCH 12/13] tools: " Szymon Janc
@ 2014-12-02 17:28 ` Szymon Janc
  2014-12-08 13:25 ` [PATCH 01/13] doc/coding-style: Update 'enum as switch variable' section Szymon Janc
  12 siblings, 0 replies; 14+ messages in thread
From: Szymon Janc @ 2014-12-02 17:28 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Szymon Janc

This makes GCC verify if all enum values are listed in switch.
---
 acinclude.m4 | 1 +
 1 file changed, 1 insertion(+)

diff --git a/acinclude.m4 b/acinclude.m4
index 2065852..4c241bf 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -20,6 +20,7 @@ AC_DEFUN([COMPILER_FLAGS], [
 		with_cflags="$with_cflags -Wmissing-declarations"
 		with_cflags="$with_cflags -Wredundant-decls"
 		with_cflags="$with_cflags -Wcast-align"
+		with_cflags="$with_cflags -Wswitch-enum"
 		with_cflags="$with_cflags -DG_DISABLE_DEPRECATED"
 		with_cflags="$with_cflags -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_28"
 		with_cflags="$with_cflags -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_28"
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH 01/13] doc/coding-style: Update 'enum as switch variable' section
  2014-12-02 17:28 [PATCH 01/13] doc/coding-style: Update 'enum as switch variable' section Szymon Janc
                   ` (11 preceding siblings ...)
  2014-12-02 17:28 ` [PATCH 13/13] build: Enable -Wswitch-enum in maintainer mode Szymon Janc
@ 2014-12-08 13:25 ` Szymon Janc
  12 siblings, 0 replies; 14+ messages in thread
From: Szymon Janc @ 2014-12-08 13:25 UTC (permalink / raw)
  To: linux-bluetooth

On Tuesday 02 of December 2014 18:28:26 Szymon Janc wrote:
> Since GCC has option (-Wswitch-enum) that ensure all enum values are
> handled inside switch it is no longer necessary to forbit default in
> such case.
> ---
>  doc/coding-style.txt | 24 ++++++++++++++++++------
>  1 file changed, 18 insertions(+), 6 deletions(-)
> 
> diff --git a/doc/coding-style.txt b/doc/coding-style.txt
> index 59df64a..b3fbd2e 100644
> --- a/doc/coding-style.txt
> +++ b/doc/coding-style.txt
> @@ -175,10 +175,11 @@ enum animal_type {
>  M10: Enum as switch variable
>  ============================
> 
> -If the variable of a switch is an enum, you must not include a default in
> -switch body. The reason for this is: If later on you modify the enum by
> adding -a new type, and forget to change the switch accordingly, the
> compiler will -complain the new added type hasn't been handled.
> +If the variable of a switch is an enum, you must include all values in
> +switch body even if providing default. This is enforced by compiler option
> +enabling extra warning in such case. The reason for this is to ensure that
> if +later on enum is modified and one forget to change the switch
> accordingly, the +compiler will complain the new added type hasn't been
> handled.
> 
>  Example:
> 
> @@ -190,7 +191,7 @@ enum animal_type {
> 
>  enum animal_type t;
> 
> -switch (t) {
> +switch (t) { // OK
>  case ANIMAL_TYPE_FOUR_LEGS:
>  	...
>  	break;
> @@ -200,7 +201,18 @@ case ANIMAL_TYPE_EIGHT_LEGS:
>  case ANIMAL_TYPE_TWO_LEGS:
>  	...
>  	break;
> -default:  // wrong
> +default:
> +	break;
> +}
> +
> +switch (t) { // Wrong
> +case ANIMAL_TYPE_FOUR_LEGS:
> +	...
> +	break;
> +case ANIMAL_TYPE_TWO_LEGS:
> +	...
> +	break;
> +default:
>  	break;
>  }

Pushed.

-- 
BR
Szymon Janc

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2014-12-08 13:25 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-02 17:28 [PATCH 01/13] doc/coding-style: Update 'enum as switch variable' section Szymon Janc
2014-12-02 17:28 ` [PATCH 02/13] profiles: List all enum values in switch Szymon Janc
2014-12-02 17:28 ` [PATCH 03/13] lib: " Szymon Janc
2014-12-02 17:28 ` [PATCH 04/13] btio: " Szymon Janc
2014-12-02 17:28 ` [PATCH 05/13] attrib: " Szymon Janc
2014-12-02 17:28 ` [PATCH 06/13] core: " Szymon Janc
2014-12-02 17:28 ` [PATCH 07/13] gobex: " Szymon Janc
2014-12-02 17:28 ` [PATCH 08/13] obexd: " Szymon Janc
2014-12-02 17:28 ` [PATCH 09/13] shared: " Szymon Janc
2014-12-02 17:28 ` [PATCH 10/13] android: " Szymon Janc
2014-12-02 17:28 ` [PATCH 11/13] unit: " Szymon Janc
2014-12-02 17:28 ` [PATCH 12/13] tools: " Szymon Janc
2014-12-02 17:28 ` [PATCH 13/13] build: Enable -Wswitch-enum in maintainer mode Szymon Janc
2014-12-08 13:25 ` [PATCH 01/13] doc/coding-style: Update 'enum as switch variable' section Szymon Janc

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.