35 lines
1.3 KiB
C
35 lines
1.3 KiB
C
/* =====> SLINK.H */
|
||
/* PC Scheme Lattice C Macros to Support Scheme to C Interface
|
||
Copyright 1985 by Texas Instruments Incorporated.
|
||
All Rights Reserved.
|
||
|
||
Author: John C. Jensen
|
||
Installation: Texas Instruments Incorporated, Dallas, Texas
|
||
Division: Central Research Laboratories
|
||
Cost Center: Computer Science Laboratory
|
||
Project: Computer Architecture Branch
|
||
Date Written: 22 June 1985
|
||
Last Modification: 23 June 1985
|
||
|
||
Purpose: The macros within this module provide the capability to
|
||
fetch values passed from the Scheme Runtime and return
|
||
values to the Scheme Runtime.
|
||
|
||
Description: For a description of parameter passing conventions, see the
|
||
module header in the file SLINK.C.
|
||
*/
|
||
|
||
#define INTEGER(x) *((int *)x)
|
||
#define LONG_INTEGER(x) *x
|
||
#define FLOAT(x) *((float *)x)
|
||
#define DOUBLE(x) *((double *)x)
|
||
#define CHARACTER(x) *((char *)x)
|
||
#define STRING(x) ((char*)x)
|
||
|
||
#define RETURN_NOVALUE() return(0)
|
||
#define RETURN_T_OR_NIL(x) **result = (x); return(1)
|
||
#define RETURN_INTEGER(x) **result = (x); return(2)
|
||
#define RETURN_FLONUM(x) *((double *) *result) = (x); return(3)
|
||
#define RETURN_CHARACTER(x) *((char *) *result) = (x); return(4)
|
||
#define RETURN_STRING(x) t_=(x);if(t_){*result=(long *)t_;return(5);}else{**result=0;return(1);}
|
||
|