00001 #ifdef __cplusplus
00002 extern "C" {
00003 #endif
00004
00005 extern pointer NUMEQUAL(context *, int , pointer *);
00006 extern pointer GREATERP(context *, int , pointer *);
00007 extern pointer LESSP(context *, int , pointer *);
00008 extern pointer GREQP(context *, int , pointer *);
00009 extern pointer LSEQP(context *, int , pointer *);
00010 extern pointer MOD(context *, int , pointer *);
00011 extern pointer SUB1(context *, int , pointer *);
00012 extern pointer ADD1(context *, int , pointer *);
00013 extern pointer ratio_plus(pointer , pointer );
00014 extern pointer ratio_minus(pointer , pointer );
00015 extern pointer ratio_times(pointer , pointer );
00016 extern pointer ratio_divide(pointer , pointer );
00017 extern pointer int2ratio(eusinteger_t );
00018 extern eusfloat_t ratio2flt(pointer );
00019 extern pointer return_ratio(pointer );
00020 extern pointer PLUS(context *, int , pointer *);
00021 extern pointer MINUS(context *, int , pointer *);
00022 extern pointer TIMES(context *, int , pointer *);
00023 extern pointer QUOTIENT(context *, int , pointer *);
00024 extern pointer SIN(context *, int , pointer *);
00025 extern pointer COS(context *, int , pointer *);
00026 extern pointer TAN(context *, int , pointer *);
00027 extern pointer ATAN(context *, int , pointer *);
00028 extern pointer TANH(context *, int , pointer *);
00029 extern pointer ATANH(context *, int , pointer *);
00030 extern pointer SINH(context *, int , pointer *);
00031 extern pointer ASINH(context *, int , pointer *);
00032 extern pointer COSH(context *, int , pointer *);
00033 extern pointer ACOSH(context *, int , pointer *);
00034 extern pointer SQRT(context *, int , pointer *);
00035 extern pointer LOG(context *, int , pointer *);
00036 extern pointer EXP(context *, int , pointer *);
00037 extern pointer ABS(context *, int , pointer *);
00038 extern pointer ROUND(context *, int , pointer *);
00039 extern pointer FLOOR(context *, int , pointer *);
00040 extern pointer CEILING(context *, int , pointer *);
00041 extern pointer TRUNCATE(context *, int , pointer *);
00042 extern pointer EUSFLOAT(context *, int , pointer *);
00043 extern pointer DECFLOAT(context *, int , pointer *);
00044 extern pointer MAX(context *, int , pointer *);
00045 extern pointer MIN(context *, int , pointer *);
00046 extern pointer LOGAND(context *, int , pointer *);
00047 extern pointer LOGIOR(context *, int , pointer *);
00048 extern pointer LOGXOR(context *, int , pointer *);
00049 extern pointer LOGEQV(context *, int , pointer *);
00050 extern pointer LOGNAND(context *, int , pointer *);
00051 extern pointer LOGNOR(context *, int , pointer *);
00052 extern pointer LOGNOT(context *, int , pointer *);
00053 extern pointer LOGTEST(context *, int , pointer *);
00054 extern pointer LOGBITP(context *, int , pointer *);
00055 extern pointer ASH(context *, int , pointer *);
00056 extern pointer LDB(context *, int , pointer *);
00057 extern pointer DPB(context *, int , pointer *);
00058 extern pointer MAKERANDOMSTATE(context *, int , pointer *);
00059 extern pointer RANDOM(context *, int , pointer *);
00060 extern void arith(context *, pointer );
00061 extern pointer FREXP(context *, int , pointer *);
00062
00063 #if Solaris2 && sun4
00064 extern void extended_mul(unsigned int , unsigned int , unsigned int , unsigned int *, unsigned int *);
00065 extern void extended_div(unsigned int , unsigned int , long int , unsigned int *, unsigned int *);
00066 #else
00067 extern void extended_mul(eusinteger_t , eusinteger_t , eusinteger_t , eusinteger_t *, eusinteger_t *);
00068 extern void extended_div(eusinteger_t , eusinteger_t , eusinteger_t , eusinteger_t *, eusinteger_t *);
00069 #endif
00070 extern pointer stretch_big(pointer , eusinteger_t );
00071 extern pointer copy_big(pointer );
00072 extern eusinteger_t big_zerop(pointer );
00073 extern eusinteger_t big_sign(pointer );
00074 extern int big_compare(pointer , pointer );
00075 extern void complement_big(pointer );
00076 extern pointer big_minus(pointer );
00077 extern void add_int_big(eusinteger_t , pointer );
00078 extern void sub_int_big(eusinteger_t , pointer );
00079 extern void mul_int_big(eusinteger_t , pointer );
00080 extern eusinteger_t div_int_big(eusinteger_t , pointer );
00081 extern pointer big_plus(pointer , pointer );
00082 extern pointer big_times(pointer , pointer );
00083 extern void sub_int_big_big(eusinteger_t , pointer , pointer );
00084 extern eusinteger_t get_standardizing_factor_and_normalize(pointer );
00085 extern eusinteger_t div_big_big(pointer , pointer );
00086 extern pointer big_quotient_remainder_auxiliary(pointer , pointer , int );
00087 extern void big_quotient_remainder(pointer , pointer , pointer *, pointer *);
00088 extern int big_length(pointer );
00089 extern pointer normalize_big(pointer );
00090 extern pointer normalize_bignum(pointer );
00091 extern eusfloat_t big_to_float(pointer );
00092
00093
00094 #if x86_64
00095 extern eusinteger_t calleus(pointer , eusinteger_t *);
00096 #else
00097 extern eusinteger_t calleus(pointer , eusinteger_t *, int , int , int , int , int , int , int );
00098 #endif
00099 extern void foreign(context *, pointer );
00100
00101 extern pointer EUSCHAR(context *, int , pointer *);
00102 extern pointer SETCHAR(context *, int , pointer *);
00103 extern pointer UPCASEP(context *, int , pointer *);
00104 extern pointer LOWCASEP(context *, int , pointer *);
00105 extern pointer ALPHAP(context *, int , pointer *);
00106 extern pointer DIGITP(context *, int , pointer *);
00107 extern pointer ALNUMP(context *, int , pointer *);
00108 extern pointer CHUPCASE(context *, int , pointer *);
00109 extern pointer CHDOWNCASE(context *, int , pointer *);
00110 extern pointer STRINGEQ(context *, int , pointer *);
00111 extern pointer STRINGEQUAL(context *, int , pointer *);
00112 extern pointer STR_LT(context *, int , pointer *);
00113 extern pointer STR_LE(context *, int , pointer *);
00114 extern pointer STR_EQ(context *, int , pointer *);
00115 extern pointer STR_GT(context *, int , pointer *);
00116 extern pointer STR_GE(context *, int , pointer *);
00117 extern void charstring(context *, pointer );
00118
00119 extern int maerror(void);
00120 extern pointer loadglobal(pointer );
00121 extern pointer storeglobal(pointer , pointer );
00122 extern pointer xcar(pointer );
00123 extern pointer xcdr(pointer );
00124 extern pointer xcadr(pointer );
00125 extern pointer minilist(context *, pointer *, int );
00126 extern pointer restorecatch(context *);
00127
00128 extern void unwind(context *, pointer *);
00129 #if 0
00130 extern pointer error(enum errorcode , pointer , ... );
00131 #endif
00132 #ifdef USE_STDARG
00133 extern pointer error(enum errorcode , ...);
00134 #else
00135 extern pointer error(long );
00136 #endif
00137 #ifdef USE_STDARG
00138 extern pointer basicclass(char *, ...);
00139 #else
00140 extern pointer basicclass(long );
00141 #endif
00142 extern void eusint(int , int , int , eusinteger_t );
00143 extern void sigbreak(void);
00144 extern unsigned int thr_self(void);
00145 extern void mainthread(context *);
00146 extern int main(int , char **);
00147
00148 extern pointer IOCTL_TCGETA(context *, int , pointer *);
00149 extern pointer IOCTL_TCSETA(context *, int , pointer *);
00150 extern pointer IOCTL_TCSETAF(context *, int , pointer *);
00151 extern pointer IOCTL_TCSETAW(int , pointer *);
00152 extern pointer TCGETATTR(context *, int , pointer *);
00153 extern pointer TCSETATTR(context *, int , pointer *);
00154 extern pointer IOCTL_TCGETS(context *, int , pointer *);
00155 extern pointer IOCTL_TCSETS(context *, int , pointer *);
00156 extern pointer IOCTL_TCSETSW(context *, int , pointer *);
00157 extern pointer IOCTL_TCSETSF(context *, int , pointer *);
00158 extern void eusioctl(context *, pointer );
00159
00160 extern void eusstart(context *);
00161
00162 extern pointer openfile(context *, char *, int , int , int );
00163 extern int closestream(pointer );
00164 extern int readch(pointer );
00165 extern int unreadch(pointer , int );
00166 extern int flushstream(pointer );
00167 extern int writech(pointer , int );
00168 extern int writestr(pointer , byte *, int );
00169
00170 extern pointer *getobjv(pointer , pointer , pointer );
00171 extern pointer getval(context *, pointer );
00172 extern pointer setval(context *, pointer , pointer );
00173 extern pointer getfunc(context *, pointer );
00174 extern pointer get_sym_func(pointer );
00175 extern void setfunc(pointer , pointer );
00176 extern pointer *ovafptr(pointer , pointer );
00177 extern void bindspecial(context *, pointer , pointer );
00178 extern void unbindx(context *, int );
00179 extern void unbindspecial(context *, struct specialbindframe *);
00180 extern struct bindframe *fastbind(context *, pointer , pointer , struct bindframe *);
00181 extern struct bindframe *vbind(context *, pointer , pointer , struct bindframe *, struct bindframe *);
00182 extern struct bindframe *declare(context *, pointer , struct bindframe *);
00183 extern int parsekeyparams(pointer , pointer *, int , pointer *, int );
00184 extern struct bindframe *bindkeyparams(context *, pointer , pointer *, int , struct bindframe *, struct bindframe *);
00185 extern pointer funlambda(context *, pointer , pointer , pointer , pointer *, struct bindframe *, int );
00186 extern pointer call_foreign(eusinteger_t (*)(), pointer , int , pointer *);
00187 extern pointer funcode(context *, pointer , pointer , int );
00188 extern pointer ufuncall(context *, pointer , pointer , pointer , struct bindframe *, int );
00189 extern pointer eval(context *, pointer );
00190 extern pointer eval2(context *, pointer , pointer );
00191 extern pointer progn(context *, pointer );
00192 #ifdef USE_STDARG
00193 extern pointer csend(context *, ...);
00194 #else
00195 extern pointer csend();
00196 #endif
00197
00198
00199 extern int rehash(pointer );
00200 extern pointer findsymbol(byte *, int , pointer , int *);
00201 extern pointer export(pointer , pointer );
00202 extern pointer intern(context *, char *, int , pointer );
00203
00204 extern pointer GETCLASS(context *, int , pointer *);
00205 extern pointer CLASSP(context *, int , pointer *);
00206 extern pointer SUBCLASSP(context *, int , pointer *);
00207 extern pointer DERIVEDP(context *, int , pointer *);
00208 extern pointer ENTERCLASS(context *, int , pointer *);
00209 extern void addmethod(context *, pointer , pointer , pointer );
00210 extern void addcmethod(context *, pointer , pointer (*)(), pointer , pointer , pointer );
00211 extern pointer DEFMETHOD(context *, pointer );
00212 extern pointer INSTANTIATE(context *, int , pointer *);
00213 extern pointer findmethod(context *, pointer , pointer , pointer *);
00214 extern pointer findforward(context *, pointer , pointer , pointer , pointer *, pointer *);
00215 extern pointer SEND(context *, int , pointer *);
00216 extern pointer SEND_IF_FOUND(context *, int , pointer *);
00217 extern pointer SENDMESSAGE(context *, int , pointer *);
00218 extern pointer CLONE(context *, int , pointer *);
00219 extern pointer METHCACHE(context *, int , pointer *);
00220 extern pointer FINDMETHOD(context *, int , pointer *);
00221 extern int getslotindex(pointer , pointer , pointer );
00222 extern pointer SLOT(context *, int , pointer *);
00223 extern pointer SETSLOT(context *, int , pointer *);
00224 extern pointer CONSCAR(context *, int , pointer *);
00225 extern pointer CONSCDR(context *, int , pointer *);
00226 extern pointer copyobj(context *, pointer );
00227 extern void copyunmark(pointer );
00228 extern pointer COPYOBJ(context *, int , pointer *);
00229 extern pointer BECOME(context *, int , pointer *);
00230 extern pointer REPLACEOBJECT(context *, int , pointer *);
00231 extern void leo(context *, pointer );
00232
00233 extern pointer OPENFILE(context *, int , pointer *);
00234 extern pointer CLOSE(context *, int , pointer *);
00235 extern pointer getoutstream(context *, int , pointer );
00236 extern pointer getinstream(context *, int , pointer );
00237 extern pointer PRINT(context *, int , pointer *);
00238 extern pointer PRIN1(context *, int , pointer *);
00239 extern pointer PRINC(context *, int , pointer *);
00240 extern pointer TERPRI(context *, int , pointer *);
00241 extern void prntsize(pointer , int );
00242 extern pointer PRNTSIZE(context *, int , pointer *);
00243 extern pointer READ(context *, int , pointer *);
00244 extern pointer READ_DELIMITED_LIST(context *, int , pointer *);
00245 extern pointer READLINE(context *, int , pointer *);
00246 extern pointer READCH(context *, int , pointer *);
00247 extern pointer UNREADCH(context *, int , pointer *);
00248 extern pointer PEEKCH(context *, int , pointer *);
00249 extern pointer FINOUT(context *, int , pointer *);
00250 extern pointer WRTBYTE(context *, int , pointer *);
00251 extern pointer WRTWORD(context *, int , pointer *);
00252 extern pointer WRTLONG(context *, int , pointer *);
00253 extern pointer SETMACROCH(context *, int , pointer *);
00254 extern pointer GETMACROCH(context *, int , pointer *);
00255 extern pointer SETDISPMACRO(context *, int , pointer *);
00256 extern pointer GETDISPMACRO(context *, int , pointer *);
00257 extern pointer RESETREADTABLE(context *, int , pointer *);
00258 extern pointer XFORMAT(context *, int , pointer *);
00259 extern pointer SIGERROR(context *, int , pointer *);
00260 extern pointer INSTALL_ERRHANDLER(context *, int , pointer *);
00261 extern void lispio(context *, pointer );
00262
00263 extern pointer CAR(context *, int , pointer *);
00264 extern pointer CDR(context *, int , pointer *);
00265 extern pointer CADR(context *, int , pointer *);
00266 extern pointer CDDR(context *, int , pointer *);
00267 extern pointer CDAR(context *, int , pointer *);
00268 extern pointer CAAR(context *, int , pointer *);
00269 extern pointer CADDR(context *, int , pointer *);
00270 extern pointer NTH(context *, int , pointer *);
00271 extern pointer NTHCDR(context *, int , pointer *);
00272 extern pointer CONS(context *, int , pointer *);
00273 extern pointer RPLACA(context *, int , pointer *);
00274 extern pointer RPLACA2(context *, int , pointer *);
00275 extern pointer RPLACD(context *, int , pointer *);
00276 extern pointer RPLACD2(context *, int , pointer *);
00277 extern pointer LIST(context *, int , pointer *);
00278 extern pointer LIST_STAR(context *, int , pointer *);
00279 extern pointer APPEND(context *, int , pointer *);
00280 extern pointer NCONC(context *, int , pointer *);
00281 extern pointer subst(context *, pointer , pointer , pointer );
00282 extern pointer SUBST(context *, int , pointer *);
00283 extern pointer nsubst(pointer , pointer , pointer *);
00284 extern pointer NSUBST(context *, int , pointer *);
00285 extern pointer memq(pointer , pointer );
00286 extern pointer MEMQ(context *, int , pointer *);
00287 extern pointer MEMBER(context *, int , pointer *);
00288 extern pointer SUPERMEMBER(context *, int , pointer *);
00289 extern pointer assq(pointer , pointer );
00290 extern pointer ASSQ(context *, int , pointer *);
00291 extern pointer ASSOC(context *, int , pointer *);
00292 extern pointer SUPERASSOC(context *, int , pointer *);
00293 extern pointer BUTLAST(context *, int , pointer *);
00294 extern pointer NBUTLAST(context *, int , pointer *);
00295 extern void lists(context *, pointer );
00296
00297 extern pointer SRCLOAD(context *, int , pointer *);
00298 extern void add_module_initializer(char *, pointer (*)());
00299 extern void exec_module_initializers(context *);
00300 extern pointer list_module_initializers(context *, pointer );
00301 extern pointer list_module_initializers2(context *, int , pointer *);
00302 extern pointer build_quote_vector(context *, int , char **);
00303 extern pointer eval_c_strings(context *, int , const char **);
00304 extern pointer FIND_ENTRY(context *, int , pointer *);
00305 extern pointer FIND_ENTRY2(context *, int , pointer *);
00306 extern pointer SYSMOD(void);
00307 extern pointer UNBINLOAD(context *, int , pointer *);
00308 extern pointer BINLOAD(context *, int , pointer *);
00309 extern pointer SAVE(context *, int , pointer *);
00310 extern void loadsave(context *, pointer );
00311
00312
00313 extern pointer Getstring(pointer );
00314 extern byte *get_string(pointer );
00315 extern pointer rawcons(context *, pointer , pointer );
00316 extern pointer cons(context *, pointer , pointer );
00317 extern pointer stackrawlist(context *, int );
00318 extern pointer stacknlist(context *, int );
00319 extern pointer makebuffer(int );
00320 extern pointer makestring(char *, int );
00321 extern pointer make_foreign_string(eusinteger_t , int );
00322 extern pointer makesymbol(context *, char *, int , pointer );
00323 extern pointer searchpkg(byte *, int );
00324 extern pointer findpkg(pointer );
00325 extern pointer makepkg(context *, pointer , pointer , pointer );
00326 extern pointer mkstream(context *, pointer , pointer );
00327 extern pointer mkfilestream(context *, pointer , pointer , int , pointer );
00328 extern pointer mkiostream(context *, pointer , pointer );
00329 extern pointer makecode(pointer , pointer (*)(), pointer );
00330 extern void bumpcix(int , int );
00331 extern void recixobj(int );
00332 extern void resetcix(pointer , cixpair *);
00333 extern void enterclass(pointer );
00334 extern pointer makeclass(context *, pointer , pointer , pointer , pointer , pointer , int , pointer );
00335 extern pointer makeobject(pointer );
00336 extern pointer makevector(pointer , int );
00337 extern pointer makefvector(int );
00338 extern pointer defvector(context *, char *, pointer , int , int );
00339 extern pointer makematrix(context *, int , int );
00340 extern pointer makemodule(context *, int );
00341 extern pointer makeclosure(pointer , pointer , pointer (*)(), pointer , pointer *, pointer *);
00342 extern pointer makereadtable(context *);
00343 extern pointer makelabref(pointer , pointer , pointer );
00344 extern pointer makeratio(int , int );
00345 extern pointer makebig(int );
00346 extern pointer makebig1(long );
00347 extern pointer makebig2(long , long );
00348 extern pointer defun(context *, char *, pointer , pointer (*)());
00349 extern pointer defunpkg(context *, char *, pointer , pointer (*)(), pointer );
00350 extern pointer defmacro(context *, char *, pointer , pointer (*)());
00351 extern int special_index(void);
00352 extern pointer defspecial(context *, char *, pointer , pointer (*)());
00353 extern pointer defconst(context *, char *, pointer , pointer );
00354 extern pointer defvar(context *, char *, pointer , pointer );
00355 extern pointer deflocal(context *, char *, pointer , pointer );
00356 extern pointer defkeyword(context *, char *);
00357 extern pointer compfun(context *, pointer , pointer , pointer (*)(), pointer );
00358 extern pointer compmacro(context *, pointer , pointer , pointer (*)(), pointer );
00359 extern struct blockframe *makeblock(context *, pointer , pointer , jmp_buf *, struct blockframe *);
00360 extern struct fletframe *makeflet(context *, pointer , pointer , struct fletframe *, struct fletframe *);
00361 extern void mkcatchframe(context *, pointer , jmp_buf *);extern void allocate_stack(context *, int );
00362 extern context *makelispcontext(int );
00363 extern void deletecontext(int , context *);
00364
00365
00366 extern pointer VPLUS(context *, int , pointer *);
00367 extern pointer VPLUSPLUS(context *, int , pointer *);
00368 extern pointer VMINUS(context *, int , pointer *);
00369 extern pointer VMINUS_ABS(context *, int , pointer *);
00370 extern pointer VINNERPRODUCT(context *, int , pointer *);
00371 extern pointer VNORM(context *, int , pointer *);
00372 extern pointer VNORM2(context *, int , pointer *);
00373 extern pointer VNORMALIZE(context *, int , pointer *);
00374 extern pointer VDISTANCE(context *, int , pointer *);
00375 extern pointer VDISTANCE2(context *, int , pointer *);
00376 extern pointer VDIRECTION(context *, int , pointer *);
00377 extern pointer VCROSSPRODUCT(context *, int , pointer *);
00378 extern pointer SCA3PROD(context *, int , pointer *);
00379 extern pointer SCALEVEC(context *, int , pointer *);
00380 extern pointer MIDPOINT(context *, int , pointer *);
00381 extern pointer MKFLTVEC(context *, int , pointer *);
00382 extern pointer VLESSP(context *, int , pointer *);
00383 extern pointer VGREATERP(context *, int , pointer *);
00384 extern pointer MINIMALBOX(context *, int , pointer *);
00385 extern pointer VMIN(context *, int , pointer *);
00386 extern pointer VMAX(context *, int , pointer *);
00387 extern pointer MATTIMES(context *, int , pointer *);
00388 extern pointer TRANSFORM(context *, int , pointer *);
00389 extern pointer ROTVEC(context *, int , pointer *);
00390 extern pointer ROTMAT(context *, int , pointer *);
00391 extern pointer ROTATION_MATRIX(context *, int , pointer *);
00392 extern pointer ROTANGLE(context *, int , pointer *);
00393 extern pointer TRANSPOSE(context *, int , pointer *);
00394 extern pointer INV_RPY(context *, int , pointer *);
00395 extern pointer INV_EULER(context *, int , pointer *);
00396 extern pointer LU_DECOMPOSE(context *, int , pointer *);
00397 extern pointer LU_SOLVE(context *, int , pointer *);
00398 extern pointer LU_DETERMINANT(context *, int , pointer *);
00399 extern void matrix(context *, pointer );
00400
00401 extern int newchunk(int );
00402 extern bpointer root_alloc_big(context *, int );
00403 extern void root_alloc_small(context *, int );
00404 extern pointer alloc(int , int , int , int );
00405 extern void mark(pointer );
00406 extern void newgcstack(pointer *);
00407 extern void markall(void);
00408 extern void reclaim(bpointer );
00409 extern void sweepall(void);
00410 extern void gc(void);
00411 #ifdef STACK_DEBUG
00412 extern pointer p_print(pointer , context *);
00413 #endif
00414 #if 0
00415
00416 extern int newchunk(int );
00417 extern bpointer root_alloc_big(context *, int );
00418 extern int root_alloc_small(context *, int );
00419 extern pointer halloc(int , int , int );
00420 extern pointer allocx(int , int , int , int );
00421 extern pointer alloc(int , int , int , int );
00422 extern int mark(pointer );
00423 extern int newgcstack(pointer *);
00424 extern int markall(void);
00425 extern int reclaim(bpointer );
00426 extern void sweepall(void);
00427 extern int gc(void);
00428
00429 extern int newchunk(int );
00430 extern pointer halloc(int , int , int );
00431 extern pointer alloc(int , int , int , int );
00432 extern int mark(pointer );
00433 extern int markall(void);
00434 extern int reclaim(bpointer );
00435 extern void sweepall(void);
00436 extern int gc(void);
00437 #endif
00438
00439 extern pointer COND_SIGNAL(context *, int , pointer *);
00440 extern pointer COND_WAIT(context *, int , pointer *);
00441 extern pointer FREE_THREADS(context *, int , pointer *);
00442 extern pointer MAKE_COND(context *, int , pointer *);
00443 extern pointer MAKE_MUTEX_LOCK(context *, int , pointer *);
00444 extern pointer MAKE_SEMAPHORE(context *, int , pointer *);
00445 extern pointer MUTEX_LOCK(context *, int , pointer *);
00446 extern pointer MUTEX_TRYLOCK(context *, int , pointer *);
00447 extern pointer MUTEX_UNLOCK(context *, int , pointer *);
00448 extern pointer SEMA_POST(context *, int , pointer *);
00449 extern pointer SEMA_TRYWAIT(context *, int , pointer *);
00450 extern pointer SEMA_WAIT(context *, int , pointer *);
00451 extern pointer THREAD_SELF(context *, int , pointer *);
00452 extern pointer THR_CONTINUE(context *, int , pointer *);
00453 extern pointer THR_CREATE(context *, int , pointer *);
00454 extern pointer THR_GETCONCURRENCY(context *, int , pointer *);
00455 extern pointer THR_GETPRIO(context *, int , pointer *);
00456 extern pointer THR_KILL(context *, int , pointer *);
00457 extern pointer THR_SELF(context *, int , pointer *);
00458 extern pointer THR_SETCONCURRENCY(context *, int , pointer *);
00459 extern pointer THR_SETPRIO(context *, int , pointer *);
00460 extern pointer THR_SIGSETMASK(context *, int , pointer *);
00461 extern pointer THR_SUSPEND(context *, int , pointer *);
00462 extern pointer MAKE_THREAD(context *, int , pointer *);
00463 extern pointer AFUNCALL(context *, int , pointer *);
00464 extern pointer AFUNCALL_NO_WAIT(context *, int , pointer *);
00465 extern pointer WAIT_AFUNCALL(context *, int , pointer *);
00466
00467
00468 extern pointer ATOM(context *, int , pointer *);
00469 extern pointer EQ(context *, int , pointer *);
00470 extern pointer NILP(context *, int , pointer *);
00471 extern pointer SYMBOLP(context *, int , pointer *);
00472 extern pointer STRINGP(context *, int , pointer *);
00473 extern pointer LISTP(context *, int , pointer *);
00474 extern pointer CONSP(context *, int , pointer *);
00475 extern pointer ENDP(context *, int , pointer *);
00476 extern pointer NUMBERP(context *, int , pointer *);
00477 extern pointer INTEGERP(context *, int , pointer *);
00478 extern pointer FLOATP(context *, int , pointer *);
00479 extern pointer BOUNDP(context *, int , pointer *);
00480 extern pointer FBOUNDP(context *, int , pointer *);
00481 extern pointer STREAMP(context *, int , pointer *);
00482 extern pointer superequal(pointer , pointer );
00483 extern pointer equal(pointer , pointer );
00484 extern pointer EQUAL(context *, int , pointer *);
00485 extern pointer SUPEREQUAL(context *, int , pointer *);
00486 extern void predicates(context *, pointer );
00487
00488 extern void printint(context *, eusinteger_t , pointer , int , int , int );
00489 extern void printnum(context *, pointer , pointer , int , int , int );
00490 extern pointer prinx(context *, pointer , pointer );
00491 extern void terpri(pointer );
00492
00493 #if 0
00494 extern int thr_self(void);
00495 extern int thr_getprio(int , int *);
00496 extern int thr_setprio(int , int );
00497 extern int thr_create(void *, size_t , void (*)(), void *, long , int *);
00498 extern int thr_continue(int );
00499 extern int thr_suspend(int );
00500 extern int thr_kill(int , int );
00501 extern int thr_join(int , int *, void **);
00502 #endif
00503
00504 extern int is_digit(int , int );
00505 extern pointer read_delimited_list(context *, pointer , int , char *);
00506 extern int gcd(int , int );
00507 extern pointer reader(context *, pointer , pointer );
00508 extern void initreader(context *);
00509
00510 extern pointer call1(context *, pointer , pointer );
00511 extern pointer call2(context *, pointer , pointer , pointer );
00512 extern eusinteger_t coerceintval(pointer );
00513 extern pointer fastvref(pointer , int );
00514 extern void fastvset(pointer , int , pointer );
00515 extern pointer IDENTITY(context *, int , pointer *);
00516 extern pointer SUBSEQ(context *, int , pointer *);
00517 extern pointer COPYSEQ(context *, int , pointer *);
00518 extern pointer REVERSE(context *, int , pointer *);
00519 extern pointer NREVERSE(context *, int , pointer *);
00520 extern int pushsequence(context *, pointer , int , int );
00521 extern pointer makesequence(context *, int , pointer );
00522 extern pointer CONCATENATE(context *, int , pointer *);
00523 extern pointer COERCE(context *, int , pointer *);
00524 extern pointer FILL(context *, int , pointer *);
00525 extern pointer MAP(context *, int , pointer *);
00526 extern pointer POSITION(context *, int , pointer *);
00527 extern pointer FIND(context *, int , pointer *);
00528 extern pointer COUNT(context *, int , pointer *);
00529 extern pointer UNIREMOVE(context *, int , pointer *);
00530 extern pointer REMOVE_DUPLICATES(context *, int , pointer *);
00531 extern pointer DELETE(context *, int , pointer *);
00532 extern pointer SUBSTITUTE(context *, int , pointer *);
00533 extern pointer NSUBSTITUTE(context *, int , pointer *);
00534 extern pointer VECREPLACE(context *, int , pointer *);
00535 extern int compar(pointer *, pointer *);
00536 extern pointer SORT(context *, int , pointer *);
00537 extern pointer LENGTH(context *, int , pointer *);
00538 extern pointer ELT(context *, int , pointer *);
00539 extern pointer SETELT(context *, int , pointer *);
00540 extern void sequence(context *, pointer );
00541
00542 extern pointer quote(context *, pointer );
00543 extern pointer EVAL(context *, int , pointer *);
00544 extern pointer PROGN(context *, pointer );
00545 extern pointer PROG1(context *, int , pointer *);
00546 extern pointer APPLY(context *, int , pointer *);
00547 extern pointer FUNCALL(context *, int , pointer *);
00548 extern pointer FUNCTION_CLOSURE(context *, pointer );
00549 extern pointer MACEXPAND2(context *, int , pointer *);
00550 extern pointer MAPC(context *, int , pointer *);
00551 extern pointer MAPCAR(context *, int , pointer *);
00552 extern pointer MAPCAN(context *, int , pointer *);
00553 extern pointer SETQ(context *, pointer );
00554 extern pointer IF(context *, pointer );
00555 extern pointer WHEN(context *, int , pointer *);
00556 extern pointer WHILE(context *, pointer );
00557 extern pointer COND(context *, pointer );
00558 extern pointer PARLET(context *, pointer );
00559 extern pointer SEQLET(context *, pointer );
00560 extern pointer CATCH(context *, pointer );
00561 extern void throw(context *, pointer , pointer );
00562 extern pointer THROW(context *, pointer );
00563 extern pointer FLET(context *, pointer );
00564 extern pointer LABELS(context *, pointer );
00565 extern pointer RESET(context *, int , pointer *);
00566 extern pointer EVALHOOK(context *, int , pointer *);
00567 extern pointer BLOCK(context *, pointer );
00568 extern pointer RETFROM(context *, pointer );
00569 extern pointer RETURN(context *, int , pointer *);
00570 extern pointer UNWINDPROTECT(context *, pointer );
00571 extern pointer TAGBODY(context *, pointer );
00572 extern pointer GO(context *, pointer );
00573 extern pointer EVALWHEN(context *, pointer );
00574 extern pointer THE(context *, pointer );
00575 extern pointer AND(context *, pointer );
00576 extern pointer OR(context *, pointer );
00577 extern pointer PROCLAIM(context *, int , pointer *);
00578 extern pointer DECLARE(pointer );
00579 extern pointer ALLPACKAGES(context *, int , pointer *);
00580 extern pointer FINDPACKAGE(context *, int , pointer *);
00581 extern pointer MAKEPACKAGE(context *, int , pointer *);
00582 extern eusinteger_t sxhash(pointer );
00583 extern pointer SXHASH(context *, int , pointer *);
00584 extern pointer SYMVALUE(context *, int , pointer *);
00585 extern pointer SYMBNDVALUE(context *, int , pointer *);
00586 extern pointer SETFUNC(context *, int , pointer *);
00587 extern pointer SYMFUNC(context *, int , pointer *);
00588 extern pointer MAKUNBOUND(context *, int , pointer *);
00589 extern void set_special(context *, pointer , pointer );
00590 extern pointer SETSPECIAL(context *, int , pointer *);
00591 extern pointer DEFUN(context *, pointer );
00592 extern pointer DEFMACRO(context *, pointer );
00593 extern pointer FINDSYMBOL(context *, int , pointer *);
00594 extern pointer INTERN(context *, int , pointer *);
00595 extern pointer gensym(context *);
00596 extern pointer GENSYM(context *, int , pointer *);
00597 extern pointer GETPROP(context *, int , pointer *);
00598 extern pointer EXPORT(context *, int , pointer *);
00599 extern pointer putprop(context *, pointer , pointer , pointer );
00600 extern pointer PUTPROP(context *, int , pointer *);
00601 extern void specials(context *, pointer );
00602
00603 extern pointer GEESEE(context *, int , pointer *);
00604 extern pointer SBCOUNT(context *, int , pointer *);
00605 extern pointer GCTIME(context *, int , pointer *);
00606 extern pointer ALLOC(context *, int , pointer *);
00607 extern pointer NEWSTACK(context *, int , pointer *);
00608 extern pointer DISPOSE_HOOK(context *, int , pointer *);
00609 extern int xmark(context *, pointer );
00610 extern int xcollect(context *, pointer );
00611 extern pointer RECLAIM(context *, int , pointer *);
00612 extern pointer RECLTREE(context *, int , pointer *);
00613 extern pointer objsize1(pointer );
00614 extern void objsize2(pointer );
00615 extern pointer OBJSIZE(context *, int , pointer *);
00616 extern pointer BKTRACE(context *, int , pointer *);
00617 extern pointer MEMORY_REPORT(context *, int , pointer *);
00618 extern pointer CLEAR_ALLOCCOUNT(context *, int , pointer *);
00619 extern pointer ROOM(context *, int , pointer *);
00620 extern pointer FREE_COUNTS(context *, int , pointer *);
00621 extern pointer LIST_ALL_CHUNKS(context *, int , pointer *);
00622 extern pointer INSTANCELIST(context *, int , pointer *);
00623 extern pointer LISTALLREFERENCES(context *, int , pointer *);
00624 extern pointer ADDRESS(context *, int , pointer *);
00625 extern pointer PEEK(context *, int , pointer *);
00626 extern pointer POKE(context *, int , pointer *);
00627 extern pointer LISTALLCATCHERS(context *, int , pointer *);
00628 extern pointer LISTBINDINGS(context *, int , pointer *);
00629 extern pointer LISTSPECIALBINDINGS(context *, int , pointer *);
00630 extern pointer LISTALLCLASSES(context *, int , pointer *);
00631 extern pointer EXPORTALL(context *, int , pointer *);
00632 extern pointer NEXT_SPECIAL_INDEX(context *, int , pointer *);
00633 extern pointer THREAD_SPECIALS(context *, int , pointer *);
00634 extern void sysfunc(context *, pointer );
00635
00636 extern pointer PTIMES(context *, int , pointer *);
00637 extern pointer RUNTIME(context *, int , pointer *);
00638 extern pointer LOCALTIME(context *, int , pointer *);
00639 extern pointer ASCTIME(context *, int , pointer *);
00640 extern pointer GETRUSAGE(context *, int , pointer *);
00641 extern pointer GETPAGESIZE(context *, int , pointer *);
00642 extern pointer GETTIMEOFDAY(context *, int , pointer *);
00643 extern pointer GETITIMER(context *, int , pointer *);
00644 extern pointer SETITIMER(context *, int , pointer *);
00645 extern pointer KILL(context *, int , pointer *);
00646 extern pointer SIGNAL(context *, int , pointer *);
00647 extern pointer WAIT(context *, int , pointer *);
00648 extern pointer ALARM(context *, int , pointer *);
00649 extern pointer GETPID(context *, int , pointer *);
00650 extern pointer GETPPID(context *, int , pointer *);
00651 extern pointer GETPGRP(context *, int , pointer *);
00652 extern pointer SETPGRP(context *, int , pointer *);
00653 extern pointer GETUID(context *, int , pointer *);
00654 extern pointer GETEUID(context *, int , pointer *);
00655 extern pointer GETGID(context *, int , pointer *);
00656 extern pointer GETEGID(context *, int , pointer *);
00657 extern pointer SETUID(context *, int , pointer *);
00658 extern pointer SETGID(context *, int , pointer *);
00659 extern pointer FORK(context *, int , pointer *);
00660 extern pointer EXEC(context *, int , pointer *);
00661 extern pointer EXIT(context *, int , pointer *);
00662 extern pointer UNIXREAD(context *, int , pointer *);
00663 extern pointer UNIXWRITE(context *, int , pointer *);
00664 extern pointer UNIXCLOSE(context *, int , pointer *);
00665 extern pointer FCNTL(context *, int , pointer *);
00666 extern pointer IOCTL(context *, int , pointer *);
00667 extern int bytesize(pointer );
00668 extern pointer IOCTL_(context *, int , pointer *);
00669 extern pointer IOCTL_R(context *, int , pointer *);
00670 extern pointer IOCTL_W(context *, int , pointer *);
00671 extern pointer IOCTL_WR(context *, int , pointer *);
00672 extern pointer DUP(context *, int , pointer *);
00673 extern pointer DUP2(context *, int , pointer *);
00674 extern pointer MKNOD(context *, int , pointer *);
00675 extern pointer LINK(context *, int , pointer *);
00676 extern pointer UNLINK(context *, int , pointer *);
00677 extern pointer RENAME(context *, int , pointer *);
00678 extern pointer ACCESS(context *, int , pointer *);
00679 extern pointer STAT(context *, int , pointer *);
00680 extern pointer DIRECTORY(context *, int , pointer *);
00681 extern pointer LSEEK(context *, int , pointer *);
00682 extern pointer CHDIR(context *, int , pointer *);
00683 extern pointer CHMOD(context *, int , pointer *);
00684 extern pointer CHOWN(context *, int , pointer *);
00685 extern pointer PIPE(context *, int , pointer *);
00686 extern pointer MSGGET(context *, int , pointer *);
00687 extern pointer MSGRCV(context *, int , pointer *);
00688 extern pointer MSGSND(context *, int , pointer *);
00689 extern pointer MSGCTL(context *, int , pointer *);
00690 extern pointer SYSTEM(context *, int , pointer *);
00691 extern pointer GETWD(context *, int , pointer *);
00692 extern pointer GETENV(context *, int , pointer *);
00693 extern pointer SLEEP(context *, int , pointer *);
00694 extern pointer SYSERRLIST(context *, int , pointer *);
00695 extern pointer PAUSE(context *, int , pointer *);
00696 extern pointer ISATTY(context *, int , pointer *);
00697 extern pointer SOCKET(context *, int , pointer *);
00698 extern pointer BIND(context *, int , pointer *);
00699 extern pointer CONNECT(context *, int , pointer *);
00700 extern pointer LISTEN(context *, int , pointer *);
00701 extern pointer ACCEPT(context *, int , pointer *);
00702 extern pointer GETPEERNAME(context *, int , pointer *);
00703 extern eusinteger_t *checkbitvec(pointer , long *);
00704 extern pointer SELECT(context *, int , pointer *);
00705 extern pointer SELECT_READ(context *, int , pointer *);
00706 extern pointer SBRK(context *, int , pointer *);
00707 extern pointer MALLOC(context *, int , pointer *);
00708 extern pointer FREE(context *, int , pointer *);
00709 extern pointer GETHOSTNAME(context *, int , pointer *);
00710 extern pointer GETHOSTBYNAME(context *, int , pointer *);
00711 extern pointer GETHOSTBYADDR(context *, int , pointer *);
00712 extern pointer GETNETBYNAME(context *, int , pointer *);
00713 extern pointer GETPROTOBYNAME(context *, int , pointer *);
00714 extern pointer GETSERVBYNAME(context *, int , pointer *);
00715 extern pointer ENVIRON(context *, int , pointer *);
00716 extern pointer ERRNO(context *, int , pointer *);
00717 extern pointer H2NS(context *, int , pointer *);
00718 extern pointer N2HS(context *, int , pointer *);
00719 extern pointer LOCKF(context *, int , pointer *);
00720 extern pointer MKDIR(context *, int , pointer *);
00721 extern pointer RMDIR(context *, int , pointer *);
00722 extern pointer MMAP(context *, int , pointer *);
00723 extern pointer MUNMAP(context *, int , pointer *);
00724 extern pointer PUTENV(context *, int , pointer *);
00725 extern pointer RECVFROM(context *, int , pointer *);
00726 extern pointer SENDTO(context *, int , pointer *);
00727 extern pointer SIGADDSET(context *, int , pointer *);
00728 extern pointer SIGDELSET(context *, int , pointer *);
00729 extern pointer SIGPROCMASK(context *, int , pointer *);
00730 extern pointer UALARM(context *, int , pointer *);
00731 extern pointer UNAME(context *, int , pointer *);
00732 extern pointer USLEEP(context *, int , pointer *);
00733 extern pointer VFORK(context *, int , pointer *);
00734 extern void unixcall(context *, pointer );
00735
00736 extern pointer MKVECTOR(context *, int , pointer *);
00737 extern pointer MKINTVECTOR(context *, int , pointer *);
00738 extern pointer vref(pointer , int );
00739 extern pointer SVREF(context *, int , pointer *);
00740 extern pointer vset(pointer , int , pointer );
00741 extern pointer SVSET(context *, int , pointer *);
00742 extern int arrayindex(pointer , int , pointer *);
00743 extern pointer AREF(context *, int , pointer *);
00744 extern pointer ASET(context *, int , pointer *);
00745 extern pointer ARRAYP(context *, int , pointer *);
00746 extern pointer VECTORPOP(context *, int , pointer *);
00747 extern pointer VECTORPUSH(context *, int , pointer *);
00748 extern pointer VECTOREXPUSH(context *, int , pointer *);
00749 extern pointer VECTORP(context *, int , pointer *);
00750 extern pointer BIT(context *, int , pointer *);
00751 extern pointer SETBIT(context *, int , pointer *);
00752 extern pointer BITAND(context *, int , pointer *);
00753 extern pointer BITIOR(context *, int , pointer *);
00754 extern pointer BITXOR(context *, int , pointer *);
00755 extern pointer BITEQV(context *, int , pointer *);
00756 extern pointer BITNAND(context *, int , pointer *);
00757 extern pointer BITNOR(context *, int , pointer *);
00758 extern pointer BITNOT(context *, int , pointer *);
00759 extern void vectorarray(context *, pointer );
00760
00761 extern pointer psetjmp(jmp_buf);
00762 extern void plongjmp(jmp_buf,pointer);
00763 #ifdef __cplusplus
00764 }
00765 #endif