From d5d6217c5ea7ca8e0ac976a5e481e5ad38182f17 Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Fri, 14 Feb 2025 22:43:24 +0100 Subject: [PATCH] avr: added NET_Interface_AddOrReleaseOutMsg and NET_Interface_GetNumOfOutgoingMsgNums --- avr/modules/network/iface.asm | 37 +++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/avr/modules/network/iface.asm b/avr/modules/network/iface.asm index e12fdf7..b45d45b 100644 --- a/avr/modules/network/iface.asm +++ b/avr/modules/network/iface.asm @@ -58,6 +58,28 @@ NET_Interface_AddOutgoingMsgNum: +; --------------------------------------------------------------------------- +; @routine NET_Interface_AddOrReleaseOutMsg @global +; +; Try to add given msg to the given interface's list of outbound messages, +; if that fails release the given message (@ref NET_Buffer_ReleaseByNum) +; +; @return CFLAG on success, cleared on error +; @param r16 byte to write +; @param Y pointer to start of interface data +; @clobbers R16, R17, R18, X + +NET_Interface_AddOrReleaseOutMsg: + rcall NET_Interface_AddOutgoingMsgNum ; (R17, R18, X) + brcs NET_Interface_AddOrReleaseOutMsg_ret + rcall NET_Buffer_ReleaseByNum ; (R16, X) + clc +NET_Interface_AddOrReleaseOutMsg_ret: + ret +; @end + + + ; --------------------------------------------------------------------------- ; @routine NET_Interface_GetNextOutgoingMsgNum @global ; @@ -98,6 +120,21 @@ NET_Interface_PeekNextOutgoingMsgNum: +; --------------------------------------------------------------------------- +; @routine NET_Interface_GetNumOfOutgoingMsgNums @global +; +; @return CFLAG on success, cleared on error +; @return R16 byte read +; @param Y pointer to start of interface data +; @clobbers none + +NET_Interface_GetNumOfOutgoingMsgNums: + ldd r16, Y+(NET_IFACE_OFFS_OUTMSGRINGBUF+RINGBUFFERY_OFFS_USED) + ret +; @end + + + ; --------------------------------------------------------------------------- ; @routine NET_Interface_IncCounter16 @global ;