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__ */