From d140d7c183937dfed7799b55e2f1444c70de680d Mon Sep 17 00:00:00 2001 From: Epagris Date: Tue, 25 Jun 2024 07:17:29 +0200 Subject: [PATCH] - EEM class indented --- class/eem.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/class/eem.c b/class/eem.c index 03af74c..f666d83 100644 --- a/class/eem.c +++ b/class/eem.c @@ -83,7 +83,7 @@ int usb_eem_process_and_return(USB_CallbackEvent *cbevt) { bfifo_push(&(eems.netbFifo), cbevt->data, cbevt->size); // store portion of netbound packet usb_eem_push_event(EEM_EVT_NETBOUND_PCKT_RECEIVED); // push notification - if (bfifo_get_free(&eems.netbFifo) < EEM_PCKT_SIZE) { // don't autoarm if OUT no more packets can be stored + if (bfifo_get_free(&eems.netbFifo) < EEM_PCKT_SIZE) { // don't autoarm if OUT no more packets can be stored eems.netbAutoArm = false; cbevt->arm_out_endpoint = false; } @@ -91,23 +91,23 @@ int usb_eem_process_and_return(USB_CallbackEvent *cbevt) { break; case USB_CBEVT_IN: - if (cbevt->ep == eems.data_ep) { // verify endpoint number - if ((eems.hostbFrame != NULL) && (eems.hostbFrameIndex < eems.hostbFrameLength)) { // if there's something in the FIFO - uint8_t *readPtr = ((uint8_t *)eems.hostbFrame) + eems.hostbFrameIndex; // calculate read pointer - uint16_t bytesLeft = eems.hostbFrameLength - eems.hostbFrameIndex; // calculate bytes left - uint32_t writeSize = usbcore_schedule_transmission(eems.data_ep, readPtr, bytesLeft); // attempt to schedule transmission - - //bool enableZLP = (bytesLeft < EEM_TRANSFER_UNIT) && ((bytesLeft % EEM_PCKT_SIZE) == 0); // ZLP transmission should be enabled if this was the last write and transfer size is integer multiple of the USB packet size - //cbevt->enable_autozlp = enableZLP; + if (cbevt->ep == eems.data_ep) { // verify endpoint number + if ((eems.hostbFrame != NULL) && (eems.hostbFrameIndex < eems.hostbFrameLength)) { // if there's something in the FIFO + uint8_t *readPtr = ((uint8_t *)eems.hostbFrame) + eems.hostbFrameIndex; // calculate read pointer + uint16_t bytesLeft = eems.hostbFrameLength - eems.hostbFrameIndex; // calculate bytes left + uint32_t writeSize = usbcore_schedule_transmission(eems.data_ep, readPtr, bytesLeft); // attempt to schedule transmission + + // bool enableZLP = (bytesLeft < EEM_TRANSFER_UNIT) && ((bytesLeft % EEM_PCKT_SIZE) == 0); // ZLP transmission should be enabled if this was the last write and transfer size is integer multiple of the USB packet size + // cbevt->enable_autozlp = enableZLP; eems.hostbFrameIndex += writeSize; // advance frame index - //MSG("U: %u T: %u\n", writeSize, bytesLeft); + // MSG("U: %u T: %u\n", writeSize, bytesLeft); // if (eems.hostbFrameIndex >= eems.hostbFrameLength) { // MSG("---\n"); // } - } else { // no data is waiting for transmission - //usbcore_schedule_transmission(eems.data_ep, NULL, 0); // send ZLP + } else { // no data is waiting for transmission + // usbcore_schedule_transmission(eems.data_ep, NULL, 0); // send ZLP } // if FIFO is empty or flushed, then send notification @@ -241,7 +241,7 @@ void usb_eem_process_hostbound() { } // invalidate frame - USB_EemFrame * oldEemFrame = eems.hostbFrame; + USB_EemFrame *oldEemFrame = eems.hostbFrame; eems.hostbFrame = NULL; // release frame @@ -300,6 +300,10 @@ void usb_eem_ethernet_intercept_cb(EthInterface *intf, const RawPckt *rawPckt) { } void usb_eem_set_intf(EthInterface *intf) { + if (!eems.initialized) { + return; + } + eems.intf = intf; // store interface ethinf_set_intercept_callback(intf, usb_eem_ethernet_intercept_cb); // set intercept callback }