From 431d68e3ef9c92ac1b97a45d11430de9b0ba11d6 Mon Sep 17 00:00:00 2001
From: "matthias.ringwald@gmail.com"
 <matthias.ringwald@gmail.com@1a0a8af8-31b5-11de-8e0c-53a27eea117e>
Date: Thu, 9 Jan 2014 20:45:43 +0000
Subject: [PATCH] split out dummy central_device_db code into extra file

---
 ble/central_device_db_dummy.c | 67 +++++++++++++++++++++++++++++++++++
 ble/gap_le.h                  | 15 +++++---
 ble/sm.h                      |  2 +-
 ble/sm_minimal.c              | 31 ----------------
 example/libusb/Makefile       |  1 +
 5 files changed, 79 insertions(+), 37 deletions(-)
 create mode 100644 ble/central_device_db_dummy.c

diff --git a/ble/central_device_db_dummy.c b/ble/central_device_db_dummy.c
new file mode 100644
index 000000000..9a7586bce
--- /dev/null
+++ b/ble/central_device_db_dummy.c
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2011-2012 BlueKitchen GmbH
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holders nor the names of
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ * 4. Any redistribution, use, or modification is done solely for
+ *    personal benefit and not for any commercial purpose or for
+ *    monetary gain.
+ *
+ * THIS SOFTWARE IS PROVIDED BY MATTHIAS RINGWALD AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS
+ * RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+ * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * Please inquire about commercial licensing options at contact@bluekitchen-gmbh.com
+ *
+ */
+#include  "central_device_db.h"
+
+ // Central Device db interface
+void central_device_db_init(){}
+
+// @returns index if successful, -1 otherwise
+int central_device_db_add(int addr_type, bd_addr_t addr, sm_key_t irk, sm_key_t csrk){
+	return -1;
+}
+
+// @returns number of device in db
+int central_device_db_count(void){
+	return 0;
+}
+
+// get device information: addr type and address
+void central_device_db_info(int index, int * addr_type, bd_addr_t addr, sm_key_t csrk){}
+
+// get signature key
+void central_device_db_csrk(int index, sm_key_t csrk){}
+
+// query last used/seen signing counter
+uint32_t central_device_db_counter_get(int index){ 
+	return 0xffffffff;
+}
+
+// update signing counter
+void central_device_db_counter_set(int index, uint32_t counter){}
+
+// free device
+void central_device_db_remove(int index){}
+
diff --git a/ble/gap_le.h b/ble/gap_le.h
index 8d461b098..a48569b06 100644
--- a/ble/gap_le.h
+++ b/ble/gap_le.h
@@ -36,17 +36,22 @@
 
 #pragma once
 
-// address type
 typedef enum {
     GAP_RANDOM_ADDRESS_TYPE_OFF = 0,
     GAP_RANDOM_ADDRESS_NON_RESOLVABLE,
     GAP_RANDOM_ADDRESS_RESOLVABLE,
 } gap_random_address_type_t;
 
-//
-// GAP LE API
-//
+/**
+ * @brief Enable privacy by using random addresses
+ * @param random_address_type to use (incl. OFF)
+ */
 void gap_random_address_set_mode(gap_random_address_type_t random_address_type);
-void gap_random_address_set_update_period(int period_ms);
+
+/**
+ * @brief Sets update period for random address
+ * @param period_ms in ms
+ */
+ void gap_random_address_set_update_period(int period_ms);
 
 
diff --git a/ble/sm.h b/ble/sm.h
index fcca45855..810a2cadd 100644
--- a/ble/sm.h
+++ b/ble/sm.h
@@ -230,7 +230,7 @@ int sm_authenticated(uint8_t addr_type, bd_addr_t address);
 authorization_state_t sm_authorization_state(uint8_t addr_type, bd_addr_t address);
 
 /**
- * @brief Used by ATT Server to request user authorization
+ * @brief Used by att_server.c to request user authorization
  * @param addr_type and address
  * @returns
  */
diff --git a/ble/sm_minimal.c b/ble/sm_minimal.c
index 33beeadc6..a7378e0e1 100644
--- a/ble/sm_minimal.c
+++ b/ble/sm_minimal.c
@@ -228,34 +228,3 @@ void sm_init(){
 // GAP LE
 void gap_random_address_set_mode(gap_random_address_type_t random_address_type){}
 void gap_random_address_set_update_period(int period_ms){}
-
-// Central Device db interface
-void central_device_db_init(){}
-
-// @returns index if successful, -1 otherwise
-int central_device_db_add(int addr_type, bd_addr_t addr, sm_key_t irk, sm_key_t csrk){
-	return -1;
-}
-
-// @returns number of device in db
-int central_device_db_count(void){
-	return 0;
-}
-
-// get device information: addr type and address
-void central_device_db_info(int index, int * addr_type, bd_addr_t addr, sm_key_t csrk){}
-
-// get signature key
-void central_device_db_csrk(int index, sm_key_t csrk){}
-
-// query last used/seen signing counter
-uint32_t central_device_db_counter_get(int index){ 
-	return 0xffffffff;
-}
-
-// update signing counter
-void central_device_db_counter_set(int index, uint32_t counter){}
-
-// free device
-void central_device_db_remove(int index){}
-
diff --git a/example/libusb/Makefile b/example/libusb/Makefile
index 15e3c43ae..2f908bdda 100644
--- a/example/libusb/Makefile
+++ b/example/libusb/Makefile
@@ -43,6 +43,7 @@ SM_REAL = \
 
 SM_MINIMAL = \
 	${BTSTACK_ROOT}/ble/sm_minimal.c  		 	    \
+    ${BTSTACK_ROOT}/ble/central_device_db_dummy.c  \
 
 CORE_OBJ   = $(CORE:.c=.o)
 COMMON_OBJ = $(COMMON:.c=.o)