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