* README: Mention gdbserver/README.
[deliverable/binutils-gdb.git] / gdb / scm-lang.h
CommitLineData
d4310edb
LC
1/* Scheme/Guile language support routines for GDB, the GNU debugger.
2
9b254dd1
DJ
3 Copyright (C) 1995, 1996, 1998, 1999, 2000, 2003, 2005, 2008
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 *,
49 int, enum val_prettyprint);
50
51extern int scm_val_print (struct type *, const gdb_byte *, int, CORE_ADDR,
52 struct ui_file *, int, int, int,
53 enum val_prettyprint);
54
55extern LONGEST scm_get_field (LONGEST, int);
56
57extern void scm_scmval_print (LONGEST, struct ui_file *, int, int, int,
58 enum val_prettyprint);
59
60extern int is_scmvalue_type (struct type *);
61
62extern void scm_printchar (int, struct ui_file *);
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.072466 seconds and 4 git commands to generate.