mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-31 01:20:44 +00:00
btstack_util: add read/write single bytes to little_endian/big_endian functions
for symmetry reasons
This commit is contained in:
parent
d6114072e1
commit
9fce1f717e
@ -74,6 +74,9 @@ void bd_addr_copy(bd_addr_t dest, const bd_addr_t src){
|
||||
(void)memcpy(dest, src, BD_ADDR_LEN);
|
||||
}
|
||||
|
||||
uint8_t little_endian_read_08(const uint8_t* buffer, int position) {
|
||||
return (uint8_t)buffer[position];
|
||||
}
|
||||
uint16_t little_endian_read_16(const uint8_t * buffer, int position){
|
||||
return (uint16_t)(((uint16_t) buffer[position]) | (((uint16_t)buffer[position+1]) << 8));
|
||||
}
|
||||
@ -84,6 +87,11 @@ uint32_t little_endian_read_32(const uint8_t * buffer, int position){
|
||||
return ((uint32_t) buffer[position]) | (((uint32_t)buffer[position+1]) << 8) | (((uint32_t)buffer[position+2]) << 16) | (((uint32_t) buffer[position+3]) << 24);
|
||||
}
|
||||
|
||||
void little_endian_store_08(uint8_t* buffer, uint16_t position, uint8_t value) {
|
||||
uint16_t pos = position;
|
||||
buffer[pos] = value;
|
||||
}
|
||||
|
||||
void little_endian_store_16(uint8_t * buffer, uint16_t position, uint16_t value){
|
||||
uint16_t pos = position;
|
||||
buffer[pos++] = (uint8_t)value;
|
||||
@ -105,6 +113,10 @@ void little_endian_store_32(uint8_t * buffer, uint16_t position, uint32_t value)
|
||||
buffer[pos++] = (uint8_t)(value >> 24);
|
||||
}
|
||||
|
||||
uint32_t big_endian_read_08(const uint8_t* buffer, int position) {
|
||||
return buffer[position];
|
||||
}
|
||||
|
||||
uint32_t big_endian_read_16(const uint8_t * buffer, int position) {
|
||||
return (uint16_t)(((uint16_t) buffer[position+1]) | (((uint16_t)buffer[position]) << 8));
|
||||
}
|
||||
@ -117,6 +129,11 @@ uint32_t big_endian_read_32(const uint8_t * buffer, int position) {
|
||||
return ((uint32_t) buffer[position+3]) | (((uint32_t)buffer[position+2]) << 8) | (((uint32_t)buffer[position+1]) << 16) | (((uint32_t) buffer[position]) << 24);
|
||||
}
|
||||
|
||||
void big_endian_store_08(uint8_t* buffer, uint16_t position, uint8_t value) {
|
||||
uint16_t pos = position;
|
||||
buffer[pos++] = (uint8_t)(value);
|
||||
}
|
||||
|
||||
void big_endian_store_16(uint8_t * buffer, uint16_t position, uint16_t value){
|
||||
uint16_t pos = position;
|
||||
buffer[pos++] = (uint8_t)(value >> 8);
|
||||
|
@ -105,41 +105,46 @@ int32_t btstack_time_delta(uint32_t time_a, uint32_t time_b);
|
||||
int16_t btstack_time16_delta(uint16_t time_a, uint16_t time_b);
|
||||
|
||||
/**
|
||||
* @brief Read 16/24/32 bit little endian value from buffer
|
||||
* @brief Read 08/16/24/32 bit little endian value from buffer
|
||||
* @param buffer
|
||||
* @param position in buffer
|
||||
* @return value
|
||||
*/
|
||||
uint8_t little_endian_read_08(const uint8_t * buffer, int position);
|
||||
uint16_t little_endian_read_16(const uint8_t * buffer, int position);
|
||||
uint32_t little_endian_read_24(const uint8_t * buffer, int position);
|
||||
uint32_t little_endian_read_32(const uint8_t * buffer, int position);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Write 16/32 bit little endian value into buffer
|
||||
* @brief Write 08/16/32 bit little endian value into buffer
|
||||
* @param buffer
|
||||
* @param position in buffer
|
||||
* @param value
|
||||
*/
|
||||
void little_endian_store_08(uint8_t * buffer, uint16_t position, uint8_t value);
|
||||
void little_endian_store_16(uint8_t * buffer, uint16_t position, uint16_t value);
|
||||
void little_endian_store_24(uint8_t * buffer, uint16_t position, uint32_t value);
|
||||
void little_endian_store_32(uint8_t * buffer, uint16_t position, uint32_t value);
|
||||
|
||||
/**
|
||||
* @brief Read 16/24/32 bit big endian value from buffer
|
||||
* @brief Read 08/16/24/32 bit big endian value from buffer
|
||||
* @param buffer
|
||||
* @param position in buffer
|
||||
* @return value
|
||||
*/
|
||||
uint32_t big_endian_read_08(const uint8_t* buffer, int position);
|
||||
uint32_t big_endian_read_16(const uint8_t * buffer, int position);
|
||||
uint32_t big_endian_read_24(const uint8_t * buffer, int position);
|
||||
uint32_t big_endian_read_32(const uint8_t * buffer, int position);
|
||||
|
||||
/**
|
||||
* @brief Write 16/32 bit big endian value into buffer
|
||||
* @brief Write 08/16/32 bit big endian value into buffer
|
||||
* @param buffer
|
||||
* @param position in buffer
|
||||
* @param value
|
||||
*/
|
||||
void big_endian_store_08(uint8_t * buffer, uint16_t position, uint8_t value);
|
||||
void big_endian_store_16(uint8_t * buffer, uint16_t position, uint16_t value);
|
||||
void big_endian_store_24(uint8_t * buffer, uint16_t position, uint32_t value);
|
||||
void big_endian_store_32(uint8_t * buffer, uint16_t position, uint32_t value);
|
||||
|
Loading…
x
Reference in New Issue
Block a user