* configure: Rebuild.
[deliverable/binutils-gdb.git] / gdb / scm-lang.h
CommitLineData
d4310edb
LC
1/* Scheme/Guile language support routines for GDB, the GNU debugger.
2
0fb0cc75 3 Copyright (C) 1995, 1996, 1998, 1999, 2000, 2003, 2005, 2008, 2009
9b254dd1 4 Free Software Foundation, Inc.
d4310edb
LC
5
6 This file is part of GDB.
7
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
a9762ec7 10 the Free Software Foundation; either version 3 of the License, or
d4310edb
LC
11 (at your option) any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
a9762ec7 19 along with this program. If not, see <http://www.gnu.org/licenses/>. */
d4310edb
LC
20
21#define SICP
22#include "scm-tags.h"
23#undef SCM_NCELLP
24#define SCM_NCELLP(x) ((SCM_SIZE-1) & (int)(x))
25#define SCM_ITAG8_DATA(X) ((X)>>8)
26#define SCM_ICHR(x) ((unsigned char)SCM_ITAG8_DATA(x))
27#define SCM_ICHRP(x) (SCM_ITAG8(x) == scm_tc8_char)
28#define scm_tc8_char 0xf4
29#define SCM_IFLAGP(n) ((0x87 & (int)(n))==4)
30#define SCM_ISYMNUM(n) ((int)((n)>>9))
31#define SCM_ISYMCHARS(n) (scm_isymnames[SCM_ISYMNUM(n)])
32#define SCM_ILOCP(n) ((0xff & (int)(n))==0xfc)
33#define SCM_ITAG8(X) ((int)(X) & 0xff)
34#define SCM_TYP7(x) (0x7f & (int)SCM_CAR(x))
35#define SCM_LENGTH(x) (((unsigned long)SCM_CAR(x))>>8)
36#define SCM_NCONSP(x) (1 & (int)SCM_CAR(x))
37#define SCM_NECONSP(x) (SCM_NCONSP(x) && (1 != SCM_TYP3(x)))
38#define SCM_CAR(x) scm_get_field (x, 0)
39#define SCM_CDR(x) scm_get_field (x, 1)
40#define SCM_VELTS(x) ((SCM *)SCM_CDR(x))
41#define SCM_CLOSCAR(x) (SCM_CAR(x)-scm_tc3_closure)
42#define SCM_CODE(x) SCM_CAR(SCM_CLOSCAR (x))
43#define SCM_MAKINUM(x) (((x)<<2)+2L)
44
45/* Forward decls for prototypes */
46struct value;
47
48extern int scm_value_print (struct value *, struct ui_file *,
79a45b7d 49 const struct value_print_options *);
d4310edb
LC
50
51extern int scm_val_print (struct type *, const gdb_byte *, int, CORE_ADDR,
79a45b7d
TT
52 struct ui_file *, int,
53 const struct value_print_options *);
d4310edb
LC
54
55extern LONGEST scm_get_field (LONGEST, int);
56
79a45b7d
TT
57extern void scm_scmval_print (LONGEST, struct ui_file *, int,
58 const struct value_print_options *);
d4310edb
LC
59
60extern int is_scmvalue_type (struct type *);
61
6c7a06a3 62extern void scm_printchar (int, struct type *, struct ui_file *);
d4310edb
LC
63
64extern struct value *scm_evaluate_string (char *, int);
65
66extern struct type *builtin_type_scm;
67
68extern int scm_parse (void);
69
70extern LONGEST scm_unpack (struct type *, const gdb_byte *, enum type_code);
This page took 0.199951 seconds and 4 git commands to generate.