Change in osmo-ccid-firmware[master]: git version appended to the product usb string descriptor

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Hoernchen gerrit-no-reply at lists.osmocom.org
Tue Jan 28 13:40:23 UTC 2020


Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/17035 )


Change subject: git version appended to the product usb string descriptor
......................................................................

git version appended to the product usb string descriptor

Change-Id: I4a9d010c9025cf8c14ebaf42de048b9a172c7786
---
M sysmoOCTSIM/main.c
M sysmoOCTSIM/usb_start.c
2 files changed, 26 insertions(+), 7 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/35/17035/1

diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c
index 3db67d9..17255e2 100644
--- a/sysmoOCTSIM/main.c
+++ b/sysmoOCTSIM/main.c
@@ -365,6 +365,19 @@
 	return 0;
 }
 
+static int str_to_usb_desc(char* in, uint8_t in_sz, uint8_t* out, uint8_t out_sz){
+	if(2+in_sz*2 < out_sz)
+		return -1;
+
+	memset(out, 0, out_sz);
+	out[0] = out_sz;
+	out[1] = 0x3;
+	for(int i= 2; i < out_sz; i+=2)
+		out[i] = in[(i >> 1) - 1];
+	return 0;
+}
+
+
 #define RSTCAUSE_STR_SIZE	64
 static void get_rstcause_str(char *out)
 {
@@ -436,13 +449,16 @@
 //#######################
 
 #define NUM_OUT_BUF 16
-char sernr_buf[16*2+1];
-//unicode for descriptor
-uint8_t sernr_buf_descr[1+1+16*2*2];
 
+char sernr_buf[16*2+1];
+char product_buf[] = "sysmoOCTSIM "GIT_VERSION;
+//len, type, 2 byte per hex char * 2 for unicode
+uint8_t sernr_buf_descr[1+1+16*2*2];
+uint8_t product_buf_descr[1+1+sizeof(product_buf)*2];
 
 char rstcause_buf[RSTCAUSE_STR_SIZE];
 
+
 int main(void)
 {
 
@@ -471,12 +487,12 @@
 
 	atmel_start_init();
 	get_chip_unique_serial_str(sernr_buf, sizeof(sernr_buf));
+	str_to_usb_desc(sernr_buf, sizeof(sernr_buf), sernr_buf_descr, sizeof(sernr_buf_descr));
+
+	str_to_usb_desc(product_buf, sizeof(product_buf), product_buf_descr, sizeof(product_buf_descr));
 	get_rstcause_str(rstcause_buf);
 
-	sernr_buf_descr[0] = sizeof(sernr_buf_descr);
-	sernr_buf_descr[1] = 0x3;
-	for(int i= 2; i < sizeof(sernr_buf_descr); i+=2)
-		sernr_buf_descr[i] = sernr_buf[i >> 1];
+
 
 	usb_start();
 
diff --git a/sysmoOCTSIM/usb_start.c b/sysmoOCTSIM/usb_start.c
index f737dc4..d40ea75 100644
--- a/sysmoOCTSIM/usb_start.c
+++ b/sysmoOCTSIM/usb_start.c
@@ -89,6 +89,7 @@
 }
 
 extern uint8_t sernr_buf_descr[];
+extern uint8_t product_buf_descr[];
 /* call-back for every control EP request */
 static int32_t string_req_cb(uint8_t ep, struct usb_req *req, enum usb_ctrl_stage stage)
 {
@@ -118,6 +119,8 @@
 	switch (index) {
 	case STR_DESC_SERIAL:
 		return send_str_desc(ep, req, stage, sernr_buf_descr);
+	case STR_DESC_PRODUCT:
+		return send_str_desc(ep, req, stage, product_buf_descr);
 	default:
 		return ERR_NOT_FOUND;
 	}

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/17035
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ccid-firmware
Gerrit-Branch: master
Gerrit-Change-Id: I4a9d010c9025cf8c14ebaf42de048b9a172c7786
Gerrit-Change-Number: 17035
Gerrit-PatchSet: 1
Gerrit-Owner: Hoernchen <ewild at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200128/e7a298a9/attachment.htm>


More information about the gerrit-log mailing list