eal/linux: fix irq handling with igb_uio
[dpdk.git] / lib / librte_eal / linuxapp / eal / include / exec-env / rte_interrupts.h
index 6733948..bdeb3fc 100644 (file)
@@ -1,13 +1,13 @@
 /*-
  *   BSD LICENSE
- * 
+ *
  *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
  *   All rights reserved.
- * 
+ *
  *   Redistribution and use in source and binary forms, with or without
  *   modification, are permitted provided that the following conditions
  *   are met:
- * 
+ *
  *     * Redistributions of source code must retain the above copyright
  *       notice, this list of conditions and the following disclaimer.
  *     * Redistributions in binary form must reproduce the above copyright
@@ -17,7 +17,7 @@
  *     * Neither the name of Intel Corporation nor the names of its
  *       contributors may be used to endorse or promote products derived
  *       from this software without specific prior written permission.
- * 
+ *
  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 
 enum rte_intr_handle_type {
        RTE_INTR_HANDLE_UNKNOWN = 0,
-       RTE_INTR_HANDLE_UIO,      /**< uio device handle */
+       RTE_INTR_HANDLE_UIO,          /**< uio device handle */
+       RTE_INTR_HANDLE_UIO_INTX,     /**< uio generic handle */
+       RTE_INTR_HANDLE_VFIO_LEGACY,  /**< vfio device handle (legacy) */
+       RTE_INTR_HANDLE_VFIO_MSI,     /**< vfio device handle (MSI) */
+       RTE_INTR_HANDLE_VFIO_MSIX,    /**< vfio device handle (MSIX) */
        RTE_INTR_HANDLE_ALARM,    /**< alarm handle */
        RTE_INTR_HANDLE_MAX
 };
 
 /** Handle for interrupts. */
 struct rte_intr_handle {
-       int fd;                          /**< file descriptor */
+       union {
+               int vfio_dev_fd;  /**< VFIO device file descriptor */
+               int uio_cfg_fd;  /**< UIO config file descriptor
+                                       for uio_pci_generic */
+       };
+       int fd;  /**< interrupt event file descriptor */
        enum rte_intr_handle_type type;  /**< handle type */
 };