projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added start of the Still Image Host Class driver demo and driver code.
[pub/USBasp.git]
/
LUFA
/
Drivers
/
USB
/
LowLevel
/
Pipe.h
diff --git
a/LUFA/Drivers/USB/LowLevel/Pipe.h
b/LUFA/Drivers/USB/LowLevel/Pipe.h
index
b6fad51
..
1057ec8
100644
(file)
--- a/
LUFA/Drivers/USB/LowLevel/Pipe.h
+++ b/
LUFA/Drivers/USB/LowLevel/Pipe.h
@@
-566,12
+566,16
@@
static inline uint16_t Pipe_Read_Word_LE(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
\r
static inline uint16_t Pipe_Read_Word_LE(void)
\r
{
\r
static inline uint16_t Pipe_Read_Word_LE(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
\r
static inline uint16_t Pipe_Read_Word_LE(void)
\r
{
\r
- uint16_t Data;
\r
+ union
\r
+ {
\r
+ uint16_t Word;
\r
+ uint8_t Bytes[2];
\r
+ } Data;
\r
\r
\r
- Data
= UPDATX;
\r
- Data
|= (((uint16_t)UPDATX) << 8)
;
\r
+ Data
.Bytes[0]
= UPDATX;
\r
+ Data
.Bytes[1] = UPDATX
;
\r
\r
\r
- return Data;
\r
+ return Data
.Word
;
\r
}
\r
\r
/** Reads two bytes from the currently selected pipe's bank in big endian format, for OUT
\r
}
\r
\r
/** Reads two bytes from the currently selected pipe's bank in big endian format, for OUT
\r
@@
-584,12
+588,16
@@
static inline uint16_t Pipe_Read_Word_BE(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
\r
static inline uint16_t Pipe_Read_Word_BE(void)
\r
{
\r
static inline uint16_t Pipe_Read_Word_BE(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
\r
static inline uint16_t Pipe_Read_Word_BE(void)
\r
{
\r
- uint16_t Data;
\r
+ union
\r
+ {
\r
+ uint16_t Word;
\r
+ uint8_t Bytes[2];
\r
+ } Data;
\r
\r
\r
- Data
= (((uint16_t)UPDATX) << 8)
;
\r
- Data
|
= UPDATX;
\r
+ Data
.Bytes[1] = UPDATX
;
\r
+ Data
.Bytes[0]
= UPDATX;
\r
\r
\r
- return Data;
\r
+ return Data
.Word
;
\r
}
\r
\r
/** Writes two bytes to the currently selected pipe's bank in little endian format, for IN
\r
}
\r
\r
/** Writes two bytes to the currently selected pipe's bank in little endian format, for IN
\r
@@
-691,8
+699,10
@@
static inline void Pipe_Write_DWord_LE(const uint32_t DWord) ATTR_ALWAYS_INLINE;
\r
static inline void Pipe_Write_DWord_LE(const uint32_t DWord)
\r
{
\r
static inline void Pipe_Write_DWord_LE(const uint32_t DWord) ATTR_ALWAYS_INLINE;
\r
static inline void Pipe_Write_DWord_LE(const uint32_t DWord)
\r
{
\r
- Pipe_Write_Word_LE(DWord);
\r
- Pipe_Write_Word_LE(DWord >> 16);
\r
+ UPDATX = (DWord & 0xFF);
\r
+ UPDATX = (DWord >> 8);
\r
+ UPDATX = (DWord >> 16);
\r
+ UPDATX = (DWord >> 24);
\r
}
\r
\r
/** Writes four bytes to the currently selected pipe's bank in big endian format, for IN
\r
}
\r
\r
/** Writes four bytes to the currently selected pipe's bank in big endian format, for IN
\r
@@
-705,8
+715,10
@@
static inline void Pipe_Write_DWord_BE(const uint32_t DWord) ATTR_ALWAYS_INLINE;
\r
static inline void Pipe_Write_DWord_BE(const uint32_t DWord)
\r
{
\r
static inline void Pipe_Write_DWord_BE(const uint32_t DWord) ATTR_ALWAYS_INLINE;
\r
static inline void Pipe_Write_DWord_BE(const uint32_t DWord)
\r
{
\r
- Pipe_Write_Word_BE(DWord >> 16);
\r
- Pipe_Write_Word_BE(DWord);
\r
+ UPDATX = (DWord >> 24);
\r
+ UPDATX = (DWord >> 16);
\r
+ UPDATX = (DWord >> 8);
\r
+ UPDATX = (DWord & 0xFF);
\r
}
\r
\r
/** Discards four bytes from the currently selected pipe's bank, for OUT direction pipes.
\r
}
\r
\r
/** Discards four bytes from the currently selected pipe's bank, for OUT direction pipes.
\r
@@
-836,7
+848,7
@@
*/
\r
uint8_t Pipe_Write_Stream_LE(void* Buffer, uint16_t Length _CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);
\r
\r
*/
\r
uint8_t Pipe_Write_Stream_LE(void* Buffer, uint16_t Length _CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);
\r
\r
- /** EEPROM buffer source version of \ref Pipe_Write_Stream_LE.
\r
+ /** EEPROM buffer source version of \ref Pipe_Write_Stream_LE
()
.
\r
*
\r
* \ingroup Group_PipeStreamRW
\r
*
\r
*
\r
* \ingroup Group_PipeStreamRW
\r
*
\r
@@
-848,7
+860,7
@@
*/
\r
uint8_t Pipe_Write_EStream_LE(void* Buffer, uint16_t Length _CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);
\r
\r
*/
\r
uint8_t Pipe_Write_EStream_LE(void* Buffer, uint16_t Length _CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);
\r
\r
- /** FLASH buffer source version of \ref Pipe_Write_Stream_LE.
\r
+ /** FLASH buffer source version of \ref Pipe_Write_Stream_LE
()
.
\r
*
\r
* \note The FLASH data must be located in the first 64KB of FLASH for this function to work correctly.
\r
*
\r
*
\r
* \note The FLASH data must be located in the first 64KB of FLASH for this function to work correctly.
\r
*
\r
@@
-885,7
+897,7
@@
*/
\r
uint8_t Pipe_Write_Stream_BE(void* Buffer, uint16_t Length _CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);
\r
\r
*/
\r
uint8_t Pipe_Write_Stream_BE(void* Buffer, uint16_t Length _CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);
\r
\r
- /** EEPROM buffer source version of \ref Pipe_Write_Stream_BE.
\r
+ /** EEPROM buffer source version of \ref Pipe_Write_Stream_BE
()
.
\r
*
\r
* \ingroup Group_PipeStreamRW
\r
*
\r
*
\r
* \ingroup Group_PipeStreamRW
\r
*
\r
@@
-897,7
+909,7
@@
*/
\r
uint8_t Pipe_Write_EStream_BE(void* Buffer, uint16_t Length _CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);
\r
\r
*/
\r
uint8_t Pipe_Write_EStream_BE(void* Buffer, uint16_t Length _CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);
\r
\r
- /** FLASH buffer source version of \ref Pipe_Write_Stream_BE.
\r
+ /** FLASH buffer source version of \ref Pipe_Write_Stream_BE
()
.
\r
*
\r
* \note The FLASH data must be located in the first 64KB of FLASH for this function to work correctly.
\r
*
\r
*
\r
* \note The FLASH data must be located in the first 64KB of FLASH for this function to work correctly.
\r
*
\r
@@
-926,7
+938,7
@@
*
\r
* \ingroup Group_PipeStreamRW
\r
*
\r
*
\r
* \ingroup Group_PipeStreamRW
\r
*
\r
- * \param[out] Buffer
Pointer to the source data buffer to write to.
\r
+ * \param[out] Buffer Pointer to the source data buffer to write to.
\r
* \param[in] Length Number of bytes to read for the currently selected pipe to read from.
\r
* \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
\r
*
\r
* \param[in] Length Number of bytes to read for the currently selected pipe to read from.
\r
* \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
\r
*
\r
@@
-934,11
+946,11
@@
*/
\r
uint8_t Pipe_Read_Stream_LE(void* Buffer, uint16_t Length _CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);
\r
\r
*/
\r
uint8_t Pipe_Read_Stream_LE(void* Buffer, uint16_t Length _CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);
\r
\r
- /** EEPROM buffer source version of \ref Pipe_Read_Stream_LE.
\r
+ /** EEPROM buffer source version of \ref Pipe_Read_Stream_LE
()
.
\r
*
\r
* \ingroup Group_PipeStreamRW
\r
*
\r
*
\r
* \ingroup Group_PipeStreamRW
\r
*
\r
- * \param[out] Buffer
Pointer to the source data buffer to write to.
\r
+ * \param[out] Buffer Pointer to the source data buffer to write to.
\r
* \param[in] Length Number of bytes to read for the currently selected pipe to read from.
\r
* \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
\r
*
\r
* \param[in] Length Number of bytes to read for the currently selected pipe to read from.
\r
* \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
\r
*
\r
@@
-961,7
+973,7
@@
*
\r
* \ingroup Group_PipeStreamRW
\r
*
\r
*
\r
* \ingroup Group_PipeStreamRW
\r
*
\r
- * \param[out] Buffer
Pointer to the source data buffer to write to.
\r
+ * \param[out] Buffer Pointer to the source data buffer to write to.
\r
* \param[in] Length Number of bytes to read for the currently selected pipe to read from.
\r
* \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
\r
*
\r
* \param[in] Length Number of bytes to read for the currently selected pipe to read from.
\r
* \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
\r
*
\r
@@
-969,11
+981,11
@@
*/
\r
uint8_t Pipe_Read_Stream_BE(void* Buffer, uint16_t Length _CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);
\r
\r
*/
\r
uint8_t Pipe_Read_Stream_BE(void* Buffer, uint16_t Length _CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);
\r
\r
- /** EEPROM buffer source version of \ref Pipe_Read_Stream_BE.
\r
+ /** EEPROM buffer source version of \ref Pipe_Read_Stream_BE
()
.
\r
*
\r
* \ingroup Group_PipeStreamRW
\r
*
\r
*
\r
* \ingroup Group_PipeStreamRW
\r
*
\r
- * \param[out] Buffer
Pointer to the source data buffer to write to.
\r
+ * \param[out] Buffer Pointer to the source data buffer to write to.
\r
* \param[in] Length Number of bytes to read for the currently selected pipe to read from.
\r
* \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
\r
*
\r
* \param[in] Length Number of bytes to read for the currently selected pipe to read from.
\r
* \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
\r
*
\r