1 /* 2 * Copyright 2010 Tilera Corporation. All Rights Reserved. 3 * 4 * This program is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU General Public License 6 * as published by the Free Software Foundation, version 2. 7 * 8 * This program is distributed in the hope that it will be useful, but 9 * WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or 11 * NON INFRINGEMENT. See the GNU General Public License for 12 * more details. 13 * 14 * Provide methods for access control of per-cpu resources like 15 * UDN, IDN, or IPI. 16 */ 17 18 #ifndef _UAPI_ASM_TILE_HARDWALL_H 19 #define _UAPI_ASM_TILE_HARDWALL_H 20 21 #include <arch/chip.h> 22 #include <linux/ioctl.h> 23 24 #define HARDWALL_IOCTL_BASE 0xa2 25 26 /* 27 * The HARDWALL_CREATE() ioctl is a macro with a "size" argument. 28 * The resulting ioctl value is passed to the kernel in conjunction 29 * with a pointer to a standard kernel bitmask of cpus. 30 * For network resources (UDN or IDN) the bitmask must physically 31 * represent a rectangular configuration on the chip. 32 * The "size" is the number of bytes of cpu mask data. 33 */ 34 #define _HARDWALL_CREATE 1 35 #define HARDWALL_CREATE(size) \ 36 _IOC(_IOC_READ, HARDWALL_IOCTL_BASE, _HARDWALL_CREATE, (size)) 37 38 #define _HARDWALL_ACTIVATE 2 39 #define HARDWALL_ACTIVATE \ 40 _IO(HARDWALL_IOCTL_BASE, _HARDWALL_ACTIVATE) 41 42 #define _HARDWALL_DEACTIVATE 3 43 #define HARDWALL_DEACTIVATE \ 44 _IO(HARDWALL_IOCTL_BASE, _HARDWALL_DEACTIVATE) 45 46 #define _HARDWALL_GET_ID 4 47 #define HARDWALL_GET_ID \ 48 _IO(HARDWALL_IOCTL_BASE, _HARDWALL_GET_ID) 49 50 51 #endif /* _UAPI_ASM_TILE_HARDWALL_H */ 52