### Xilinx Processor IP Library

<hl>Software Drivers</hl>

Main Page | Data Structures | File List | Data Fields | Globals

# xintc.c File Reference

## Detailed Description

Contains required functions for the XIntc driver for the Xilinx Interrupt Controller. See xintc.h for a detailed description of the driver.

     MODIFICATION HISTORY:

     Ver   Who  Date     Changes
     ----- ---- -------- --------------------------------------------------------
     1.00a ecm  08/16/01 First release
     1.00b jhl  02/21/02 Repartitioned the driver for smaller files
     1.00b jhl  04/24/02 Made LookupConfig global and compressed ack before table
                         in the configuration into a bit mask
     1.00c rpm  10/17/03 New release. Support the static vector table created
                         in the xintc_g.c configuration table.
     1.00c rpm  04/23/04 Removed check in XIntc_Connect for a previously connected
                         handler. Always overwrite the vector table handler with
                         the handler provided as an argument.
     1.10c mta  03/21/07 Updated to new coding style
     1.11a sv   11/21/07 Updated driver to support access through a DCR bridge

## Functions

int | XIntc_Initialize (XIntc *InstancePtr, u16 DeviceId)
int | XIntc_Start (XIntc *InstancePtr, u8 Mode)
void | XIntc_Stop (XIntc *InstancePtr)
int | XIntc_Connect (XIntc *InstancePtr, u8 Id, XInterruptHandler Handler, void *CallBackRef)
void | XIntc_Disconnect (XIntc *InstancePtr, u8 Id)
void | XIntc_Enable (XIntc *InstancePtr, u8 Id)
void | XIntc_Disable (XIntc *InstancePtr, u8 Id)
void | XIntc_Acknowledge (XIntc *InstancePtr, u8 Id)
XIntc_Config * | XIntc_LookupConfig (u16 DeviceId)

## Function Documentation

void XIntc_Acknowledge | ( | XIntc * | InstancePtr,
|  | u8 | Id
| ) |

Acknowledges the interrupt source provided as the argument Id. When the interrupt is acknowledged, it causes the interrupt controller to clear its interrupt condition.

Parameters:

  | InstancePtr | is a pointer to the XIntc instance to be worked on.
  | Id | contains the ID of the interrupt source and should be in the range of 0 to XPAR_INTC_MAX_NUM_INTR_INPUTS - 1 with 0 being the highest priority interrupt.

Returns:
  None.

Note:
  None.

int XIntc_Connect | ( | XIntc * | InstancePtr,
|  | u8 | Id,
|  | XInterruptHandler | Handler,
|  | void * | CallBackRef
| ) |

Makes the connection between the Id of the interrupt source and the associated handler that is to run when the interrupt is recognized. The argument provided in this call as the Callbackref is used as the argument for the handler when it is called.

Parameters:

  | InstancePtr | is a pointer to the XIntc instance to be worked on.
  | Id | contains the ID of the interrupt source and should be in the range of 0 to XPAR_INTC_MAX_NUM_INTR_INPUTS - 1 with 0 being the highest priority interrupt.
  | Handler | to the handler for that interrupt.
  | CallBackRef | is the callback reference, usually the instance pointer of the connecting driver.

Returns:

- XST_SUCCESS if the handler was connected correctly.

Note:

WARNING: The handler provided as an argument will overwrite any handler that was previously connected.

void XIntc_Disable | ( | XIntc * | InstancePtr,
|  | u8 | Id
| ) |

Disables the interrupt source provided as the argument Id such that the interrupt controller will not cause interrupts for the specified Id. The interrupt controller will continue to hold an interrupt condition for the Id, but will not cause an interrupt.

Parameters:

  | InstancePtr | is a pointer to the XIntc instance to be worked on.
  | Id | contains the ID of the interrupt source and should be in the range of 0 to XPAR_INTC_MAX_NUM_INTR_INPUTS - 1 with 0 being the highest priority interrupt.

Returns:
  None.

Note:
  None.

void XIntc_Disconnect | ( | XIntc * | InstancePtr,
|  | u8 | Id
| ) |

Updates the interrupt table with the Null Handler and NULL arguments at the location pointed at by the Id. This effectively disconnects that interrupt source from any handler. The interrupt is disabled also.

Parameters:

  | InstancePtr | is a pointer to the XIntc instance to be worked on.
  | Id | contains the ID of the interrupt source and should be in the range of 0 to XPAR_INTC_MAX_NUM_INTR_INPUTS - 1 with 0 being the highest priority interrupt.

Returns:
  None.

Note:
  None.

void XIntc_Enable | ( | XIntc * | InstancePtr,
|  | u8 | Id
| ) |

Enables the interrupt source provided as the argument Id. Any pending interrupt condition for the specified Id will occur after this function is called.

Parameters:

  | InstancePtr | is a pointer to the XIntc instance to be worked on.
  | Id | contains the ID of the interrupt source and should be in the range of 0 to XPAR_INTC_MAX_NUM_INTR_INPUTS - 1 with 0 being the highest priority interrupt.

Returns:
  None.

Note:
  None.

int XIntc_Initialize | ( | XIntc * | InstancePtr,
|  | u16 | DeviceId
| ) |

Initialize a specific interrupt controller instance/driver. The initialization entails:

- Initialize fields of the XIntc structure
- Initial vector table with stub function calls
- All interrupt sources are disabled
- Interrupt output is disabled

Parameters:

  | InstancePtr | is a pointer to the XIntc instance to be worked on.
  | DeviceId | is the unique id of the device controlled by this XIntc instance. Passing in a device id associates the generic XIntc instance to a specific device, as chosen by the caller or application developer.

Returns:
  - XST_SUCCESS if initialization was successful
  - XST_DEVICE_IS_STARTED if the device has already been started
  - XST_DEVICE_NOT_FOUND if device configuration information was not found for a device with the supplied device ID.

Note:
  None.

XIntc_Config* XIntc_LookupConfig | ( | u16 | DeviceId | ) |

Looks up the device configuration based on the unique device ID. A table contains the configuration info for each device in the system.

Parameters:

  | DeviceId | is the unique identifier for a device.

Returns:
  A pointer to the XIntc configuration structure for the specified device, or NULL if the device was not found.

Note:
  None.

int XIntc_Start | ( | XIntc * | InstancePtr,
|  | u8 | Mode
| ) |

Starts the interrupt controller by enabling the output from the controller to the processor. Interrupts may be generated by the interrupt controller after this function is called.

It is necessary for the caller to connect the interrupt handler of this component to the proper interrupt source.

Parameters:

  | InstancePtr | is a pointer to the XIntc instance to be worked on.
  | Mode | determines if software is allowed to simulate interrupts or real interrupts are allowed to occur. Note that these modes are mutually exclusive. The interrupt controller hardware resets in a mode that allows software to simulate interrupts until this mode is exited. It cannot be reentered once it has been exited.

One of the following values should be used for the mode.

- XIN_SIMULATION_MODE enables simulation of interrupts only
- XIN_REAL_MODE enables hardware interrupts only

Returns:
  - XST_SUCCESS if the device was started successfully
  - XST_FAILURE if simulation mode was specified and it could not be set because real mode has already been entered.

Note:
  Must be called after XIntc initialization is completed.

void XIntc_Stop | ( | XIntc * | InstancePtr | ) |

Stops the interrupt controller by disabling the output from the controller so that no interrupts will be caused by the interrupt controller.

Parameters:

  | InstancePtr | is a pointer to the XIntc instance to be worked on.

Returns:
  None.

Note:
  None.

Copyright © 1995-2009 Xilinx, Inc. All rights reserved.