comparison src/lisp.h @ 458:c33ae14dd6d0 r21-2-44

Import from CVS: tag r21-2-44
author cvs
date Mon, 13 Aug 2007 11:42:25 +0200
parents e7ef97881643
children 0784d089fdc9
comparison
equal deleted inserted replaced
457:4b9290a33024 458:c33ae14dd6d0
216 "Types must be declared in declarations, not in expressions." */ 216 "Types must be declared in declarations, not in expressions." */
217 # define ALIGNOF(type) offsetof (struct { char c; type member; }, member) 217 # define ALIGNOF(type) offsetof (struct { char c; type member; }, member)
218 # else 218 # else
219 /* C++ is annoying, but it has a big bag of tricks. 219 /* C++ is annoying, but it has a big bag of tricks.
220 The following doesn't have the "inside out" declaration bug C does. */ 220 The following doesn't have the "inside out" declaration bug C does. */
221 template<class T> struct alignment_trick { char c; T member; }; 221 template<typename T> struct alignment_trick { char c; T member; };
222 # define ALIGNOF(type) offsetof (alignment_trick<type>, member) 222 # define ALIGNOF(type) offsetof (alignment_trick<type>, member)
223 # endif 223 # endif
224 #endif /* ALIGNOF */ 224 #endif /* ALIGNOF */
225 225
226 #define ALIGN_SIZE(len, unit) \ 226 #define ALIGN_SIZE(len, unit) \
1901 1901
1902 extern EMACS_INT consing_since_gc; 1902 extern EMACS_INT consing_since_gc;
1903 1903
1904 /* threshold for doing another gc */ 1904 /* threshold for doing another gc */
1905 1905
1906 extern EMACS_INT gc_cons_threshold; 1906 extern Fixnum gc_cons_threshold;
1907 1907
1908 /* Structure for recording stack slots that need marking */ 1908 /* Structure for recording stack slots that need marking */
1909 1909
1910 /* This is a chain of structures, each of which points at a Lisp_Object 1910 /* This is a chain of structures, each of which points at a Lisp_Object
1911 variable whose value should be marked in garbage collection. 1911 variable whose value should be marked in garbage collection.
2148 2148
2149 /* Call staticpro_nodump (&var) to protect static variable `var'. */ 2149 /* Call staticpro_nodump (&var) to protect static variable `var'. */
2150 /* var will not be saved at dump time */ 2150 /* var will not be saved at dump time */
2151 void staticpro_nodump (Lisp_Object *); 2151 void staticpro_nodump (Lisp_Object *);
2152 2152
2153 /* Call dump_add_root_struct_ptr (&var, &desc) to dump the structure pointed to by `var'. */ 2153 /* dump_add_root_struct_ptr (&var, &desc) dumps the structure pointed to by `var'. */
2154 #ifdef PDUMP 2154 #ifdef PDUMP
2155 void dump_add_root_struct_ptr (void *, const struct struct_description *); 2155 void dump_add_root_struct_ptr (void *, const struct struct_description *);
2156 #else 2156 #else
2157 #define dump_add_root_struct_ptr(varaddr,descaddr) DO_NOTHING 2157 #define dump_add_root_struct_ptr(varaddr,descaddr) DO_NOTHING
2158 #endif 2158 #endif
2159 2159
2160 /* Call dump_add_opaque (&var, size) to dump the opaque static structure `var'. */ 2160 /* dump_add_opaque (&var, size) dumps the opaque static structure `var'. */
2161 #ifdef PDUMP 2161 #ifdef PDUMP
2162 void dump_add_opaque (void *, size_t); 2162 void dump_add_opaque (void *, size_t);
2163 #else 2163 #else
2164 #define dump_add_opaque(varaddr,size) DO_NOTHING 2164 #define dump_add_opaque(varaddr,size) DO_NOTHING
2165 #endif
2166
2167 /* Call dump_add_opaque_int (&int_var) to dump `int_var', of type `int'. */
2168 #ifdef PDUMP
2169 #define dump_add_opaque_int(int_varaddr) do { \
2170 int *dao_ = (int_varaddr); /* type check */ \
2171 dump_add_opaque (dao_, sizeof (*dao_)); \
2172 } while (0)
2173 #else
2174 #define dump_add_opaque_int(int_varaddr) DO_NOTHING
2175 #endif
2176
2177 /* Call dump_add_opaque_fixnum (&fixnum_var) to dump `fixnum_var', of type `Fixnum'. */
2178 #ifdef PDUMP
2179 #define dump_add_opaque_fixnum(fixnum_varaddr) do { \
2180 Fixnum *dao_ = (fixnum_varaddr); /* type check */ \
2181 dump_add_opaque (dao_, sizeof (*dao_)); \
2182 } while (0)
2183 #else
2184 #define dump_add_opaque_fixnum(fixnum_varaddr) DO_NOTHING
2165 #endif 2185 #endif
2166 2186
2167 /* Call dump_add_root_object (&var) to ensure that var is properly updated after pdump. */ 2187 /* Call dump_add_root_object (&var) to ensure that var is properly updated after pdump. */
2168 #ifdef PDUMP 2188 #ifdef PDUMP
2169 void dump_add_root_object (Lisp_Object *); 2189 void dump_add_root_object (Lisp_Object *);
2424 Lisp_Object decode_path (const char *); 2444 Lisp_Object decode_path (const char *);
2425 /* Nonzero means don't do interactive redisplay and don't change tty modes */ 2445 /* Nonzero means don't do interactive redisplay and don't change tty modes */
2426 extern int noninteractive, noninteractive1; 2446 extern int noninteractive, noninteractive1;
2427 extern int fatal_error_in_progress; 2447 extern int fatal_error_in_progress;
2428 extern int preparing_for_armageddon; 2448 extern int preparing_for_armageddon;
2429 extern int emacs_priority; 2449 extern Fixnum emacs_priority;
2430 extern int running_asynch_code; 2450 extern int running_asynch_code;
2431 extern int suppress_early_error_handler_backtrace; 2451 extern int suppress_early_error_handler_backtrace;
2432 2452
2433 /* Defined in eval.c */ 2453 /* Defined in eval.c */
2434 DECLARE_DOESNT_RETURN (signal_error (Lisp_Object, Lisp_Object)); 2454 DECLARE_DOESNT_RETURN (signal_error (Lisp_Object, Lisp_Object));