1 /* The common simulator framework for GDB, the GNU Debugger. 2 3 Copyright 2002-2024 Free Software Foundation, Inc. 4 5 Contributed by Andrew Cagney and Red Hat. 6 7 This file is part of GDB. 8 9 This program is free software; you can redistribute it and/or modify 10 it under the terms of the GNU General Public License as published by 11 the Free Software Foundation; either version 3 of the License, or 12 (at your option) any later version. 13 14 This program is distributed in the hope that it will be useful, 15 but WITHOUT ANY WARRANTY; without even the implied warranty of 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 GNU General Public License for more details. 18 19 You should have received a copy of the GNU General Public License 20 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 21 22 /* This must come before any other includes. */ 23 #include "defs.h" 24 25 #include <stdarg.h> 26 #include <stdlib.h> 27 #include <string.h> 28 29 #include "hw-main.h" 30 #include "hw-base.h" 31 32 /* Address methods */ 33 34 const hw_unit * 35 hw_unit_address (struct hw *me) 36 { 37 return &me->unit_address_of_hw; 38 } 39 40 41 /* IOCTL: */ 42 43 int 44 hw_ioctl (struct hw *me, 45 hw_ioctl_request request, 46 ...) 47 { 48 int status; 49 va_list ap; 50 va_start (ap, request); 51 status = me->to_ioctl (me, request, ap); 52 va_end (ap); 53 return status; 54 } 55 56 char * 57 hw_strdup (struct hw *me, const char *str) 58 { 59 if (str != NULL) 60 { 61 char *dup = hw_zalloc (me, strlen (str) + 1); 62 strcpy (dup, str); 63 return dup; 64 } 65 else 66 { 67 return NULL; 68 } 69 } 70