openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

linux-user-bde.h (3128B)


      1 /*
      2  * 
      3  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      4  * 
      5  * Copyright 2007-2019 Broadcom Inc. All rights reserved.
      6  */
      7 
      8 #ifndef __LINUX_USER_BDE_H__
      9 #define __LINUX_USER_BDE_H__
     10 
     11 #include <linux/types.h>
     12 #include <linux/ioctl.h>
     13 #include <linux-bde.h>
     14 #ifndef __KERNEL__
     15 #include <stdint.h>
     16 #endif
     17 
     18 #if defined(SAL_BDE_32BIT_USER_64BIT_KERNEL) || defined(PTRS_ARE_64BITS)
     19 typedef uint64_t bde_kernel_addr_t;
     20 #else
     21 typedef uint32_t bde_kernel_addr_t;
     22 #endif
     23 
     24 /* Ioctl control structure */
     25 typedef struct  {
     26     unsigned int dev;   /* Device ID */
     27     unsigned int rc;    /* Operation Return Code */
     28     unsigned int d0;    /* Operation specific data */
     29     unsigned int d1;
     30     unsigned int d2;
     31     unsigned int d3;    
     32     bde_kernel_addr_t p0;
     33     union {
     34         unsigned int dw[2];
     35         unsigned char buf[64];
     36     } dx;
     37 } lubde_ioctl_t;
     38 
     39 
     40 /* LUBDE ioctls */
     41 #define LUBDE_MAGIC 'L'
     42 
     43 #define LUBDE_VERSION             _IO(LUBDE_MAGIC, 0)
     44 #define LUBDE_GET_NUM_DEVICES     _IO(LUBDE_MAGIC, 1)
     45 #define LUBDE_GET_DEVICE          _IO(LUBDE_MAGIC, 2)
     46 #define LUBDE_PCI_CONFIG_PUT32    _IO(LUBDE_MAGIC, 3)
     47 #define LUBDE_PCI_CONFIG_GET32    _IO(LUBDE_MAGIC, 4)
     48 #define LUBDE_GET_DMA_INFO        _IO(LUBDE_MAGIC, 5)
     49 #define LUBDE_ENABLE_INTERRUPTS   _IO(LUBDE_MAGIC, 6)
     50 #define LUBDE_DISABLE_INTERRUPTS  _IO(LUBDE_MAGIC, 7)
     51 #define LUBDE_USLEEP              _IO(LUBDE_MAGIC, 8)
     52 #define LUBDE_WAIT_FOR_INTERRUPT  _IO(LUBDE_MAGIC, 9)
     53 #define LUBDE_SEM_OP              _IO(LUBDE_MAGIC, 10)
     54 #define LUBDE_UDELAY              _IO(LUBDE_MAGIC, 11)
     55 #define LUBDE_GET_DEVICE_TYPE     _IO(LUBDE_MAGIC, 12)
     56 #define LUBDE_SPI_READ_REG        _IO(LUBDE_MAGIC, 13)
     57 #define LUBDE_SPI_WRITE_REG       _IO(LUBDE_MAGIC, 14)
     58 #define LUBDE_READ_REG_16BIT_BUS  _IO(LUBDE_MAGIC, 19)
     59 #define LUBDE_WRITE_REG_16BIT_BUS _IO(LUBDE_MAGIC, 20)
     60 #define LUBDE_GET_BUS_FEATURES    _IO(LUBDE_MAGIC, 21)
     61 #define LUBDE_WRITE_IRQ_MASK      _IO(LUBDE_MAGIC, 22)
     62 #define LUBDE_CPU_WRITE_REG       _IO(LUBDE_MAGIC, 23)
     63 #define LUBDE_CPU_READ_REG        _IO(LUBDE_MAGIC, 24)
     64 #define LUBDE_CPU_PCI_REGISTER    _IO(LUBDE_MAGIC, 25)
     65 #define LUBDE_DEV_RESOURCE        _IO(LUBDE_MAGIC, 26)
     66 #define LUBDE_IPROC_READ_REG      _IO(LUBDE_MAGIC, 27)
     67 #define LUBDE_IPROC_WRITE_REG     _IO(LUBDE_MAGIC, 28)
     68 #define LUBDE_ATTACH_INSTANCE     _IO(LUBDE_MAGIC, 29)
     69 #define LUBDE_GET_DEVICE_STATE    _IO(LUBDE_MAGIC, 30)
     70 #define LUBDE_REPROBE             _IO(LUBDE_MAGIC, 31)
     71 
     72 #define LUBDE_SEM_OP_CREATE       1
     73 #define LUBDE_SEM_OP_DESTROY      2
     74 #define LUBDE_SEM_OP_TAKE         3
     75 #define LUBDE_SEM_OP_GIVE         4
     76 
     77 #define LUBDE_SUCCESS 0
     78 #define LUBDE_FAIL ((unsigned int)-1)
     79 
     80 
     81 /* 
     82  * Version history
     83  * 1: add LUBDE_GET_DEVICE_STATE to support PCI hot plug 
     84  * 2: add LUBDE_REPROBE to support reprobe available devices
     85  */
     86 #define KBDE_VERSION    2
     87 
     88 
     89 /* This is the signal that will be used
     90  * when an interrupt occurs
     91  */
     92 
     93 #ifndef __KERNEL__
     94 #include <signal.h>
     95 #endif
     96 
     97 #define LUBDE_INTERRUPT_SIGNAL    SIGUSR1
     98 #define LUBDE_ETHER_INTERRUPT_SIGNAL    SIGUSR2
     99 
    100 #endif /* __LUBDE_H__ */