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