1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204
|
/*
Title: sys.h
Copyright (c) 2000-7
Cambridge University Technical Services Limited
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
/* This file is included in some of the assembly code files so it must only
contain preprocessor directives and not C code. */
#ifndef _SYS_H
#define _SYS_H
/*********************************************************************
*
* Entries in the IO area.
*
*********************************************************************/
#define POLY_SYS_exit 1
#define POLY_SYS_chdir 9
#define POLY_SYS_alloc_store 11
#define POLY_SYS_raisex 14 /* This is now used only by SetException. */
#define POLY_SYS_get_length 15
#define POLY_SYS_get_flags 17
#define POLY_SYS_str_compare 23 /* DCJM 21/3/06 */
#define POLY_SYS_teststreq 24
#define POLY_SYS_teststrneq 25
#define POLY_SYS_teststrgtr 26
#define POLY_SYS_teststrlss 27
#define POLY_SYS_teststrgeq 28
#define POLY_SYS_teststrleq 29
#define POLY_SYS_exception_trace 30
#define POLY_SYS_give_ex_trace 31 /* Called from exception unwind code. */
#define POLY_SYS_lockseg 47
#define POLY_SYS_emptystring 48
#define POLY_SYS_nullvector 49
#define POLY_SYS_network 51 /* DCJM 22/5/00 */
#define POLY_SYS_os_specific 52 /* DCJM 22/5/00 */
#define POLY_SYS_io_dispatch 61 /* DCJM 8/5/00 */
#define POLY_SYS_signal_handler 62 /* DCJM 18/7/00 */
#define POLY_SYS_atomic_incr 70 /* DCJM 12/3/07 */
#define POLY_SYS_atomic_decr 71 /* DCJM 12/3/07 */
#define POLY_SYS_thread_self 72 /* DCJM 12/3/07 */
#define POLY_SYS_thread_dispatch 73 /* DCJM 12/3/07 */
//#define POLY_SYS_fork_process 82
//#define POLY_SYS_choice_process 83
#define POLY_SYS_kill_self 84
//#define POLY_SYS_int_process 85
//#define POLY_SYS_send_on_channel 86
//#define POLY_SYS_receive_on_channel 87
#define POLY_SYS_profiler 88
#define POLY_SYS_full_gc 92 /* MJC 18/03/91 */
#define POLY_SYS_stack_trace 93 /* MJC 18/03/91 */
#define POLY_SYS_timing_dispatch 94 /* DCJM 10/4/00 */
#define POLY_SYS_objsize 99 /* MJC 27/04/88 */
#define POLY_SYS_showsize 100 /* MJC 09/03/89 */
//#define POLY_SYS_interrupt_console_processes 103 /* MJC 01/08/90 */
#define POLY_SYS_is_short 105
#define POLY_SYS_aplus 106
#define POLY_SYS_aminus 107
#define POLY_SYS_amul 108
#define POLY_SYS_adiv 109
#define POLY_SYS_amod 110
#define POLY_SYS_aneg 111
#define POLY_SYS_xora 112 /* DCJM 21/6/00 */
#define POLY_SYS_equala 113
#define POLY_SYS_ora 114 /* DCJM 21/6/00 */
#define POLY_SYS_anda 115 /* DCJM 21/6/00 */
#define POLY_SYS_Real_str 117 /* DCJM 6/4/00 */
#define POLY_SYS_Real_geq 118 /* DCJM 28/3/00 */
#define POLY_SYS_Real_leq 119 /* DCJM 28/3/00 */
#define POLY_SYS_Real_gtr 120 /* DCJM 28/3/00 */
#define POLY_SYS_Real_lss 121 /* DCJM 28/3/00 */
#define POLY_SYS_Real_eq 122 /* DCJM 28/3/00 */
#define POLY_SYS_Real_neq 123 /* DCJM 28/3/00 */
#define POLY_SYS_Real_Dispatch 124 /* DCJM 25/3/00 */
#define POLY_SYS_Add_real 125
#define POLY_SYS_Sub_real 126
#define POLY_SYS_Mul_real 127
#define POLY_SYS_Div_real 128
#define POLY_SYS_Neg_real 130
#define POLY_SYS_Repr_real 132
#define POLY_SYS_conv_real 133
#define POLY_SYS_real_to_int 134
#define POLY_SYS_int_to_real 135
#define POLY_SYS_sqrt_real 136
#define POLY_SYS_sin_real 137
#define POLY_SYS_cos_real 138
#define POLY_SYS_arctan_real 139
#define POLY_SYS_exp_real 140
#define POLY_SYS_ln_real 141
#define POLY_SYS_stdin 148
#define POLY_SYS_stdout 149
#define POLY_SYS_process_env 150 /* DCJM 25/4/00 */
#define POLY_SYS_set_string_length 151 /* DCJM 28/2/01 */
#define POLY_SYS_get_first_long_word 152 /* DCJM 28/2/01 */
#define POLY_SYS_poly_specific 153 /* DCJM 17/6/06 */
#define POLY_SYS_io_operation 189
#define POLY_SYS_set_code_constant 194 /* DCJM 2/1/01 */
#define POLY_SYS_move_words 195 /* DCJM 9/10/99 */
#define POLY_SYS_shift_right_arith_word 196 /* DCJM 9/10/99 */
#define POLY_SYS_int_to_word 197 /* DCJM 9/10/99 */ /* Obsolete: Now replaced by POLY_SYS_get_first_long_word. */
#define POLY_SYS_move_bytes 198 /* DCJM 9/10/99 */
#define POLY_SYS_code_flags 200 /* Previously POLY_SYS_set_flags */
#define POLY_SYS_shrink_stack 201 /* SPF 9/12/96 */
#define POLY_SYS_stderr 202 /* SPF 29/11/96 */
#define POLY_SYS_callcode_tupled 204 /* SPF 07/07/94 */
#define POLY_SYS_foreign_dispatch 205 /* NIC 22/04/94 */
#define POLY_SYS_XWindows 209 /* MJC 27/09/90 */
#define POLY_SYS_is_big_endian 213 /* added 30/3/95 (DCJM) */
#define POLY_SYS_bytes_per_word 214 /* added 30/3/95 (DCJM) */
#define POLY_SYS_offset_address 215
#define POLY_SYS_shift_right_word 216
#define POLY_SYS_word_neq 217
#define POLY_SYS_not_bool 218
#define POLY_SYS_string_length 223
#define POLY_SYS_int_eq 229
#define POLY_SYS_int_neq 230
#define POLY_SYS_int_geq 231
#define POLY_SYS_int_leq 232
#define POLY_SYS_int_gtr 233
#define POLY_SYS_int_lss 234
#define POLY_SYS_mul_word 238 /* Reinstated DCJM 9/10/99 */
#define POLY_SYS_plus_word 239 /* Reinstated DCJM 9/10/99 */
#define POLY_SYS_minus_word 240 /* Reinstated DCJM 9/10/99 */
#define POLY_SYS_div_word 241 /* Reinstated DCJM 9/10/99 */
#define POLY_SYS_or_word 242
#define POLY_SYS_and_word 243
#define POLY_SYS_xor_word 244
#define POLY_SYS_shift_left_word 245
#define POLY_SYS_mod_word 246 /* Reinstated DCJM 9/10/99 */
#define POLY_SYS_word_geq 247 /* Reinstated DCJM 9/10/99 */
#define POLY_SYS_word_leq 248 /* Reinstated DCJM 9/10/99 */
#define POLY_SYS_word_gtr 249 /* Reinstated DCJM 9/10/99 */
#define POLY_SYS_word_lss 250 /* Reinstated DCJM 9/10/99 */
#define POLY_SYS_word_eq 251
#define POLY_SYS_load_byte 252
#define POLY_SYS_load_word 253
#define POLY_SYS_assign_byte 254
#define POLY_SYS_assign_word 255
/*********************************************************************
*
* The number of entries in the IO area.
*
*********************************************************************/
#define POLY_SYS_vecsize 256
/******************************************************************
*
* Exception identifiers
*
******************************************************************/
#define EXC_interrupt 1 /* SML90.Interrupt */
#define EXC_syserr 2 /* System call failed. */
/* EXC_size (formerly EXC_range) is raised in a number of places,
most particularly in alloc_store when given a length which is
too large. As "Size" it is used extensively in the Basis library. */
#define EXC_size 4 /* General.Size */
#define EXC_overflow 5 /* General.Overflow */
#define EXC_underflow 6 /* This does not correspond to any ML exception. */
#define EXC_divide 7 /* General.Div */
#define EXC_conversion 8
/*
EXC_conversion is used within the compiler and by conversion routines
added by the compiler in order to signal failure of conversion.
*/
#define EXC_XWindows 10
/* EXC_subscript is raised both by the string subscript function and
also by substring. As "Subscript" it is used extensively in the
Basis library. */
#define EXC_subscript 11 /* General.Subscript */
#define EXC_thread 12 /* Thread.Thread. */ /* DCJM 13/3/07 */
#define EXC_foreign 23 /* nic 4/5/94 */
#define EXC_Fail 103 /* DCJM 11/5/06 */
// Make sure to add any additional exceptions to make_exn.
#endif
|