123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 |
- #ifndef HAL_MAC_H
- #define HAL_MAC_H
- #if (HAL_USE_MAC == TRUE) || defined(__DOXYGEN__)
- #if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__)
- #define MAC_USE_ZERO_COPY FALSE
- #endif
- #if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__)
- #define MAC_USE_EVENTS TRUE
- #endif
- typedef enum {
- MAC_UNINIT = 0,
- MAC_STOP = 1,
- MAC_ACTIVE = 2
- } macstate_t;
- typedef struct MACDriver MACDriver;
- #include "hal_mac_lld.h"
- #if (MAC_USE_EVENTS == TRUE) || defined(__DOXYGEN__)
- #define macGetReceiveEventSource(macp) (&(macp)->rdevent)
- #endif
- #define macWriteTransmitDescriptor(tdp, buf, size) \
- mac_lld_write_transmit_descriptor(tdp, buf, size)
- #define macReadReceiveDescriptor(rdp, buf, size) \
- mac_lld_read_receive_descriptor(rdp, buf, size)
- #if (MAC_USE_ZERO_COPY == TRUE) || defined(__DOXYGEN__)
- #define macGetNextTransmitBuffer(tdp, size, sizep) \
- mac_lld_get_next_transmit_buffer(tdp, size, sizep)
- #define macGetNextReceiveBuffer(rdp, sizep) \
- mac_lld_get_next_receive_buffer(rdp, sizep)
- #endif
- #ifdef __cplusplus
- extern "C" {
- #endif
- void macInit(void);
- void macObjectInit(MACDriver *macp);
- void macStart(MACDriver *macp, const MACConfig *config);
- void macStop(MACDriver *macp);
- void macSetAddress(MACDriver *macp, const uint8_t *p);
- msg_t macWaitTransmitDescriptor(MACDriver *macp,
- MACTransmitDescriptor *tdp,
- sysinterval_t timeout);
- void macReleaseTransmitDescriptor(MACTransmitDescriptor *tdp);
- msg_t macWaitReceiveDescriptor(MACDriver *macp,
- MACReceiveDescriptor *rdp,
- sysinterval_t timeout);
- void macReleaseReceiveDescriptor(MACReceiveDescriptor *rdp);
- bool macPollLinkStatus(MACDriver *macp);
- #ifdef __cplusplus
- }
- #endif
- #endif
- #endif
|