| 123456789101112131415161718192021222324252627282930313233343536 |
- #ifndef USB_TRANSFER_FLAGS_H
- #define USB_TRANSFER_FLAGS_H
- #include "app/usb/usb_transfers.h"
- // @USB_TRANSFER_FLAG_SHORTPACKET
- // The bitwise flag used to indicate weither the short packet has received at last OUT transaction or not.
- #define USB_TRANSFER_FLAG_SHORTPACKET (1ul << 0) // Short packet flag
- static inline bool usb_transfer_check_shortpacket( sUSBTransfer_t * transf )
- {
- // check if the last transaction was a Short-packet transaction
- return usb_transfer_check_flags_fast( transf,
- USB_TRANSFER_FLAG_SHORTPACKET,
- USB_TRANSFER_FLAG_SHORTPACKET,
- eUSBTransferFlagMode_Or );
- }
- static inline void usb_transfer_set_shortpacket( sUSBTransfer_t * transf )
- {
- // set the Short-packet signature for transaction
- usb_transfer_modify_flags( transf, USB_TRANSFER_FLAG_SHORTPACKET, USB_TRANSFER_FLAG_SHORTPACKET );
- // protect the flag from clearing
- usb_transfer_modify_flags_locks( transf, USB_TRANSFER_FLAG_SHORTPACKET, USB_TRANSFER_FLAG_SHORTPACKET );
- }
- static inline void usb_transfer_clear_shortpacket( sUSBTransfer_t * transf )
- {
- // un-protect the flag from clearing
- usb_transfer_modify_flags_locks( transf, USB_TRANSFER_FLAG_SHORTPACKET, 0 );
- // reset the Short-packet signature for transaction
- usb_transfer_modify_flags( transf, USB_TRANSFER_FLAG_SHORTPACKET, 0 );
- }
- #endif
|