MusicKit  0.0.0
_libdsp.h
00001 #ifndef __MK__libdsp_H___
00002 #define __MK__libdsp_H___
00003 /* Copyright 1988-1992, NeXT Inc.  All rights reserved. */
00004 /* $Id$
00005  private functions in libdsp_s.a
00006 
00007         01/13/90/jos - Replaced _DSPMessage.h expansion by explicit import.
00008 */
00009 
00010 #import "_DSPTransfer.h"
00011 #import "_DSPObject.h"
00012 #import "_DSPMach.h"
00013 #import "_DSPMessage.h"
00014 
00015 /* ============================= _DSPRelocate.c ============================ */
00016 
00017 extern int _DSPReloc(DSPDataRecord *data, DSPFixup *fixups,
00018     int fixupCount, int *loadAddresses);
00019 /* 
00020  * dataRec is assumed to be a P data space. Fixes it up in place. 
00021  * This is a private libdsp method used by _DSPSendUGTimed and
00022  * _DSPRelocate. 
00023  */
00024 
00025 extern int _DSPRelocate();
00026 extern int _DSPRelocateUser();
00027 
00028 /* ============================= DSPControl.c ============================== */
00029 extern int _DSPCheckMappedMode();
00030 extern int _DSPEnterMappedMode();
00031 extern int _DSPEnterMappedModeNoCheck();
00032 extern int _DSPEnterMappedModeNoPing();
00033 extern int _DSPExitMappedMode();
00034 extern int _DSPReadSSI();
00035 extern int _DSPSetSCISCR();
00036 extern int _DSPSetSCISCCR();
00037 extern int _DSPSetSSICRA();
00038 extern int _DSPSetSSICRB();
00039 extern int _DSPSetStartTimed();
00040 extern int _DSPSetTime();
00041 extern int _DSPSetTimeFromInts();
00042 extern int _DSPSineTest();
00043 extern int _DSPStartTimed();
00044 extern DSPDatum _DSPGetValue();
00045 
00046 /* ============================= DSPReadFile.c ============================= */
00047 extern char *_DSPFGetRecord();
00048 extern int _DSPGetIntHexStr6();
00049 extern int _DSPLnkRead();
00050 extern char *_DSPAddSymbol();
00051 extern int _DSPGetRelIntHexStr();
00052 extern char *_DSPUniqueName();
00053 
00054 /* ============================ DSPStructMisc.c ============================ */
00055 
00056 int _DSPCheckingFWrite( int *ptr, int size, int nitems, FILE *stream);
00057 int _DSPWriteString(char *str, FILE *fp);
00058 int _DSPReadString(char **spp, FILE *fp);
00059 int _DSPFreeString(char *str);
00060 char *_DSPContiguousMalloc(unsigned size);
00061 int _DSPContiguousFree(char *ptr);
00062 void DSPMemMapInit(_DSPMemMap *mm);
00063 void DSPMemMapPrint(_DSPMemMap *mm);
00064 
00065 extern char *_DSPContiguousMalloc(unsigned size);
00066 /*
00067  *      Same as malloc except allocates in one contiguous piece of
00068  *      memory.  Calls realloc as necessary to extend the block.
00069  */
00070 
00071 
00072 /* ============================ _DSPUtilities.c ============================ */
00073 extern void _DSPErr();
00074 extern char *_DSPFirstReadableFile(char *fn,...);
00075 extern char *_DSPGetBody();
00076 extern int _DSPGetDSPIntStr();
00077 extern char _DSPGetField();
00078 extern int _DSPGetFilter();
00079 extern float _DSPGetFloatStr();
00080 extern char *_DSPGetHead();
00081 extern void _DSPGetInputFile();
00082 extern void _DSPGetInputOutputFiles();
00083 extern int _DSPGetIntHexStr();
00084 extern int _DSPGetIntStr();
00085 extern char *_DSPGetLineStr();
00086 extern void _DSPGetOutputFile();
00087 extern char *_DSPGetSN();
00088 extern char *_DSPGetTail();
00089 extern char *_DSPGetTokStr();
00090 extern int _DSPInInt();
00091 extern int _DSPIndexS();
00092 extern char *_DSPIntToChar();
00093 extern int *_DSPMakeArray();
00094 extern FILE *_DSPMyFopen();
00095 extern char *_DSPPadStr();
00096 extern void _DSPParseName();
00097 extern void _DSPPutFilter();
00098 extern char *_DSPRemoveHead();
00099 extern char *_DSPRemoveTail();
00100 extern int _DSPSaveMatD();
00101 extern int _DSPSezYes();
00102 extern char *_DSPSkipToWhite();
00103 extern char *_DSPSkipWhite();
00104 extern DSP_BOOL _DSPGetFile();
00105 extern DSPLocationCounter _DSPGetMemStr();
00106 extern DSP_BOOL _DSPNotBlank();
00107 
00108 /* ============================ DSPConversion.c ============================ */
00109 
00110 DSPFix48 *_DSPDoubleIntToFix48UseArg(double dval,DSPFix48 *aFix48P);
00111 /* 
00112  * The double is assumed to be between -2^47 and 2^47.
00113  *  Returns, in *aFix48P, the value as represented by dval. 
00114  *  aFix48P must point to a valid DSPFix48 struct. 
00115  */
00116 
00117 /* ============================= _DSPError.c =============================== */
00118 
00119 int _DSPCheckErrorFP(void);
00120 /*
00121  * Check error file-pointer.
00122  * If nonzero, return.
00123  * If zero, open /tmp/dsperrors and return file-pointer for it.
00124  * Also, write DSP interlock info to dsperrors.
00125  */
00126 
00127 
00128 int _DSPErrorV(int errorcode,char *fmt,...);
00129 
00130 
00131 int _DSPError1(
00132     int errorcode,
00133     char *msg,
00134     char *arg);
00135 
00136 
00137 int _DSPError(
00138     int errorcode,
00139     char *msg);
00140 
00141 
00142 void _DSPFatalError(
00143     int errorcode,
00144     char *msg);
00145 
00146 
00147 int _DSPMachError(
00148     int error,
00149     char *msg);
00150 
00151 
00152 int _DSPCheckErrorFP(void);
00153 /*
00154  * Check error file-pointer.
00155  * If nonzero, return.
00156  * If zero, open /tmp/dsperrors and return file-pointer for it.
00157  * Also, write DSP interlock info to dsperrors.
00158  */
00159 
00160 
00161 int _DSPErrorV(int errorcode,char *fmt,...);
00162 
00163 
00164 int _DSPError1(
00165     int errorcode,
00166     char *msg,
00167     char *arg);
00168 
00169 
00170 int _DSPError(
00171     int errorcode,
00172     char *msg);
00173 
00174 
00175 void _DSPFatalError(
00176     int errorcode,
00177     char *msg);
00178 
00179 
00180 int _DSPMachError(
00181     int error,
00182     char *msg);
00183 
00184 /* ============================== _DSPCV.c ================================= */
00185 
00186 char *_DSPCVAS(
00187     int n,                      /* number to be converted */
00188     int fmt);                   /* 0=decimal, 1=hex format */
00189 /* 
00190  * Convert integer to decimal or hex string 
00191  */
00192 
00193 
00194 char *_DSPCVS(int n);
00195 /* 
00196  * Convert integer to decimal string 
00197  */
00198 
00199 
00200 char *_DSPCVHS(int n);
00201 /* 
00202  * Convert integer to hex string 
00203  */
00204 
00205 
00206 char *_DSPCVDS(float d);
00207 /* 
00208  * Convert double to hex string 
00209  */
00210 
00211 
00212 char *_DSPCVFS(float f);
00213 /* 
00214  * Convert float to hex string 
00215  */
00216 
00217 
00218 char *_DSPIntToChar(int i);
00219 /* 
00220  * Convert digit between 0 and 9 to corresponding character.
00221  */
00222 
00223 /* ============================ _DSPString.c =============================== */
00224 
00225 char *_DSPNewStr(int size);
00226 /*
00227  * Create string of given total length in bytes.
00228  */
00229 
00230 
00231 char *_DSPMakeStr(
00232     int size,                   /* size = total length incl \0 */
00233     char *init);                /* initialization string */
00234 /* 
00235  * create new string initialized by given string.
00236  */
00237 
00238 
00239 char *_DSPCat(
00240     char *f1,
00241     char *f2);
00242 /*
00243  * Concatenate two strings 
00244  */
00245 
00246 
00247 char *_DSPReCat(
00248     char *f1,
00249     char *f2);
00250 /*
00251  * append second string to first via realloc 
00252  */
00253 
00254 
00255 char *_DSPCopyStr(char *s);
00256 /*
00257  * Copy string s into freshly malloc'd storage.
00258  */
00259 
00260 
00261 char *_DSPToLowerStr(
00262     char *s);                   /* input string = output string */
00263 /*
00264  * Convert all string chars to lower case.
00265  */
00266 
00267 
00268 char *_DSPToUpperStr(
00269     char *s);                   /* input string = output string */
00270 /*
00271  * Convert all string chars to upper case.
00272  */
00273 
00274 char *_DSPCopyToUpperStr(
00275     char *s);                   /* input string = output string */
00276 /*
00277  * Efficient combo of _DSPCopyStr and _DSPToUpperStr 
00278  */
00279 
00280 int _DSPStrCmpI(char *mixedCaseStr,char *upperCaseStr) ;
00281 /* like strcmp but assumes first arg is mixed case and second is upper case
00282  * and does a case-independent compare.
00283  *
00284  * _DSPStrCmpI compares its arguments and returns an integer greater
00285  * than, equal to, or less than 0, according as mixedCaseStr is lexico-
00286  * graphically greater than, equal to, or less than upperCaseStr.
00287  */
00288 
00289 #endif