X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fscm-lang.h;h=1adeee5e63ab653bfaf71d488652c7175e2d97d3;hb=f3a42b68429196c8764a713e6b2db60205221cb7;hp=4ce53c39404ff9599cdeabf3bf2a85c97466080f;hpb=d0352a18a504a4e7b761f6b3264cf11347d8d056;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/scm-lang.h b/gdb/scm-lang.h index 4ce53c3940..1adeee5e63 100644 --- a/gdb/scm-lang.h +++ b/gdb/scm-lang.h @@ -1,11 +1,13 @@ /* Scheme/Guile language support routines for GDB, the GNU debugger. - Copyright 1995, 1996, 2000 Free Software Foundation, Inc. + + Copyright (C) 1995, 1996, 1998, 1999, 2000, 2003, 2005, 2008, 2009, 2010 + Free Software Foundation, Inc. This file is part of GDB. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -14,9 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ + along with this program. If not, see . */ #define SICP #include "scm-tags.h" @@ -35,8 +35,8 @@ #define SCM_LENGTH(x) (((unsigned long)SCM_CAR(x))>>8) #define SCM_NCONSP(x) (1 & (int)SCM_CAR(x)) #define SCM_NECONSP(x) (SCM_NCONSP(x) && (1 != SCM_TYP3(x))) -#define SCM_CAR(x) scm_get_field (x, 0) -#define SCM_CDR(x) scm_get_field (x, 1) +#define SCM_CAR(x) scm_get_field (x, 0, SCM_SIZE, SCM_BYTE_ORDER) +#define SCM_CDR(x) scm_get_field (x, 1, SCM_SIZE, SCM_BYTE_ORDER) #define SCM_VELTS(x) ((SCM *)SCM_CDR(x)) #define SCM_CLOSCAR(x) (SCM_CAR(x)-scm_tc3_closure) #define SCM_CODE(x) SCM_CAR(SCM_CLOSCAR (x)) @@ -46,25 +46,32 @@ struct value; extern int scm_value_print (struct value *, struct ui_file *, - int, enum val_prettyprint); - -extern int scm_val_print (struct type *, char *, int, CORE_ADDR, - struct ui_file *, int, int, int, - enum val_prettyprint); + const struct value_print_options *); -extern LONGEST scm_get_field (LONGEST, int); +extern int scm_val_print (struct type *, const gdb_byte *, int, CORE_ADDR, + struct ui_file *, int, + const struct value *, + const struct value_print_options *); -extern void scm_scmval_print (LONGEST, struct ui_file *, int, int, int, - enum val_prettyprint); +extern LONGEST scm_get_field (LONGEST, int, int, enum bfd_endian); extern int is_scmvalue_type (struct type *); -extern void scm_printchar (int, struct ui_file *); +extern void scm_printchar (int, struct type *, struct ui_file *); extern struct value *scm_evaluate_string (char *, int); -extern struct type *builtin_type_scm; - extern int scm_parse (void); -extern LONGEST scm_unpack (struct type *, char *, enum type_code); +extern LONGEST scm_unpack (struct type *, const gdb_byte *, enum type_code); + +/* Scheme types */ + +struct builtin_scm_type +{ + struct type *builtin_scm; +}; + +/* Return the Scheme type table for the specified architecture. */ +extern const struct builtin_scm_type *builtin_scm_type (struct gdbarch *gdbarch); +