From 374ff37ba49ddf66c2f73d5bbd69e75c6afe8cd7 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Wed, 30 Jan 2019 22:01:02 +0100 Subject: [PATCH] USB_Demo: Extend tr_UsbXfer_compl() beyond CONTROL transfers --- demo/USB_Demo.ttcn | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/demo/USB_Demo.ttcn b/demo/USB_Demo.ttcn index 79c7b0d..9d0bc1f 100644 --- a/demo/USB_Demo.ttcn +++ b/demo/USB_Demo.ttcn @@ -45,13 +45,14 @@ template (value) USB_transfer ts_UsbXfer_DevReq(template (value) USB_DeviceReque } template USB_transfer_compl tr_UsbXfer_compl(template USB_endpoint ep := ?, + template USB_transfer_type ttype := ?, template USB_transfer_status sts := ?, template integer device_hdl := ?, template integer xfer_hdl := ?) := { device_hdl := device_hdl, transfer_hdl := xfer_hdl, - endpoint := 0, - ttype := USB_TRANSFER_TYPE_CONTROL, + endpoint := ep, + ttype := ttype, data := ?, status := sts } @@ -71,7 +72,7 @@ runs on USB_CT return USB_transfer_compl var integer req_hdl := f_usb_get_req_hdl(); USB.send(ts_UsbXfer_DevReq(req, g_dev_hdl, req_hdl)); alt { - [] USB.receive(tr_UsbXfer_compl(0, ?, g_dev_hdl, req_hdl)) -> value tc { } + [] USB.receive(tr_UsbXfer_compl(0, ?, ?, g_dev_hdl, req_hdl)) -> value tc { } [] USB.receive { testcase.stop("Received unexpected primitive from USB"); } @@ -99,11 +100,11 @@ runs on USB_CT return octetstring var integer req_hdl := f_usb_get_req_hdl(); USB.send(ts_UsbXfer_DevReq(ts_DevReq_GET_DESCRIPTOR(dtype, idx, len), g_dev_hdl, req_hdl)); alt { - [] USB.receive(tr_UsbXfer_compl(0, USB_TRANSFER_COMPLETED, g_dev_hdl, req_hdl)) -> value tc { + [] USB.receive(tr_UsbXfer_compl(0, USB_TRANSFER_TYPE_CONTROL, USB_TRANSFER_COMPLETED, g_dev_hdl, req_hdl)) -> value tc { var octetstring raw_desc := substr(tc.data, 8, lengthof(tc.data)-8); return raw_desc; } - [] USB.receive(tr_UsbXfer_compl(0, ?, g_dev_hdl, req_hdl)) -> value tc{ + [] USB.receive(tr_UsbXfer_compl(0, ?, ?, g_dev_hdl, req_hdl)) -> value tc{ setverdict(fail, "Transfer completed unsuccessfully: ", tc); } } @@ -130,11 +131,11 @@ runs on USB_CT return integer { var integer req_hdl := f_usb_get_req_hdl(); USB.send(ts_UsbXfer_DevReq(ts_DevReq_GET_CONFIGURATION, g_dev_hdl, req_hdl)); alt { - [] USB.receive(tr_UsbXfer_compl(0, USB_TRANSFER_COMPLETED, g_dev_hdl, req_hdl)) -> value tc { + [] USB.receive(tr_UsbXfer_compl(0, USB_TRANSFER_TYPE_CONTROL, USB_TRANSFER_COMPLETED, g_dev_hdl, req_hdl)) -> value tc { var octetstring raw_desc := substr(tc.data, 8, lengthof(tc.data)-8); return oct2int(raw_desc[0]); } - [] USB.receive(tr_UsbXfer_compl(0, ?, g_dev_hdl, req_hdl)) -> value tc{ + [] USB.receive(tr_UsbXfer_compl(0, ?, ?, g_dev_hdl, req_hdl)) -> value tc{ setverdict(fail, "Transfer completed unsuccessfully: ", tc); } } @@ -147,11 +148,11 @@ runs on USB_CT return integer { var integer req_hdl := f_usb_get_req_hdl(); USB.send(ts_UsbXfer_DevReq(ts_DevReq_GET_INTERFACE(intf), g_dev_hdl, req_hdl)); alt { - [] USB.receive(tr_UsbXfer_compl(0, USB_TRANSFER_COMPLETED, g_dev_hdl, req_hdl)) -> value tc { + [] USB.receive(tr_UsbXfer_compl(0, USB_TRANSFER_TYPE_CONTROL, USB_TRANSFER_COMPLETED, g_dev_hdl, req_hdl)) -> value tc { var octetstring raw_desc := substr(tc.data, 8, lengthof(tc.data)-8); return oct2int(raw_desc[0]); } - [] USB.receive(tr_UsbXfer_compl(0, ?, g_dev_hdl, req_hdl)) -> value tc{ + [] USB.receive(tr_UsbXfer_compl(0, ?, ?, g_dev_hdl, req_hdl)) -> value tc{ setverdict(fail, "Transfer completed unsuccessfully: ", tc); } } @@ -165,11 +166,11 @@ runs on USB_CT return integer var integer req_hdl := f_usb_get_req_hdl(); USB.send(ts_UsbXfer_DevReq(ts_DevReq_GET_STATUS(recipient, wIndex), g_dev_hdl, req_hdl)); alt { - [] USB.receive(tr_UsbXfer_compl(0, USB_TRANSFER_COMPLETED, g_dev_hdl, req_hdl)) -> value tc { + [] USB.receive(tr_UsbXfer_compl(0, USB_TRANSFER_TYPE_CONTROL, USB_TRANSFER_COMPLETED, g_dev_hdl, req_hdl)) -> value tc { var octetstring raw_desc := substr(tc.data, 8, lengthof(tc.data)-8); return oct2int(raw_desc); } - [] USB.receive(tr_UsbXfer_compl(0, ?, g_dev_hdl, req_hdl)) -> value tc{ + [] USB.receive(tr_UsbXfer_compl(0, USB_TRANSFER_TYPE_CONTROL, ?, g_dev_hdl, req_hdl)) -> value tc{ setverdict(fail, "Transfer completed unsuccessfully: ", tc); } }