3 |
#ifndef SCM_ROOT_H |
#ifndef SCM_ROOT_H |
4 |
#define SCM_ROOT_H |
#define SCM_ROOT_H |
5 |
|
|
6 |
/* Copyright (C) 1996,1998,2000,2001 Free Software Foundation, Inc. |
/* Copyright (C) 1996,1998,2000,2001, 2002 Free Software Foundation, Inc. |
7 |
* |
* |
8 |
* This program is free software; you can redistribute it and/or modify |
* 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 |
* it under the terms of the GNU General Public License as published by |
106 |
|
|
107 |
SCM handle; /* The root object for this root state */ |
SCM handle; /* The root object for this root state */ |
108 |
SCM parent; /* The parent root object */ |
SCM parent; /* The parent root object */ |
109 |
|
|
110 |
|
SCM active_asyncs; /* The thunks to be run at the next |
111 |
|
safe point */ |
112 |
} scm_root_state; |
} scm_root_state; |
113 |
|
|
114 |
#define scm_stack_base (scm_root->stack_base) |
#define scm_stack_base (scm_root->stack_base) |
126 |
#define scm_cur_outp (scm_root->cur_outp) |
#define scm_cur_outp (scm_root->cur_outp) |
127 |
#define scm_cur_errp (scm_root->cur_errp) |
#define scm_cur_errp (scm_root->cur_errp) |
128 |
#define scm_cur_loadp (scm_root->cur_loadp) |
#define scm_cur_loadp (scm_root->cur_loadp) |
129 |
|
#define scm_active_asyncs (scm_root->active_asyncs) |
130 |
|
|
131 |
#ifdef USE_THREADS |
#ifdef USE_THREADS |
132 |
#define scm_root ((scm_root_state *) SCM_THREAD_LOCAL_DATA) |
#define scm_root ((scm_root_state *) SCM_THREAD_LOCAL_DATA) |
133 |
#define scm_set_root(new_root) SCM_SET_THREAD_LOCAL_DATA (new_root) |
#define scm_set_root(new_root) SCM_SET_THREAD_LOCAL_DATA (new_root) |