OLD | NEW |
(Empty) | |
| 1 /* |
| 2 * arch/arm/mach-tegra/include/linux/nvos_ioctl.h |
| 3 * |
| 4 * structure declarations for NvOs user-space ioctls |
| 5 * |
| 6 * Copyright (c) 2009, NVIDIA Corporation. |
| 7 * |
| 8 * This program is free software; you can redistribute it and/or modify |
| 9 * it under the terms of the GNU General Public License as published by |
| 10 * the Free Software Foundation; either version 2 of the License, or |
| 11 * (at your option) any later version. |
| 12 * |
| 13 * This program is distributed in the hope that it will be useful, but WITHOUT |
| 14 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| 15 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
| 16 * more details. |
| 17 * |
| 18 * You should have received a copy of the GNU General Public License along |
| 19 * with this program; if not, write to the Free Software Foundation, Inc., |
| 20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
| 21 */ |
| 22 |
| 23 #include <linux/ioctl.h> |
| 24 #include "nvos.h" |
| 25 #include "nvcommon.h" |
| 26 |
| 27 #ifndef NVOS_LINUX_IOCTLS_H |
| 28 #define NVOS_LINUX_IOCTLS_H |
| 29 |
| 30 typedef struct |
| 31 { |
| 32 NvU32 IoctlCode; |
| 33 NvU32 InBufferSize; |
| 34 NvU32 InOutBufferSize; |
| 35 NvU32 OutBufferSize; |
| 36 void *pBuffer; |
| 37 } NV_ALIGN(4) NvOsIoctlParams; |
| 38 |
| 39 typedef struct |
| 40 { |
| 41 NvOsSemaphoreHandle sem; |
| 42 NvU32 value; |
| 43 NvError error; |
| 44 } NV_ALIGN(4) NvOsSemaphoreIoctlParams; |
| 45 |
| 46 typedef struct |
| 47 { |
| 48 NvOsSemaphoreHandle hOrig; |
| 49 NvOsSemaphoreHandle hNew; |
| 50 NvError Error; |
| 51 } NV_ALIGN(4) NvOsSemaphoreUnmarshalParams; |
| 52 |
| 53 typedef struct |
| 54 { |
| 55 NvOsSemaphoreHandle hOrig; |
| 56 NvOsSemaphoreHandle hNew; |
| 57 NvError Error; |
| 58 } NV_ALIGN(4) NvOsSemaphoreCloneParams; |
| 59 |
| 60 typedef struct |
| 61 { |
| 62 NvU32 nIrqs; |
| 63 const NvU32 *Irqs; |
| 64 NvOsSemaphoreHandle *SemaphoreList; |
| 65 NvError errCode; |
| 66 NvUPtr kernelHandle; |
| 67 } NV_ALIGN(4) NvOsInterruptRegisterParams; |
| 68 |
| 69 typedef struct |
| 70 { |
| 71 NvUPtr handle; |
| 72 NvU32 arg; |
| 73 NvError errCode; |
| 74 } NV_ALIGN(4) NvOsInterruptOpParams; |
| 75 |
| 76 typedef struct |
| 77 { |
| 78 NvUPtr handle; |
| 79 NvU32 mask; |
| 80 } NV_ALIGN(4) NvOsInterruptMaskParams; |
| 81 |
| 82 typedef struct |
| 83 { |
| 84 NvU32 size; |
| 85 char *text; |
| 86 } NV_ALIGN(4) NvOsDebugStringParams; |
| 87 |
| 88 typedef struct |
| 89 { |
| 90 NvOsPhysAddr base; |
| 91 NvU32 size; |
| 92 } NV_ALIGN(4) NvOsMemRangeParams; |
| 93 |
| 94 #define NV_IOCTL_SEMAPHORE_CREATE _IOWR('N', 0x20, NvOsSemaphoreIoctlParams) |
| 95 #define NV_IOCTL_SEMAPHORE_DESTROY _IOW('N', 0x21, NvOsSemaphoreHandle) |
| 96 #define NV_IOCTL_SEMAPHORE_CLONE \ |
| 97 _IOWR('N', 0x22, NvOsSemaphoreCloneParams) |
| 98 #define NV_IOCTL_SEMAPHORE_UNMARSHAL \ |
| 99 _IOWR('N', 0x23, NvOsSemaphoreUnmarshalParams) |
| 100 #define NV_IOCTL_SEMAPHORE_SIGNAL _IOW('N', 0x24, NvOsSemaphoreHandle) |
| 101 #define NV_IOCTL_SEMAPHORE_WAIT _IOW('N', 0x25, NvOsSemaphoreHandle) |
| 102 #define NV_IOCTL_SEMAPHORE_WAIT_TIMEOUT \ |
| 103 _IOW('N', 0x26, NvOsSemaphoreIoctlParams) |
| 104 #define NV_IOCTL_INTERRUPT_REGISTER \ |
| 105 _IOWR('N', 0x27, NvOsInterruptRegisterParams) |
| 106 #define NV_IOCTL_INTERRUPT_UNREGISTER _IOWR('N', 0x28, NvOsInterruptOpParams) |
| 107 #define NV_IOCTL_INTERRUPT_ENABLE _IOWR('N', 0x29, NvOsInterruptOpParams) |
| 108 #define NV_IOCTL_INTERRUPT_DONE _IOWR('N', 0x2A, NvOsInterruptOpParams) |
| 109 #define NV_IOCTL_INTERRUPT_MASK _IOWR('N', 0x2B, NvOsInterruptOpParams) |
| 110 #define NV_IOCTL_GLOBAL_LOCK _IO('N', 0x2C) |
| 111 #define NV_IOCTL_GLOBAL_UNLOCK _IO('N', 0x2D) |
| 112 #define NV_IOCTL_DEBUG_STRING _IOW('N', 0x2E, NvOsDebugStringParams) |
| 113 #define NV_IOCTL_MEMORY_RANGE _IOW('N', 0x2F, NvOsMemRangeParams) |
| 114 |
| 115 #endif |
OLD | NEW |