1/* Manage register sets. 2 3 Copyright 2003, 2004 Free Software Foundation, Inc. 4 5 This file is part of GDB. 6 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 2 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program; if not, write to the Free Software 19 Foundation, Inc., 59 Temple Place - Suite 330, 20 Boston, MA 02111-1307, USA. */ 21 22#ifndef REGSET_H 23#define REGSET_H 1 24 25struct gdbarch; 26struct regcache; 27 28/* Data structure describing a register set. */ 29 30typedef void (supply_regset_ftype) (const struct regset *, struct regcache *, 31 int, const void *, size_t); 32typedef void (collect_regset_ftype) (const struct regset *, 33 const struct regcache *, 34 int, void *, size_t); 35 36struct regset 37{ 38 /* Data pointer for private use by the methods below, presumably 39 providing some sort of description of the register set. */ 40 const void *descr; 41 42 /* Function supplying values in a register set to a register cache. */ 43 supply_regset_ftype *supply_regset; 44 45 /* Function collecting values in a register set from a register cache. */ 46 collect_regset_ftype *collect_regset; 47 48 /* Architecture associated with the register set. */ 49 struct gdbarch *arch; 50}; 51 52/* Allocate a fresh 'struct regset' whose supply_regset function is 53 SUPPLY_REGSET, and whose collect_regset function is COLLECT_REGSET. 54 If the regset has no collect_regset function, pass NULL for 55 COLLECT_REGSET. 56 57 The object returned is allocated on ARCH's obstack. */ 58 59extern struct regset *regset_alloc (struct gdbarch *arch, 60 supply_regset_ftype *supply_regset, 61 collect_regset_ftype *collect_regset); 62 63#endif /* regset.h */ 64