1
0
mirror of https://github.com/esphome/esphome.git synced 2025-10-30 06:33:51 +00:00

Fix warning about shift overflow

This commit is contained in:
clydebarrow
2025-10-28 08:32:24 +10:00
parent 6d63e9869d
commit 733001bf65
3 changed files with 5 additions and 1 deletions

View File

@@ -65,6 +65,7 @@ static_assert(MAX_REQUESTS >= 1 && MAX_REQUESTS <= 32, "MAX_REQUESTS must be bet
// This is tied to the static_assert above, which enforces MAX_REQUESTS is between 1 and 32.
// If MAX_REQUESTS is increased above 32, this logic and the static_assert must be updated.
using trq_bitmask_t = std::conditional<(MAX_REQUESTS <= 16), uint16_t, uint32_t>::type;
static constexpr trq_bitmask_t ALL_REQUESTS_IN_USE = MAX_REQUESTS == 32 ? ~0 : (1 << MAX_REQUESTS) - 1;
static constexpr size_t USB_EVENT_QUEUE_SIZE = 32; // Size of event queue between USB task and main loop
static constexpr size_t USB_TASK_STACK_SIZE = 4096; // Stack size for USB task (same as ESP-IDF USB examples)

View File

@@ -338,7 +338,7 @@ TransferRequest *USBClient::get_trq_() {
// Find first available slot (bit = 0) and try to claim it atomically
// We use a while loop to allow retrying the same slot after CAS failure
for (;;) {
if (mask == (1 << MAX_REQUESTS) - 1) {
if (mask == ALL_REQUESTS_IN_USE) {
ESP_LOGE(TAG, "All %zu transfer slots in use", MAX_REQUESTS);
return nullptr;
}

View File

@@ -1,3 +1,6 @@
usb_host:
max_transfer_requests: 32
usb_uart:
- id: uart_0
type: cdc_acm