zephyr/include/eth.h
Kumar Gala cc334c7273 Convert remaining code to using newly introduced integer sized types
Convert code to use u{8,16,32,64}_t and s{8,16,32,64}_t instead of C99
integer types.  This handles the remaining includes and kernel, plus
touching up various points that we skipped because of include
dependancies.  We also convert the PRI printf formatters in the arch
code over to normal formatters.

Jira: ZEP-2051

Change-Id: Iecbb12601a3ee4ea936fd7ddea37788a645b08b0
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-04-21 11:38:23 -05:00

74 lines
1.5 KiB
C

/**
* @file
* @brief Ethernet public API header file.
*/
/*
* Copyright (c) 2015 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __INCLUDE_ETH_H__
#define __INCLUDE_ETH_H__
#include <device.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Ethernet driver API
*
* This structure holds all API function pointers.
*/
struct eth_driver_api {
int (*send)(struct device *dev, u8_t *buffer, u16_t len);
void (*register_callback)(struct device *dev,
void (*cb)(u8_t *buffer, u16_t len));
};
/**
* @brief Sends a frame to ethernet hardware
*
* This routine writes a buffer to be sent through the ethernet hardware.
*
* @param dev Pointer to the device structure for the driver instance.
* @param buffer Byte array to be sent through the device
* @param len Length of the array
*
* @return Error code
*/
static inline int eth_send(struct device *dev, u8_t *buffer, u16_t len)
{
const struct eth_driver_api *api = dev->driver_api;
return api->send(dev, buffer, len);
}
/**
* @brief Register callback for received frame
*
* This routine writes a buffer to be sent through the ethernet hardware.
*
* @param dev Pointer to the device structure for the driver instance.
* @param cb Callback function to be registered in the driver.
*
* @return Error code
*/
static inline void eth_register_callback(struct device *dev,
void (*cb)(u8_t *buffer, u16_t len))
{
const struct eth_driver_api *api = dev->driver_api;
api->register_callback(dev, cb);
}
#ifdef __cplusplus
}
#endif
#endif /*__INCLUDE_ETH_H__*/