guard some changes on network data with CLI.

This commit is contained in:
Martin Preuss
2025-07-20 23:15:46 +02:00
parent 1091ec1dee
commit 66b298d977

View File

@@ -205,16 +205,21 @@ NET_Interface_SetIfaceNumInBuffer:
; @clobbers R16 ; @clobbers R16
NET_Interface_Periodically: NET_Interface_Periodically:
ldd r16, Y+NET_IFACE_OFFS_READTIMER push r15
inc r16 in r15, SREG
breq NET_Interface_Periodically_l1 cli
std Y+NET_IFACE_OFFS_READTIMER, r16 ldd r16, Y+NET_IFACE_OFFS_READTIMER
inc r16
breq NET_Interface_Periodically_l1
std Y+NET_IFACE_OFFS_READTIMER, r16
NET_Interface_Periodically_l1: NET_Interface_Periodically_l1:
ldd r16, Y+NET_IFACE_OFFS_WRITETIMER ldd r16, Y+NET_IFACE_OFFS_WRITETIMER
inc r16 inc r16
breq NET_Interface_Periodically_l2 breq NET_Interface_Periodically_l2
std Y+NET_IFACE_OFFS_WRITETIMER, r16 std Y+NET_IFACE_OFFS_WRITETIMER, r16
NET_Interface_Periodically_l2: NET_Interface_Periodically_l2:
out SREG, r15
pop r15
ret ret
; @end ; @end
@@ -227,15 +232,21 @@ NET_Interface_Periodically_l2:
; @clobbers R16, R17, X ; @clobbers R16, R17, X
NET_Interface_ResetStats: NET_Interface_ResetStats:
clr r16 push r15
std Y+NET_IFACE_OFFS_PACKETSIN_LOW, r16 in r15, SREG
cli
mov xl, yl clr r16
mov xh, yh std Y+NET_IFACE_OFFS_PACKETSIN_LOW, r16
adiw xh:xl, NET_IFACE_OFFS_PACKETSIN_LOW
ldi r17, ((NET_IFACE_OFFS_ERR_BUSY_HIGH+1)-NET_IFACE_OFFS_PACKETSIN_LOW) mov xl, yl
clr r16 mov xh, yh
rjmp Utils_FillSram ; (R17, X) adiw xh:xl, NET_IFACE_OFFS_PACKETSIN_LOW
ldi r17, ((NET_IFACE_OFFS_ERR_BUSY_HIGH+1)-NET_IFACE_OFFS_PACKETSIN_LOW)
clr r16
rcall Utils_FillSram ; (R17, X)
out SREG, r15
pop r15
ret
; @end ; @end