Jump to main content

##

# 1.2.5.2.9 TCPIP_MAC_EventAcknowledge Function

## C

    bool TCPIP_MAC_EventAcknowledge(
        DRV_HANDLE hMac,
        TCPIP_MAC_EVENT macEvents
    );

## 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 MAC by calling TCPIP_MAC_EventPendingGet or have been passed to the MAC client by using the notification handler. Once the events are acknowledged they will be re-enabled.

## Precondtions

TCPIP_MAC_Initialize() should have been called. TCPIP_MAC_Open() should have been called to obtain a valid handle.

## Parameters

Parameters | Description
--- | ---
hMac | Handle identifying the MAC driver client.
macEvents | MAC events that are acknowledged and re-enabled.

## Returns

- True - If events acknowledged.
- False - If no events acknowledged.

## Remarks

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

Some events are fatal errors and should not be acknowledged (TCPIP_MAC_EV_RX_BUSERR, TCPIP_MAC_EV_TX_BUSERR). Stack re-initialization is needed under such circumstances.

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

The TCPIP_MAC_EV_RX_FWMARK and TCPIP_MAC_EV_RX_EWMARK events are part of the normal flow control operation (if auto flow control was enabled). They should be enabled alternatively, if needed.

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 the system performance.

## Example

    TCPIP_MAC_EventAcknowledge( hMac, newMacEvents );