Mercurial > hg > xemacs-beta
annotate src/m/mips.h @ 5013:ae48681c47fa
changes to VOID_TO_LISP et al.
-------------------- ChangeLog entries follow: --------------------
src/ChangeLog addition:
2010-02-08 Ben Wing <ben@xemacs.org>
* casetab.c (compute_canon_mapper):
* casetab.c (initialize_identity_mapper):
* casetab.c (compute_up_or_eqv_mapper):
* casetab.c (recompute_case_table):
* casetab.c (set_case_table):
* chartab.c (copy_mapper):
* chartab.c (copy_char_table_range):
* chartab.c (get_range_char_table_1):
* console.c (find_nonminibuffer_frame_not_on_console_predicate):
* console.c (find_nonminibuffer_frame_not_on_console):
* console.c (nuke_all_console_slots):
* device.c:
* device.c (find_nonminibuffer_frame_not_on_device_predicate):
* device.c (find_nonminibuffer_frame_not_on_device):
* dialog-msw.c (dialog_proc):
* dialog-msw.c (handle_question_dialog_box):
* dialog-x.c (maybe_run_dbox_text_callback):
* eval.c:
* eval.c (safe_run_hook_trapping_problems_1):
* eval.c (safe_run_hook_trapping_problems):
* event-msw.c:
* event-msw.c (mswindows_wnd_proc):
* event-msw.c (mswindows_find_frame):
* faces.c (update_face_inheritance_mapper):
* frame-msw.c (mswindows_init_frame_1):
* frame-msw.c (mswindows_get_mouse_position):
* frame-msw.c (mswindows_get_frame_parent):
* glade.c (connector):
* glade.c (Fglade_xml_signal_connect):
* glade.c (Fglade_xml_signal_autoconnect):
* glade.c (Fglade_xml_textdomain):
* glyphs-msw.c (mswindows_subwindow_instantiate):
* glyphs-msw.c (mswindows_widget_instantiate):
* glyphs.c (check_instance_cache_mapper):
* glyphs.c (check_window_subwindow_cache):
* glyphs.c (check_image_instance_structure):
* gui-x.c (snarf_widget_value_mapper):
* gui-x.c (popup_selection_callback):
* gui-x.c (button_item_to_widget_value):
* keymap.c (map_keymap_mapper):
* keymap.c (Fmap_keymap):
* menubar-gtk.c (__torn_off_sir):
* menubar-gtk.c (__activate_menu):
* menubar-gtk.c (menu_convert):
* menubar-gtk.c (__generic_button_callback):
* menubar-gtk.c (menu_descriptor_to_widget_1):
* menubar-msw.c:
* menubar-msw.c (EMPTY_ITEM_ID):
* menubar-x.c (menu_item_descriptor_to_widget_value_1):
* menubar-x.c (pre_activate_callback):
* menubar-x.c (command_builder_operate_menu_accelerator):
* menubar-x.c (command_builder_find_menu_accelerator):
* print.c (print_internal):
* process-unix.c (close_process_descs_mapfun):
* process.c (get_process_from_usid):
* process.c (init_process_io_handles):
* profile.c (sigprof_handler):
* profile.c (get_profiling_info_timing_maphash):
* profile.c (Fget_profiling_info):
* profile.c (set_profiling_info_timing_maphash):
* profile.c (mark_profiling_info_maphash):
* scrollbar-msw.c (mswindows_create_scrollbar_instance):
* scrollbar-msw.c (mswindows_free_scrollbar_instance):
* scrollbar-msw.c (mswindows_handle_scrollbar_event):
* specifier.c (recompute_cached_specifier_everywhere_mapfun):
* specifier.c (recompute_cached_specifier_everywhere):
* syntax.c (copy_to_mirrortab):
* syntax.c (copy_if_not_already_present):
* syntax.c (update_just_this_syntax_table):
* text.c (new_dfc_convert_now_damn_it):
* text.h (LISP_STRING_TO_EXTERNAL):
* tooltalk.c:
* tooltalk.c (tooltalk_message_callback):
* tooltalk.c (tooltalk_pattern_callback):
* tooltalk.c (Fcreate_tooltalk_message):
* tooltalk.c (Fcreate_tooltalk_pattern):
* ui-byhand.c (__generic_toolbar_callback):
* ui-byhand.c (generic_toolbar_insert_item):
* ui-byhand.c (__emacs_gtk_ctree_recurse_internal):
* ui-byhand.c (Fgtk_ctree_recurse):
* ui-gtk.c (__internal_callback_destroy):
* ui-gtk.c (__internal_callback_marshal):
* ui-gtk.c (Fgtk_signal_connect):
* ui-gtk.c (gtk_type_to_lisp):
* ui-gtk.c (lisp_to_gtk_type):
* ui-gtk.c (lisp_to_gtk_ret_type):
* lisp-disunion.h:
* lisp-disunion.h (NON_LVALUE):
* lisp-union.h:
* lisp.h (LISP_HASH):
Rename:
LISP_TO_VOID -> STORE_LISP_IN_VOID
VOID_TO_LISP -> GET_LISP_FROM_VOID
These new names are meant to clearly identify that the Lisp object
is the source and void the sink, and that they can't be used the
other way around -- they aren't exact opposites despite the old
names. The names are also important given the new functions
created just below. Also, clarify comments in lisp-union.h and
lisp-disunion.h about the use of the functions.
* lisp.h:
New functions STORE_VOID_IN_LISP and GET_VOID_FROM_LISP. These
are different from the above in that the source is a void *
(previously, you had to use make_opaque_ptr()).
* eval.c (restore_lisp_object):
* eval.c (record_unwind_protect_restoring_lisp_object):
* eval.c (struct restore_int):
* eval.c (restore_int):
* eval.c (record_unwind_protect_restoring_int):
* eval.c (free_pointer):
* eval.c (record_unwind_protect_freeing):
* eval.c (free_dynarr):
* eval.c (record_unwind_protect_freeing_dynarr):
* eval.c (unbind_to_1):
Use STORE_VOID_IN_LISP and GET_VOID_FROM_LISP to eliminate the
use of make_opaque_ptr() and mostly eliminate Lisp consing
entirely in the use of these various record_unwind_protect_*
functions as well as internal_bind_* (e.g. internal_bind_int).
* tests.c:
* tests.c (Ftest_store_void_in_lisp):
* tests.c (syms_of_tests):
* tests.c (vars_of_tests):
Add an C-assert-style test to test STORE_VOID_IN_LISP and
GET_VOID_FROM_LISP to make sure the same value comes back that
was put in.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Mon, 08 Feb 2010 06:42:16 -0600 |
parents | aa5ed11f473b |
children | 308d34e9f07d 861f2601a38b |
rev | line source |
---|---|
428 | 1 /* m- file for Mips machines. |
2 Copyright (C) 1987, 1992 Free Software Foundation, Inc. | |
3 | |
4 This file is part of GNU Emacs. | |
5 | |
6 GNU Emacs is free software; you can redistribute it and/or modify | |
7 it under the terms of the GNU General Public License as published by | |
8 the Free Software Foundation; either version 2, or (at your option) | |
9 any later version. | |
10 | |
11 GNU Emacs is distributed in the hope that it will be useful, | |
12 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 GNU General Public License for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
17 along with XEmacs; see the file COPYING. If not, write to | |
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
19 Boston, MA 02111-1307, USA. */ | |
20 | |
21 /* Synched up with: FSF 19.31. */ | |
22 | |
23 /* The following line tells the configuration script what sort of | |
24 operating system this machine is likely to run. | |
25 USUAL-OPSYS="note" | |
26 | |
27 NOTE-START | |
28 Use m-mips4.h for RISCOS version 4; use s-bsd4-3.h with the BSD world. | |
29 Note that the proper m- file for the Decstation is m-pmax.h. | |
30 NOTE-END */ | |
31 | |
32 /* Now define a symbol for the cpu type, if your compiler | |
33 does not define it automatically: | |
34 Ones defined so far include vax, m68000, ns16000, pyramid, | |
35 orion, tahoe, APOLLO and many others */ | |
36 #ifndef mips | |
37 # define mips | |
38 #endif | |
39 | |
40 /* Data type of load average, as read out of kmem. */ | |
41 | |
42 #define LOAD_AVE_TYPE long | |
43 | |
44 /* Convert that into an integer that is 100 for a load average of 1.0 */ | |
45 | |
46 #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / 256.0) | |
47 | |
48 #ifndef linux | |
49 /* CDC EP/IX 1.4.3 uses /unix */ | |
50 | |
51 #undef KERNEL_FILE | |
52 #define KERNEL_FILE "/unix" | |
53 #endif /* ! linux */ | |
54 | |
55 /* Define NO_REMAP if memory segmentation makes it not work well | |
56 to change the boundary between the text section and data section | |
57 when Emacs is dumped. If you define this, the preloaded Lisp | |
58 code will not be sharable; but that's better than failing completely. */ | |
59 | |
60 #define NO_REMAP | |
61 | |
62 /* This machine requires completely different unexec code | |
63 which lives in a separate file. Specify the file name. */ | |
64 | |
65 #ifndef linux | |
66 #define UNEXEC "unexmips.o" | |
67 #endif /* !linux */ | |
68 /* Describe layout of the address space in an executing process. */ | |
69 | |
70 #ifdef linux | |
71 #define TEXT_START 0x00400000 | |
72 #define DATA_START 0x10000000 | |
73 #else /* !linux */ | |
74 #define TEXT_START 0x400000 | |
75 #define DATA_START 0x800000 | |
76 #endif /* linux */ | |
77 | |
78 /* Alter some of the options used when linking. */ | |
79 | |
4759
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
2367
diff
changeset
|
80 #if !defined(linux) |
428 | 81 #ifdef BSD |
82 | |
83 /* DECstations don't have this library. */ | |
84 /* #define LIBS_MACHINE "-lmld" */ | |
85 | |
86 #define LD_SWITCH_MACHINE "-D 800000" | |
87 #define LIBS_DEBUG | |
88 | |
89 #define LINKER "/bsd43/bin/ld" | |
90 | |
91 #else /* not BSD */ | |
92 | |
93 #undef LIBS_MACHINE | |
94 #define LD_SWITCH_MACHINE "-D 800000 -g3" | |
95 #define START_FILES "pre-crt0.o /usr/lib/crt1.o" | |
96 #define LIB_STANDARD "-lbsd -lc /usr/lib/crtn.o" | |
97 #define LIBS_TERMCAP "-lcurses" | |
98 | |
99 #define C_SWITCH_MACHINE "-I/usr/include/bsd" | |
100 #define C_DEBUG_SWITCH "-O -g3" | |
101 | |
102 #endif /* not BSD */ | |
4759
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
2367
diff
changeset
|
103 #endif /* !linux */ |
428 | 104 |
4759
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
2367
diff
changeset
|
105 #if !defined(linux) |
428 | 106 #ifdef USG |
107 | |
108 /* Don't try to use SIGIO even though it is defined. */ | |
109 #define BROKEN_SIGIO | |
110 | |
111 /* Describe special kernel features. */ | |
112 | |
113 #if defined(emacs) && !defined(INHIBIT_BSD_TIME) | |
114 #include <bsd/sys/time.h> | |
115 #endif | |
116 | |
117 /* The `select' in the system won't work for pipes, so don't use it. */ | |
118 #undef HAVE_SELECT /* override configuration decision */ | |
119 | |
120 /* ??? */ | |
121 #define IRIS | |
122 | |
123 #endif /* USG */ | |
124 | |
125 #ifdef BSD | |
126 #define COFF | |
127 #define TERMINFO | |
128 #undef MAIL_USE_FLOCK /* Someone should check this. */ | |
129 #endif /* BSD */ | |
4759
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
2367
diff
changeset
|
130 #endif /* !linux */ |