IP Configuration
This commit is contained in:
249
lib/WiFi101/src/driver/source/m2m_hif.h
Normal file
249
lib/WiFi101/src/driver/source/m2m_hif.h
Normal file
@@ -0,0 +1,249 @@
|
||||
/**
|
||||
*
|
||||
* \file
|
||||
*
|
||||
* \brief This module contains M2M host interface APIs implementation.
|
||||
*
|
||||
* Copyright (c) 2016-2017 Atmel Corporation. All rights reserved.
|
||||
*
|
||||
* \asf_license_start
|
||||
*
|
||||
* \page License
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. The name of Atmel may not be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
|
||||
* EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* \asf_license_stop
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _M2M_HIF_
|
||||
#define _M2M_HIF_
|
||||
|
||||
/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
|
||||
INCLUDES
|
||||
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
|
||||
|
||||
#include "common/include/nm_common.h"
|
||||
/*!< Include depends on UNO Board is used or not*/
|
||||
#ifdef ENABLE_UNO_BOARD
|
||||
#include "m2m_uno_hif.h"
|
||||
#endif
|
||||
|
||||
/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
|
||||
MACROS
|
||||
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
|
||||
|
||||
#define M2M_HIF_MAX_PACKET_SIZE (1600 - 4)
|
||||
/*!< Maximum size of the buffer could be transferred between Host and Firmware.
|
||||
*/
|
||||
|
||||
#define M2M_HIF_HDR_OFFSET (sizeof(tstrHifHdr) + 4)
|
||||
|
||||
/**
|
||||
* @struct tstrHifHdr
|
||||
* @brief Structure to hold HIF header
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
uint8 u8Gid; /*!< Group ID */
|
||||
uint8 u8Opcode; /*!< OP code */
|
||||
uint16 u16Length; /*!< Payload length */
|
||||
}tstrHifHdr;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*!
|
||||
@typedef typedef void (*tpfHifCallBack)(uint8 u8OpCode, uint16 u16DataSize, uint32 u32Addr);
|
||||
@brief used to point to Wi-Fi call back function depend on Arduino project or other projects.
|
||||
@param [in] u8OpCode
|
||||
HIF Opcode type.
|
||||
@param [in] u16DataSize
|
||||
HIF data length.
|
||||
@param [in] u32Addr
|
||||
HIF address.
|
||||
@param [in] grp
|
||||
HIF group type.
|
||||
*/
|
||||
typedef void (*tpfHifCallBack)(uint8 u8OpCode, uint16 u16DataSize, uint32 u32Addr);
|
||||
/**
|
||||
* @fn NMI_API sint8 hif_init(void * arg);
|
||||
* @brief
|
||||
To initialize HIF layer.
|
||||
* @param [in] arg
|
||||
* Pointer to the arguments.
|
||||
* @return
|
||||
The function shall return ZERO for successful operation and a negative value otherwise.
|
||||
*/
|
||||
NMI_API sint8 hif_init(void * arg);
|
||||
/**
|
||||
* @fn NMI_API sint8 hif_deinit(void * arg);
|
||||
* @brief
|
||||
To Deinitialize HIF layer.
|
||||
* @param [in] arg
|
||||
* Pointer to the arguments.
|
||||
* @return
|
||||
The function shall return ZERO for successful operation and a negative value otherwise.
|
||||
*/
|
||||
NMI_API sint8 hif_deinit(void * arg);
|
||||
/**
|
||||
* @fn NMI_API sint8 hif_send(uint8 u8Gid,uint8 u8Opcode,uint8 *pu8CtrlBuf,uint16 u16CtrlBufSize,
|
||||
uint8 *pu8DataBuf,uint16 u16DataSize, uint16 u16DataOffset)
|
||||
* @brief Send packet using host interface.
|
||||
|
||||
* @param [in] u8Gid
|
||||
* Group ID.
|
||||
* @param [in] u8Opcode
|
||||
* Operation ID.
|
||||
* @param [in] pu8CtrlBuf
|
||||
* Pointer to the Control buffer.
|
||||
* @param [in] u16CtrlBufSize
|
||||
Control buffer size.
|
||||
* @param [in] u16DataOffset
|
||||
Packet Data offset.
|
||||
* @param [in] pu8DataBuf
|
||||
* Packet buffer Allocated by the caller.
|
||||
* @param [in] u16DataSize
|
||||
Packet buffer size (including the HIF header).
|
||||
* @return The function shall return ZERO for successful operation and a negative value otherwise.
|
||||
*/
|
||||
NMI_API sint8 hif_send(uint8 u8Gid,uint8 u8Opcode,uint8 *pu8CtrlBuf,uint16 u16CtrlBufSize,
|
||||
uint8 *pu8DataBuf,uint16 u16DataSize, uint16 u16DataOffset);
|
||||
/*
|
||||
* @fn hif_receive
|
||||
* @brief Host interface interrupt serviece routine
|
||||
* @param [in] u32Addr
|
||||
* Receive start address
|
||||
* @param [out] pu8Buf
|
||||
* Pointer to receive buffer. Allocated by the caller
|
||||
* @param [in] u16Sz
|
||||
* Receive buffer size
|
||||
* @param [in] isDone
|
||||
* If you don't need any more packets send True otherwise send false
|
||||
* @return
|
||||
The function shall return ZERO for successful operation and a negative value otherwise.
|
||||
*/
|
||||
|
||||
NMI_API sint8 hif_receive(uint32 u32Addr, uint8 *pu8Buf, uint16 u16Sz, uint8 isDone);
|
||||
/**
|
||||
* @fn hif_register_cb
|
||||
* @brief
|
||||
To set Callback function for every Component.
|
||||
|
||||
* @param [in] u8Grp
|
||||
* Group to which the Callback function should be set.
|
||||
|
||||
* @param [in] fn
|
||||
* function to be set to the specified group.
|
||||
* @return
|
||||
The function shall return ZERO for successful operation and a negative value otherwise.
|
||||
*/
|
||||
NMI_API sint8 hif_register_cb(uint8 u8Grp,tpfHifCallBack fn);
|
||||
/**
|
||||
* @fn NMI_API sint8 hif_chip_sleep(void);
|
||||
* @brief
|
||||
To make the chip sleep.
|
||||
* @return
|
||||
The function shall return ZERO for successful operation and a negative value otherwise.
|
||||
*/
|
||||
NMI_API sint8 hif_chip_sleep(void);
|
||||
/**
|
||||
* @fn NMI_API sint8 hif_chip_sleep_sc(void);
|
||||
* @brief
|
||||
To clear the chip count only but keep the chip awake
|
||||
* @return
|
||||
The function shall return ZERO for successful operation and a negative value otherwise.
|
||||
*/
|
||||
NMI_API sint8 hif_chip_sleep_sc(void);
|
||||
/**
|
||||
* @fn NMI_API sint8 hif_chip_wake(void);
|
||||
* @brief
|
||||
To Wakeup the chip.
|
||||
* @return
|
||||
The function shall return ZERO for successful operation and a negative value otherwise.
|
||||
*/
|
||||
|
||||
NMI_API sint8 hif_chip_wake(void);
|
||||
/*!
|
||||
@fn \
|
||||
NMI_API void hif_set_sleep_mode(uint8 u8Pstype);
|
||||
|
||||
@brief
|
||||
Set the sleep mode of the HIF layer.
|
||||
|
||||
@param [in] u8Pstype
|
||||
Sleep mode.
|
||||
|
||||
@return
|
||||
The function SHALL return 0 for success and a negative value otherwise.
|
||||
*/
|
||||
|
||||
NMI_API void hif_set_sleep_mode(uint8 u8Pstype);
|
||||
/*!
|
||||
@fn \
|
||||
NMI_API uint8 hif_get_sleep_mode(void);
|
||||
|
||||
@brief
|
||||
Get the sleep mode of the HIF layer.
|
||||
|
||||
@return
|
||||
The function SHALL return the sleep mode of the HIF layer.
|
||||
*/
|
||||
|
||||
NMI_API uint8 hif_get_sleep_mode(void);
|
||||
|
||||
#ifdef CORTUS_APP
|
||||
/**
|
||||
* @fn hif_Resp_handler(uint8 *pu8Buffer, uint16 u16BufferSize)
|
||||
* @brief
|
||||
Response handler for HIF layer.
|
||||
|
||||
* @param [in] pu8Buffer
|
||||
Pointer to the buffer.
|
||||
|
||||
* @param [in] u16BufferSize
|
||||
Buffer size.
|
||||
|
||||
* @return
|
||||
The function SHALL return 0 for success and a negative value otherwise.
|
||||
*/
|
||||
NMI_API sint8 hif_Resp_handler(uint8 *pu8Buffer, uint16 u16BufferSize);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @fn hif_handle_isr(void)
|
||||
* @brief
|
||||
Handle interrupt received from NMC1500 firmware.
|
||||
* @return
|
||||
The function SHALL return 0 for success and a negative value otherwise.
|
||||
*/
|
||||
NMI_API sint8 hif_handle_isr(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
Reference in New Issue
Block a user