Jump to main content

##

# MAC_DRVR_EventAcknowledge Function

## C

    bool MAC_DRVR_EventAcknowledge( DRV_HANDLE hMac, TCPIP_MAC_EVENT tcpAckEv );

## Returns

- true if events acknowledged
- false if no events to be acknowledged

## Description

This function acknowledges and re-enables processed events. Multiple events can be ORed together as they are processed together. The events acknowledged by this function should be the events that have been retrieved from the stack by calling MAC_DRVR_EventPendingGet() or have been passed to the stack by the driver using the registered notification handler and have been processed and have to be re-enabled.

## Remarks

- All events should be acknowledged, in order to be re-enabled.

- Some events are fatal errors and should not be acknowledged i.e. TCPIP_MAC_EV_RX_BUSERR, TCPIP_MAC_EV_TX_BUSERR. Driver/stack re-initialization is needed under such circumstances.

- Some events are just system/application behavior and they are intended only as simple info, i.e. TCPIP_MAC_EV_RX_OVFLOW, TCPIP_MAC_EV_RX_BUFNA, TCPIP_MAC_EV_TX_ABORT, TCPIP_MAC_EV_RX_ACT.

- If auto flow control is enabled, the TCPIP_MAC_EV_RX_FWMARK and TCPIP_MAC_EV_RX_EWMARK events are part of the normal flow control.

- The events are persistent. They shouldn't be re-enabled unless they have been processed and the condition that generated them was removed. Re-enabling them immediately without proper processing will have dramatic effects on system performance.

## Preconditions

- MAC_DRVR_Initialize() should have been called.
- MAC_DRVR_Open() should have been called to obtain a valid handle.

## Parameters

Parameters | Description
--- | ---
hMac | Ethernet MAC client handle
tcpAckEv | the events that the user processed and need to be re-enabled