1 uint8_t TEMPLATE_FUNC_NAME (TEMPLATE_BUFFER_TYPE Buffer
, 
   5         uint8_t* DataStream 
= ((uint8_t*)Buffer 
+ TEMPLATE_BUFFER_OFFSET(Length
)); 
   8         if ((ErrorCode 
= Endpoint_WaitUntilReady())) 
  11         #if defined(FAST_STREAM_TRANSFERS) 
  12         uint8_t BytesRemToAlignment 
= (Endpoint_BytesInEndpoint() & 0x07); 
  16                 Length 
-= BytesRemToAlignment
; 
  18                 switch (BytesRemToAlignment
) 
  23                                         if (!(Endpoint_IsReadWriteAllowed())) 
  25                                                 TEMPLATE_CLEAR_ENDPOINT(); 
  27                                                 #if !defined(NO_STREAM_CALLBACKS) 
  28                                                 if ((Callback 
!= NULL
) && (Callback() == STREAMCALLBACK_Abort
)) 
  29                                                   return ENDPOINT_RWSTREAM_CallbackAborted
; 
  32                                                 if ((ErrorCode 
= Endpoint_WaitUntilReady())) 
  38                                         TEMPLATE_TRANSFER_BYTE(DataStream
); 
  39                         case 7: TEMPLATE_TRANSFER_BYTE(DataStream
); 
  40                         case 6: TEMPLATE_TRANSFER_BYTE(DataStream
); 
  41                         case 5: TEMPLATE_TRANSFER_BYTE(DataStream
); 
  42                         case 4: TEMPLATE_TRANSFER_BYTE(DataStream
); 
  43                         case 3: TEMPLATE_TRANSFER_BYTE(DataStream
); 
  44                         case 2: TEMPLATE_TRANSFER_BYTE(DataStream
); 
  45                         case 1: TEMPLATE_TRANSFER_BYTE(DataStream
); 
  46                                 } while (Length 
>= 8);   
  53                 if (!(Endpoint_IsReadWriteAllowed())) 
  55                         TEMPLATE_CLEAR_ENDPOINT(); 
  57                         #if !defined(NO_STREAM_CALLBACKS) 
  58                         if ((Callback 
!= NULL
) && (Callback() == STREAMCALLBACK_Abort
)) 
  59                           return ENDPOINT_RWSTREAM_CallbackAborted
; 
  62                         if ((ErrorCode 
= Endpoint_WaitUntilReady())) 
  67                         TEMPLATE_TRANSFER_BYTE(DataStream
); 
  72         return ENDPOINT_RWSTREAM_NoError
; 
  75 #undef TEMPLATE_FUNC_NAME 
  76 #undef TEMPLATE_BUFFER_TYPE 
  77 #undef TEMPLATE_TRANSFER_BYTE 
  78 #undef TEMPLATE_CLEAR_ENDPOINT 
  79 #undef TEMPLATE_BUFFER_OFFSET