lwip receives network buffers that are made available to lwip_sock_tcp
calling `netconn_recv_tcp_pbuf`. The size of these buffers depends on
the size of the network packets. An application calling `sock_tcp_read`
can pass any arbitrary buffer size to read (copy) from these internal
network buffers, which may be smaller. lwip_sock_tcp keeps around the
last network buffer (`struct pbuf last_buf`) and the offset into this
buffer already consumed by the application (`last_offset`).
However, when multiple application reads from the same `pbuf` buffer
occur, the `last_offset` must be updated incrementing it. The code had
a bug that would work only when `last_offset` was either 0 (no previous
partial read) or when the current read was consuming all the remaining
data (when `buf_len == copylen`).
This patch fixes the issue an allows multiple reads from the same
buffer.
The periph_pm requires new field to control the power management
feature. Add missing config at periph_conf for timers and uart.
Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
The current xmega don't have a way to disable peripherals that are
not in used. Add peripheral management to allow enable only the mcu
blocks that will be used by application. This saves power on active
and sleep modes. By default, at clock initialization, all peripherals
are now disabled and each drive must activate at initialization phase.
The periph_timer and periph_uart were updated with this new feature.
Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
MSEC and SEC are now usable on TIMER(0) without having USEC
pm is configured by used hardware
OLD configuration values are translated for backward compatibility
prefer rtt for ZTIMER_SEC
avoid doing partial ztimer setup if auto_init_ztimer is disabled
before this patch some const pointers might have been definend to values
that a user who disables auto_init for ztimer does not like.
- fix false test failure on picolibc
- For picolibc, the result of mallinfo().uordblks doesn't go back
to zero after the first allocation. By adding `free(malloc(4))`
before recording the pre-test mallinfo() value, this issues is
worked arround
- increase test coverage to also cover realloc()
- ease testing with picolibc by allowing `make PICOLIBC=1 flash test`