⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xtemac_intr.c

📁 xilinx trimode mac driver for linux
💻 C
字号:
/* $Id: *//********************************************************************************       XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS"*       AS A COURTESY TO YOU, SOLELY FOR USE IN DEVELOPING PROGRAMS AND*       SOLUTIONS FOR XILINX DEVICES.  BY PROVIDING THIS DESIGN, CODE,*       OR INFORMATION AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE,*       APPLICATION OR STANDARD, XILINX IS MAKING NO REPRESENTATION*       THAT THIS IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT,*       AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE*       FOR YOUR IMPLEMENTATION.  XILINX EXPRESSLY DISCLAIMS ANY*       WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE*       IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR*       REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF*       INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS*       FOR A PARTICULAR PURPOSE.**       (c) Copyright 2005-2006 Xilinx Inc.*       All rights reserved.* This program is free software; you can redistribute it and/or modify it* under the terms of the GNU General Public License as published by the* Free Software Foundation; either version 2 of the License, or (at your* option) any later version.** You should have received a copy of the GNU General Public License* along with this program; if not, write to the Free Software* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA*******************************************************************************//*****************************************************************************//**** @file xtemac_intr.c** Functions in this file implement general purpose interrupt processing related* functionality. See xtemac.h for a detailed description of the driver.** <pre>* MODIFICATION HISTORY:** Ver   Who  Date     Changes* ----- ---- -------- -------------------------------------------------------* 1.00a rmm  06/01/05 First release* 2.00a rmm  11/21/05 Added auto-negotiation callback, removed simple DMA*                     callback* </pre>******************************************************************************//***************************** Include Files *********************************/#include "xtemac.h"/************************** Constant Definitions *****************************//**************************** Type Definitions *******************************//***************** Macros (Inline Functions) Definitions *********************//************************** Function Prototypes ******************************//************************** Variable Definitions *****************************//*****************************************************************************//** * Install an asynchronious handler function for the given HandlerType: * * <pre> * HandlerType               Function Type * ------------------------  --------------------------- * XTE_HANDLER_FIFOSEND      XTemac_FifoSendHandler * XTE_HANDLER_FIFORECV      XTemac_FifoRecvHandler * XTE_HANDLER_ANEG          XTemac_AnegHandler * XTE_HANDLER_SGSEND        XTemac_SgHandler * XTE_HANDLER_SGRECV        XTemac_SgHandler * XTE_HANDLER_ERROR         XTemac_ErrorHandler * * HandlerType               Invoked by this driver when: * ------------------------  -------------------------------------------------- * XTE_HANDLER_FIFOSEND      A packet transmitted by a call to *                           XTemac_FifoSend() has been sent successfully. * XTE_HANDLER_FIFORECV      When a packet has been received and is sitting in *                           the packet FIFO. * XTE_HANDLER_ANEG          Auto negotiation interrupt is asserted by HW and *                           XTE_ANEG_OPTION is set. * XTE_HANDLER_SGSEND        SG DMA has completed an operation on the transmit *                           side. Transmitted buffer descriptors require post *                           processing. * XTE_HANDLER_SGRECV        SG DMA has completed an operation on the receive *                           side. Buffer descriptors contain received packets. * XTE_HANDLER_ERROR         Any type of error has been detected. * </pre> * * @param InstancePtr is a pointer to the instance to be worked on. * @param HandlerType specifies which handler is to be attached. * @param CallbackFunc is the address of the callback function * @param CallbackRef is a user data item that will be passed to the callback *        when it is invoked. * * @return * - XST_SUCCESS when handler is installed. * - XST_INVALID_PARAM when HandlerType is invalid * * @note * Invoking this function for a handler that already has been installed replaces * it with the new handler. * ******************************************************************************/XStatus XTemac_SetHandler(XTemac *InstancePtr, u32 HandlerType,                          void *CallbackFunc, void *CallbackRef){    XASSERT_NONVOID(InstancePtr != NULL);    XASSERT_NONVOID(InstancePtr->IsReady == XCOMPONENT_IS_READY);    XASSERT_NONVOID(CallbackFunc != NULL);    switch(HandlerType)    {        case XTE_HANDLER_FIFOSEND:            InstancePtr->FifoSendHandler = (XTemac_FifoSendHandler)CallbackFunc;            InstancePtr->FifoSendRef = CallbackRef;            break;        case XTE_HANDLER_FIFORECV:            InstancePtr->FifoRecvHandler = (XTemac_FifoRecvHandler)CallbackFunc;            InstancePtr->FifoRecvRef = CallbackRef;            break;        case XTE_HANDLER_ANEG:            InstancePtr->AnegHandler = (XTemac_AnegHandler)CallbackFunc;            InstancePtr->AnegRef = CallbackRef;            break;        case XTE_HANDLER_SGSEND:            InstancePtr->SgSendHandler = (XTemac_SgHandler)CallbackFunc;            InstancePtr->SgSendRef = CallbackRef;            break;        case XTE_HANDLER_SGRECV:            InstancePtr->SgRecvHandler = (XTemac_SgHandler)CallbackFunc;            InstancePtr->SgRecvRef = CallbackRef;            break;        case XTE_HANDLER_ERROR:            InstancePtr->ErrorHandler = (XTemac_ErrorHandler)CallbackFunc;            InstancePtr->ErrorRef = CallbackRef;            break;        default:            return(XST_INVALID_PARAM);    }    return(XST_SUCCESS);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -