18b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli#ifndef _ASM_UPROBES_H 28b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli#define _ASM_UPROBES_H 38b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli/* 48b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli * User-space Probes (UProbes) for powerpc 58b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli * 68b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli * This program is free software; you can redistribute it and/or modify 78b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli * it under the terms of the GNU General Public License as published by 88b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli * the Free Software Foundation; either version 2 of the License, or 98b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli * (at your option) any later version. 108b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli * 118b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli * This program is distributed in the hope that it will be useful, 128b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli * but WITHOUT ANY WARRANTY; without even the implied warranty of 138b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 148b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli * GNU General Public License for more details. 158b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli * 168b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli * You should have received a copy of the GNU General Public License 178b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli * along with this program; if not, write to the Free Software 188b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 198b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli * 208b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli * Copyright IBM Corporation, 2007-2012 218b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli * 228b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli * Adapted from the x86 port by Ananth N Mavinakayanahalli <ananth@in.ibm.com> 238b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli */ 248b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli 258b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli#include <linux/notifier.h> 268b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli#include <asm/probes.h> 278b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli 2828e1e58fb668e262648fb8ee8a24154633f40507Ananth N Mavinakayanahallitypedef ppc_opcode_t uprobe_opcode_t; 298b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli 308b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli#define MAX_UINSN_BYTES 4 318b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli#define UPROBE_XOL_SLOT_BYTES (MAX_UINSN_BYTES) 328b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli 338b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli/* The following alias is needed for reference from arch-agnostic code */ 348b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli#define UPROBE_SWBP_INSN BREAKPOINT_INSTRUCTION 358b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli#define UPROBE_SWBP_INSN_SIZE 4 /* swbp insn size in bytes */ 368b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli 378b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahallistruct arch_uprobe { 388b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli union { 393d78e945b6249d4ef2308192343f8b203b1d7ea5Oleg Nesterov u32 insn; 403d78e945b6249d4ef2308192343f8b203b1d7ea5Oleg Nesterov u32 ixol; 418b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli }; 428b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli}; 438b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli 448b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahallistruct arch_uprobe_task { 458b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli unsigned long saved_trap_nr; 468b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli}; 478b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli 488b7b80b9ebb46dd88fbb94e918297295cf312b59Ananth N Mavinakayanahalli#endif /* _ASM_UPROBES_H */ 49