aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/templates/mac_lld.h
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2013-02-24 15:45:04 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2013-02-24 15:45:04 +0000
commitc39343f7286f9d4135b40b470f5633ad044f0679 (patch)
treedbdfe50dc648f602e0607217891a18ca40cbd823 /os/hal/templates/mac_lld.h
parent9708a3c30ff4ce1d95b3333b6be4375138a89be5 (diff)
downloadChibiOS-c39343f7286f9d4135b40b470f5633ad044f0679.tar.gz
ChibiOS-c39343f7286f9d4135b40b470f5633ad044f0679.tar.bz2
ChibiOS-c39343f7286f9d4135b40b470f5633ad044f0679.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@5314 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/templates/mac_lld.h')
-rw-r--r--os/hal/templates/mac_lld.h28
1 files changed, 20 insertions, 8 deletions
diff --git a/os/hal/templates/mac_lld.h b/os/hal/templates/mac_lld.h
index 786cc7772..cb6a6cd8b 100644
--- a/os/hal/templates/mac_lld.h
+++ b/os/hal/templates/mac_lld.h
@@ -35,6 +35,11 @@
/* Driver constants. */
/*===========================================================================*/
+/**
+ * @brief This implementation supports the zero-copy mode API.
+ */
+#define MAC_SUPPORTS_ZERO_COPY TRUE
+
/*===========================================================================*/
/* Driver pre-compile time settings. */
/*===========================================================================*/
@@ -94,11 +99,11 @@ typedef struct {
/**
* @brief Current write offset.
*/
- size_t offset;
+ size_t offset;
/**
* @brief Available space size.
*/
- size_t size;
+ size_t size;
/* End of the mandatory fields.*/
} MACTransmitDescriptor;
@@ -126,7 +131,7 @@ typedef struct {
/*===========================================================================*/
#if !defined(__DOXYGEN__)
-extern MACDriver ETH1;
+extern MACDriver ETHD1;
#endif
#ifdef __cplusplus
@@ -137,17 +142,24 @@ extern "C" {
void mac_lld_stop(MACDriver *macp);
msg_t mac_lld_get_transmit_descriptor(MACDriver *macp,
MACTransmitDescriptor *tdp);
- size_t mac_lld_write_transmit_descriptor(MACTransmitDescriptor *tdp,
- uint8_t *buf,
- size_t size);
void mac_lld_release_transmit_descriptor(MACTransmitDescriptor *tdp);
msg_t mac_lld_get_receive_descriptor(MACDriver *macp,
MACReceiveDescriptor *rdp);
+ void mac_lld_release_receive_descriptor(MACReceiveDescriptor *rdp);
+ bool_t mac_lld_poll_link_status(MACDriver *macp);
+ size_t mac_lld_write_transmit_descriptor(MACTransmitDescriptor *tdp,
+ uint8_t *buf,
+ size_t size);
size_t mac_lld_read_receive_descriptor(MACReceiveDescriptor *rdp,
uint8_t *buf,
size_t size);
- void mac_lld_release_receive_descriptor(MACReceiveDescriptor *rdp);
- bool_t mac_lld_poll_link_status(MACDriver *macp);
+#if MAC_USE_ZERO_COPY
+ uint8_t *mac_lld_get_next_transmit_buffer(MACTransmitDescriptor *tdp,
+ size_t size,
+ size_t *sizep);
+ const uint8_t *mac_lld_get_next_receive_buffer(MACReceiveDescriptor *rdp,
+ size_t *sizep);
+#endif /* MAC_USE_ZERO_COPY */
#ifdef __cplusplus
}
#endif