diff --git a/Cross/vm/sqVirtualMachine.c b/Cross/vm/sqVirtualMachine.c index 59b6a6e..d367251 100644 --- a/Cross/vm/sqVirtualMachine.c +++ b/Cross/vm/sqVirtualMachine.c @@ -4,6 +4,7 @@ #include #include #include +#include #include "sqVirtualMachine.h" diff --git a/unix/plugins/AsynchFilePlugin/sqUnixAsynchFile.c b/unix/plugins/AsynchFilePlugin/sqUnixAsynchFile.c index 788287f..b916c86 100644 --- a/unix/plugins/AsynchFilePlugin/sqUnixAsynchFile.c +++ b/unix/plugins/AsynchFilePlugin/sqUnixAsynchFile.c @@ -142,7 +142,7 @@ INLINE static FilePtr newFileRec(int fd, int sema) return fp; } -INLINE static allocateBuffer(struct FileBuf *buf, int size) +INLINE static int allocateBuffer(struct FileBuf *buf, int size) { if (buf->capacity >= size) return 1; diff --git a/unix/plugins/CameraPlugin/sqCamera-linux.c b/unix/plugins/CameraPlugin/sqCamera-linux.c index 218322f..c5a6815 100644 --- a/unix/plugins/CameraPlugin/sqCamera-linux.c +++ b/unix/plugins/CameraPlugin/sqCamera-linux.c @@ -181,7 +181,7 @@ libCon(void) vd_dup = dup; vd_ioctl = ioctl; vd_read = read; - vd_mmap = mmap; + vd_mmap = (void * (*)(void *, size_t, int, int, int, int64_t))mmap; vd_munmap = munmap; /* Use libv4l2: use if available... */ diff --git a/unix/plugins/HostWindowPlugin/sqUnixHostWindowPlugin.c b/unix/plugins/HostWindowPlugin/sqUnixHostWindowPlugin.c index c963f53..4788120 100644 --- a/unix/plugins/HostWindowPlugin/sqUnixHostWindowPlugin.c +++ b/unix/plugins/HostWindowPlugin/sqUnixHostWindowPlugin.c @@ -78,7 +78,7 @@ sqInt ioShowDisplayOnWindow( return 0; else return dpy->hostWindowShowDisplay( - dispBitsIndex, width, height, depth, affectedL, affectedR, affectedT, affectedB, windowIndex); + (unsigned int *)dispBitsIndex, width, height, depth, affectedL, affectedR, affectedT, affectedB, windowIndex); } diff --git a/unix/plugins/MIDIPlugin/sqUnixMIDIALSA.inc b/unix/plugins/MIDIPlugin/sqUnixMIDIALSA.inc index cc4bbad..1d451da 100644 --- a/unix/plugins/MIDIPlugin/sqUnixMIDIALSA.inc +++ b/unix/plugins/MIDIPlugin/sqUnixMIDIALSA.inc @@ -333,7 +333,7 @@ int sqMIDIParameter(int whichParameter, int modify, int newValue) { snd_seq_queue_tempo_t *tempo= 0; snd_seq_queue_tempo_alloca(&tempo); - snd_seq_get_queue_tempo(seq, queue, &tempo); + snd_seq_get_queue_tempo(seq, queue, (snd_seq_queue_tempo_t *)&tempo); return snd_seq_queue_tempo_get_tempo(tempo) / 1000.0; } break; diff --git a/unix/plugins/SerialPlugin/sqUnixSerial.c b/unix/plugins/SerialPlugin/sqUnixSerial.c index 2e61099..f3bc6b1 100644 --- a/unix/plugins/SerialPlugin/sqUnixSerial.c +++ b/unix/plugins/SerialPlugin/sqUnixSerial.c @@ -157,21 +157,6 @@ void make_portname_from_portnum(char *serialPortName, const int portNum) /*** Public Functions ***/ /* return value ignored */ -int serialPortClose(int portNum) -{ - char serialPortName[PORT_NAME_SIZE]; - - if (portNum < 0 || portNum >= MAX_SERIAL_PORTS) - { - success(false); - return 0; - } - - make_portname_from_portnum(serialPortName, portNum); - - return serialPortCloseByName(serialPortName); -} - int serialPortCloseByName(const char *portName) { serial_port_type * sp= find_stored_serialport(portName); @@ -205,16 +190,19 @@ int serialPortCloseByName(const char *portName) return 0; } -/* Open the given serial port using the given port number. - * "/dev/ttySxx" port name are assumed. */ -int serialPortOpen(int portNum, int dataRate, int stopBitsType, int parityType, int dataBits, - int inFlowCtrl, int outFlowCtrl, int xOnChar, int xOffChar) -{ +int serialPortClose(int portNum) +{ char serialPortName[PORT_NAME_SIZE]; + + if (portNum < 0 || portNum >= MAX_SERIAL_PORTS) + { + success(false); + return 0; + } + make_portname_from_portnum(serialPortName, portNum); - - return serialPortOpenByName(serialPortName, dataRate, stopBitsType, parityType, dataBits, - inFlowCtrl, outFlowCtrl, xOnChar, xOffChar); + + return serialPortCloseByName(serialPortName); } /* If anything goes wrong during opening make sure the file descriptor @@ -356,6 +344,18 @@ int serialPortOpenByName(char *portName, int dataRate, int stopBitsType, int par return 0; } +/* Open the given serial port using the given port number. + * "/dev/ttySxx" port name are assumed. */ +int serialPortOpen(int portNum, int dataRate, int stopBitsType, int parityType, int dataBits, + int inFlowCtrl, int outFlowCtrl, int xOnChar, int xOffChar) +{ + char serialPortName[PORT_NAME_SIZE]; + make_portname_from_portnum(serialPortName, portNum); + + return serialPortOpenByName(serialPortName, dataRate, stopBitsType, parityType, dataBits, + inFlowCtrl, outFlowCtrl, xOnChar, xOffChar); +} + /* Read up to count bytes from the given serial port into the given byte array. Read only up to the number of bytes in the port's input buffer; if fewer bytes than count have been received, do not diff --git a/unix/plugins/WeDoPlugin/WeDoLinux.c b/unix/plugins/WeDoPlugin/WeDoLinux.c index 973c2d3..1dc4de1 100644 --- a/unix/plugins/WeDoPlugin/WeDoLinux.c +++ b/unix/plugins/WeDoPlugin/WeDoLinux.c @@ -38,6 +38,7 @@ #include #include #include +#include #define true 1 diff --git a/unix/src/plugins/ClipboardExtendedPlugin/ClipboardExtendedPlugin.c b/unix/src/plugins/ClipboardExtendedPlugin/ClipboardExtendedPlugin.c index 4c71420..7f54955 100644 --- a/unix/src/plugins/ClipboardExtendedPlugin/ClipboardExtendedPlugin.c +++ b/unix/src/plugins/ClipboardExtendedPlugin/ClipboardExtendedPlugin.c @@ -75,6 +75,8 @@ static sqInt halt(void) { ; } +extern void sqPasteboardPutItemFlavordatalengthformatTypeformatLength(sqInt, char*, int, char*, int); + EXPORT(sqInt) ioAddClipboardData(void) { sqInt clipboardAddress; sqInt formatLength; @@ -102,6 +104,8 @@ EXPORT(sqInt) ioAddClipboardData(void) { return null; } +extern void sqPasteboardClear(sqInt); + EXPORT(sqInt) ioClearClipboard(void) { sqInt clipboardAddress; sqInt clipboard; @@ -119,6 +123,8 @@ EXPORT(sqInt) ioClearClipboard(void) { return null; } +sqInt sqCreateClipboard(void); + EXPORT(sqInt) ioCreateClipboard(void) { sqInt clipboardAddress; @@ -130,6 +136,10 @@ EXPORT(sqInt) ioCreateClipboard(void) { return null; } +extern int sqPasteboardGetItemCount(sqInt); +extern int sqPasteboardCopyItemFlavorsitemNumber (sqInt, int); +extern int sqPasteboardCopyItemFlavorDataformatformatLength (sqInt, char*, int); + EXPORT(sqInt) ioGetClipboardFormat(void) { sqInt clipboardAddress; sqInt itemCount; diff --git a/unix/src/plugins/DBusPlugin/DBusPlugin.c b/unix/src/plugins/DBusPlugin/DBusPlugin.c index b3b8027..11bc22e 100644 --- a/unix/src/plugins/DBusPlugin/DBusPlugin.c +++ b/unix/src/plugins/DBusPlugin/DBusPlugin.c @@ -474,7 +474,7 @@ static sqInt halt(void) { } static sqInt handleflag(int fd, int flag) { - aioHandle(fd, handleReadForFDwithDataandFlag , flag); + aioHandle(fd, (void (*)(int, void *, int)) handleReadForFDwithDataandFlag , flag); } @@ -1796,8 +1796,8 @@ static dbus_bool_t sqDBusPluginAddWatchwithData(DBusWatch*watch, void*data) { fd = dbus_watch_get_fd(watch); ((sqDBusData*)data)->watch = watch; if (flag & DBUS_WATCH_READABLE) { - aioEnable(fd, data, NULL); - aioHandle(fd, handleReadForFDwithDataandFlag , 1<<0 | 1<<1 | 1<<3); + aioEnable(fd, data, 0); + aioHandle(fd, (void (*)(int, void *, int)) handleReadForFDwithDataandFlag , 1<<0 | 1<<1 | 1<<3); } return 1; } @@ -1830,7 +1830,7 @@ static void sqDBusPluginToggleWatchwithData(DBusWatch*watch, void*data) { fd = dbus_watch_get_fd(watch); if (enable) { ((sqDBusData*)data)->watch = watch; - aioEnable(fd, data, NULL); + aioEnable(fd, data, 0); } else { aioDisable(fd); } diff --git a/unix/src/plugins/FileCopyPlugin/FileCopyPlugin.c b/unix/src/plugins/FileCopyPlugin/FileCopyPlugin.c index e2f1b5a..16a3066 100644 --- a/unix/src/plugins/FileCopyPlugin/FileCopyPlugin.c +++ b/unix/src/plugins/FileCopyPlugin/FileCopyPlugin.c @@ -18,6 +18,7 @@ #include "sqConfig.h" /* Platform specific definitions */ #include "sqPlatformSpecific.h" +#include "FileCopyPlugin.h" #define true 1 #define false 0 diff --git a/unix/src/plugins/HostWindowPlugin/HostWindowPlugin.c b/unix/src/plugins/HostWindowPlugin/HostWindowPlugin.c index ea5c0d7..54bb88b 100644 --- a/unix/src/plugins/HostWindowPlugin/HostWindowPlugin.c +++ b/unix/src/plugins/HostWindowPlugin/HostWindowPlugin.c @@ -312,7 +312,7 @@ EXPORT(sqInt) primitiveShowHostWindowRect(void) { if (interpreterProxy->failed()) { return null; } - ok = ioShowDisplayOnWindow(dispBits, w, h, d, left, right, top, + ok = ioShowDisplayOnWindow((unsigned char *)dispBits, w, h, d, left, right, top, bottom, windowIndex); if (!(ok)) { interpreterProxy->primitiveFail(); diff --git a/unix/src/plugins/MIDIPlugin/MIDIPlugin.c b/unix/src/plugins/MIDIPlugin/MIDIPlugin.c index a3fae58..8ec2eaa 100644 --- a/unix/src/plugins/MIDIPlugin/MIDIPlugin.c +++ b/unix/src/plugins/MIDIPlugin/MIDIPlugin.c @@ -161,7 +161,7 @@ EXPORT(sqInt) primitiveMIDIGetPortName(void) { if (interpreterProxy->failed()) { return null; } - sz = sqMIDIGetPortName(portNum, &portName, 255); + sz = sqMIDIGetPortName(portNum, (int)&portName, 255); nameObj = interpreterProxy->instantiateClassindexableSize(interpreterProxy->classString(), sz); if (interpreterProxy->failed()) { return null; diff --git a/unix/src/plugins/RomePlugin/RomePlugin.c b/unix/src/plugins/RomePlugin/RomePlugin.c index aed0e19..f9ff990 100644 --- a/unix/src/plugins/RomePlugin/RomePlugin.c +++ b/unix/src/plugins/RomePlugin/RomePlugin.c @@ -49,6 +49,7 @@ #include "sqMemoryAccess.h" +#include "sq.h" /*** Constants ***/ diff --git a/unix/src/plugins/Squeak3D/Squeak3D.c b/unix/src/plugins/Squeak3D/Squeak3D.c index 3732e62..2127bb3 100644 --- a/unix/src/plugins/Squeak3D/Squeak3D.c +++ b/unix/src/plugins/Squeak3D/Squeak3D.c @@ -1657,8 +1657,8 @@ static sqInt halt(void) { } EXPORT(sqInt) initialiseModule(void) { - loadBBFn = interpreterProxy->ioLoadFunctionFrom("loadBitBltFrom", bbPluginName); - copyBitsFn = interpreterProxy->ioLoadFunctionFrom("copyBitsFromtoat", bbPluginName); + loadBBFn = (sqInt) interpreterProxy->ioLoadFunctionFrom("loadBitBltFrom", bbPluginName); + copyBitsFn = (sqInt) interpreterProxy->ioLoadFunctionFrom("copyBitsFromtoat", bbPluginName); return (loadBBFn != 0) && (copyBitsFn != 0); } diff --git a/unix/src/plugins/SqueakFFIPrims/SqueakFFIPrims.c b/unix/src/plugins/SqueakFFIPrims/SqueakFFIPrims.c index 24601e4..07e4714 100644 --- a/unix/src/plugins/SqueakFFIPrims/SqueakFFIPrims.c +++ b/unix/src/plugins/SqueakFFIPrims/SqueakFFIPrims.c @@ -1215,6 +1215,8 @@ static sqInt halt(void) { ; } +extern void initSurfacePluginFunctionPointers(); + EXPORT(sqInt) initialiseModule(void) { initSurfacePluginFunctionPointers(); } diff --git a/unix/src/plugins/XDisplayControlPlugin/XDisplayControlPlugin.c b/unix/src/plugins/XDisplayControlPlugin/XDisplayControlPlugin.c index 1a53f09..ed3a446 100644 --- a/unix/src/plugins/XDisplayControlPlugin/XDisplayControlPlugin.c +++ b/unix/src/plugins/XDisplayControlPlugin/XDisplayControlPlugin.c @@ -132,6 +132,10 @@ EXPORT(sqInt) primitiveCanConnectToDisplay(void) { } } +extern void forgetXDisplay(void); +extern void synchronizeXDisplay(void); +extern void openXDisplay(void); +extern int disconnectXDisplay(void); /* Call an internal function which will disconnect the X display session. The actual Squeak window on the X server is not effected, but this instance of Squeak will diff --git a/unix/src/vm/interp.c b/unix/src/vm/interp.c index 85f416d..c179a34 100644 --- a/unix/src/vm/interp.c +++ b/unix/src/vm/interp.c @@ -15665,6 +15665,9 @@ sqInt primitiveAtPut(void) { } +extern sqInt ioSetCursorARGB(sqInt, sqInt, sqInt, sqInt, sqInt); + + /* Set the cursor to the given shape. The Mac only supports 16x16 pixel cursors. Cursor offsets are handled by Smalltalk. */ sqInt primitiveBeCursor(void) { diff --git a/unix/src/vm/intplugins/AsynchFilePlugin/AsynchFilePlugin.c b/unix/src/vm/intplugins/AsynchFilePlugin/AsynchFilePlugin.c index f0b72e7..f53d7f3 100644 --- a/unix/src/vm/intplugins/AsynchFilePlugin/AsynchFilePlugin.c +++ b/unix/src/vm/intplugins/AsynchFilePlugin/AsynchFilePlugin.c @@ -162,7 +162,7 @@ EXPORT(sqInt) primitiveAsyncFileOpen(void) { fOop = interpreterProxy->instantiateClassindexableSize(interpreterProxy->classByteArray(), sizeof(AsyncFile)); f = asyncFileValueOf(fOop); if (!(interpreterProxy->failed())) { - asyncFileOpen(f, fileName, fileNameSize, writeFlag, semaIndex); + asyncFileOpen(f, (int) fileName, fileNameSize, writeFlag, semaIndex); } if (interpreterProxy->failed()) { return null; @@ -209,7 +209,7 @@ EXPORT(sqInt) primitiveAsyncFileReadResult(void) { interpreterProxy->success((startIndex >= 1) && (((startIndex + count) - 1) <= bufferSize)); bufferPtr = (((pointerForOop(buffer)) + (BASE_HEADER_SIZE)) + startIndex) - 1; if (!(interpreterProxy->failed())) { - r = asyncFileReadResult(f, bufferPtr, count); + r = asyncFileReadResult(f, (int) bufferPtr, count); } _return_value = interpreterProxy->integerObjectOf(r); if (interpreterProxy->failed()) { @@ -301,7 +301,7 @@ EXPORT(sqInt) primitiveAsyncFileWriteStart(void) { interpreterProxy->success((startIndex >= 1) && (((startIndex + count) - 1) <= bufferSize)); bufferPtr = (((pointerForOop(buffer)) + (BASE_HEADER_SIZE)) + startIndex) - 1; if (!(interpreterProxy->failed())) { - asyncFileWriteStart(f, fPosition, bufferPtr, count); + asyncFileWriteStart(f, fPosition, (int) bufferPtr, count); } if (interpreterProxy->failed()) { return null; diff --git a/unix/src/vm/intplugins/CroquetPlugin/CroquetPlugin.c b/unix/src/vm/intplugins/CroquetPlugin/CroquetPlugin.c index ae84066..c27ac3c 100644 --- a/unix/src/vm/intplugins/CroquetPlugin/CroquetPlugin.c +++ b/unix/src/vm/intplugins/CroquetPlugin/CroquetPlugin.c @@ -512,6 +512,8 @@ EXPORT(sqInt) primitiveTransposeMatrix(void) { /* Primitive. Answer whether an AABB intersects with a given triangle */ +extern sqInt triBoxOverlap(float*, float*, float*, float*, float*); + EXPORT(sqInt) primitiveTriBoxIntersects(void) { float*maxCorner; float*minCorner; diff --git a/unix/src/vm/intplugins/FilePlugin/FilePlugin.c b/unix/src/vm/intplugins/FilePlugin/FilePlugin.c index 0495a0f..baf618c 100644 --- a/unix/src/vm/intplugins/FilePlugin/FilePlugin.c +++ b/unix/src/vm/intplugins/FilePlugin/FilePlugin.c @@ -734,7 +734,7 @@ EXPORT(sqInt) primitiveFileStdioHandles(void) { return interpreterProxy->primitiveFail(); } } - validMask = sqFileStdioHandlesInto((&fileRecords)); + validMask = sqFileStdioHandlesInto((SQFile*)(&fileRecords)); if (validMask == 0) { return interpreterProxy->primitiveFail(); } diff --git a/unix/src/vm/intplugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c b/unix/src/vm/intplugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c index 501077a..53767a4 100644 --- a/unix/src/vm/intplugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c +++ b/unix/src/vm/intplugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c @@ -101,6 +101,10 @@ static sqInt halt(void) { } +sqInt _isBytes(sqInt oop) { + return ((oop & 1) == 0) && (((((usqInt) (longAt(oop))) >> 8) & 15) >= 8); +} + /* Return 1, 2 or 3, if string1 is <, =, or > string2, with the collating order of characters given by the order array. */ EXPORT(sqInt) primitiveCompareString(void) { @@ -115,17 +119,17 @@ EXPORT(sqInt) primitiveCompareString(void) { sqInt len2; rcvr = stackValue(3); - if (!(isBytes(stackValue(2)))) { + if (!(_isBytes(stackValue(2)))) { return primitiveFail(); } string1 = arrayValueOf(stackValue(2)); string1 -= 1; - if (!(isBytes(stackValue(1)))) { + if (!(_isBytes(stackValue(1)))) { return primitiveFail(); } string2 = arrayValueOf(stackValue(1)); string2 -= 1; - if (!(isBytes(stackValue(0)))) { + if (!(_isBytes(stackValue(0)))) { return primitiveFail(); } order = arrayValueOf(stackValue(0)); @@ -225,7 +229,7 @@ EXPORT(sqInt) primitiveCompressToByteArray(void) { rcvr = stackValue(2); bm = arrayValueOf(stackValue(1)); bm -= 1; - if (!(isBytes(stackValue(0)))) { + if (!(_isBytes(stackValue(0)))) { return primitiveFail(); } ba = arrayValueOf(stackValue(0)); @@ -393,7 +397,7 @@ EXPORT(sqInt) primitiveConvert8BitSigned(void) { sqInt s; rcvr = stackValue(2); - if (!(isBytes(stackValue(1)))) { + if (!(_isBytes(stackValue(1)))) { return primitiveFail(); } aByteArray = arrayValueOf(stackValue(1)); @@ -453,7 +457,7 @@ EXPORT(sqInt) primitiveDecompressFromByteArray(void) { rcvr = stackValue(3); bm = arrayValueOf(stackValue(2)); bm -= 1; - if (!(isBytes(stackValue(1)))) { + if (!(_isBytes(stackValue(1)))) { return primitiveFail(); } ba = arrayValueOf(stackValue(1)); @@ -556,12 +560,12 @@ EXPORT(sqInt) primitiveFindFirstInString(void) { sqInt stringSize; rcvr = stackValue(3); - if (!(isBytes(stackValue(2)))) { + if (!(_isBytes(stackValue(2)))) { return primitiveFail(); } aString = arrayValueOf(stackValue(2)); aString -= 1; - if (!(isBytes(stackValue(1)))) { + if (!(_isBytes(stackValue(1)))) { return primitiveFail(); } inclusionMap = arrayValueOf(stackValue(1)); @@ -614,18 +618,18 @@ EXPORT(sqInt) primitiveFindSubstring(void) { sqInt startIndex; rcvr = stackValue(4); - if (!(isBytes(stackValue(3)))) { + if (!(_isBytes(stackValue(3)))) { return primitiveFail(); } key = arrayValueOf(stackValue(3)); key -= 1; - if (!(isBytes(stackValue(2)))) { + if (!(_isBytes(stackValue(2)))) { return primitiveFail(); } body = arrayValueOf(stackValue(2)); body -= 1; start = stackIntegerValue(1); - if (!(isBytes(stackValue(0)))) { + if (!(_isBytes(stackValue(0)))) { return primitiveFail(); } matchTable = arrayValueOf(stackValue(0)); @@ -673,7 +677,7 @@ EXPORT(sqInt) primitiveIndexOfAsciiInString(void) { rcvr = stackValue(3); anInteger = stackIntegerValue(2); - if (!(isBytes(stackValue(1)))) { + if (!(_isBytes(stackValue(1)))) { return primitiveFail(); } aString = arrayValueOf(stackValue(1)); @@ -719,7 +723,7 @@ EXPORT(sqInt) primitiveStringHash(void) { sqInt pos; rcvr = stackValue(2); - if (!(isBytes(stackValue(1)))) { + if (!(_isBytes(stackValue(1)))) { return primitiveFail(); } aByteArray = arrayValueOf(stackValue(1)); @@ -758,14 +762,14 @@ EXPORT(sqInt) primitiveTranslateStringWithTable(void) { sqInt i; rcvr = stackValue(4); - if (!(isBytes(stackValue(3)))) { + if (!(_isBytes(stackValue(3)))) { return primitiveFail(); } aString = arrayValueOf(stackValue(3)); aString -= 1; start = stackIntegerValue(2); stop = stackIntegerValue(1); - if (!(isBytes(stackValue(0)))) { + if (!(_isBytes(stackValue(0)))) { return primitiveFail(); } table = arrayValueOf(stackValue(0)); diff --git a/unix/src/vm/intplugins/RePlugin/RePlugin.c b/unix/src/vm/intplugins/RePlugin/RePlugin.c index 97a99c9..4f09246 100644 --- a/unix/src/vm/intplugins/RePlugin/RePlugin.c +++ b/unix/src/vm/intplugins/RePlugin/RePlugin.c @@ -252,7 +252,7 @@ EXPORT(sqInt) primPCREExec(void) { /* begin rcvrExtraPtr */ extraObj = interpreterProxy->fetchPointerofObject(3, rcvr); if (extraObj == (interpreterProxy->nilObject())) { - extraPtr = NULL; + extraPtr = 0; goto l1; } extraPtr = ((int) (interpreterProxy->arrayValueOf(extraObj))); @@ -317,7 +317,7 @@ EXPORT(sqInt) primPCREExecfromto(void) { /* begin rcvrExtraPtr */ extraObj = interpreterProxy->fetchPointerofObject(3, rcvr); if (extraObj == (interpreterProxy->nilObject())) { - extraPtr = NULL; + extraPtr = 0; goto l1; } extraPtr = ((int) (interpreterProxy->arrayValueOf(extraObj))); diff --git a/unix/src/vm/intplugins/SerialPlugin/SerialPlugin.c b/unix/src/vm/intplugins/SerialPlugin/SerialPlugin.c index a40a64d..ecc29f5 100644 --- a/unix/src/vm/intplugins/SerialPlugin/SerialPlugin.c +++ b/unix/src/vm/intplugins/SerialPlugin/SerialPlugin.c @@ -100,6 +100,9 @@ EXPORT(sqInt) primitiveSerialPortClose(void) { return null; } +extern sqInt serialPortCloseByName(const char*); +extern sqInt serialPortOpenByName(char*, int, int, int, int, int, int, int, int); + EXPORT(sqInt) primitiveSerialPortCloseByName(void) { char * cString; char *deviceName; diff --git a/unix/src/vm/intplugins/SlangTestSupportPlugin/SlangTestSupportPlugin.c b/unix/src/vm/intplugins/SlangTestSupportPlugin/SlangTestSupportPlugin.c index 72f9def..46280d9 100644 --- a/unix/src/vm/intplugins/SlangTestSupportPlugin/SlangTestSupportPlugin.c +++ b/unix/src/vm/intplugins/SlangTestSupportPlugin/SlangTestSupportPlugin.c @@ -147,7 +147,7 @@ static sqInt inlineByMethod(void) { sqInt bar; sqInt foo; - foo = "foo"; + foo = (sqInt) "foo"; bar = methodThatShouldNotBeInlinedByMethod(); } @@ -159,24 +159,24 @@ static sqInt inlineByPragma(void) { sqInt bar; sqInt foo; - foo = "foo"; + foo = (sqInt) "foo"; bar = methodThatShouldNotBeInlinedByPragma(); } static sqInt methodThatShouldBeInlinedByMethod(void) { - return "foo"; + return (sqInt) "foo"; } static sqInt methodThatShouldBeInlinedByPragma(void) { - return "foo"; + return (sqInt) "foo"; } static sqInt methodThatShouldNotBeInlinedByMethod(void) { - return "bar"; + return (sqInt) "bar"; } static sqInt methodThatShouldNotBeInlinedByPragma(void) { - return "bar"; + return (sqInt) "bar"; } diff --git a/unix/vm-sound-pulse/sqUnixSoundPulseAudio.c b/unix/vm-sound-pulse/sqUnixSoundPulseAudio.c index 18d0f7f..8b0f35d 100644 --- a/unix/vm-sound-pulse/sqUnixSoundPulseAudio.c +++ b/unix/vm-sound-pulse/sqUnixSoundPulseAudio.c @@ -995,10 +995,10 @@ DBGMSG("sound_StopRecording()"); - if (!audioIn.open) return; + if (!audioIn.open) return 0; audioIn.open = false; - if (NULL == audioIn.pa_conn) return; + if (NULL == audioIn.pa_conn) return 0; ioThreadStall(&audioIn); diff --git a/unix/vm/SqSound.h b/unix/vm/SqSound.h index bddbf24..973db1b 100644 --- a/unix/vm/SqSound.h +++ b/unix/vm/SqSound.h @@ -47,7 +47,7 @@ static struct SqSound sound_##NAME##_itf= { \ sound_RecordSamplesIntoAtLength, \ sound_Volume, \ sound_SetVolume, \ - sound_SetRecordLevel, \ + (void (*)(sqInt))sound_SetRecordLevel, \ sound_GetSwitch, \ sound_SetSwitch, \ sound_SetDevice \ diff --git a/unix/vm/aio.c b/unix/vm/aio.c index 57e054e..f133c8e 100644 --- a/unix/vm/aio.c +++ b/unix/vm/aio.c @@ -31,6 +31,7 @@ */ #include "sqaio.h" +#include "sq.h" #ifdef HAVE_CONFIG_H diff --git a/unix/vm/sqUnixMain.c b/unix/vm/sqUnixMain.c index 98ea3bc..76391f7 100644 --- a/unix/vm/sqUnixMain.c +++ b/unix/vm/sqUnixMain.c @@ -34,6 +34,7 @@ #include "sqMemoryAccess.h" #include "sqaio.h" #include "sqUnixCharConv.h" +#include "sqUnixGlobals.h" #include "debug.h" #ifdef ioMSecs @@ -42,6 +43,7 @@ #include #include +#include #include #include #include @@ -511,6 +513,8 @@ sqInt ioRelinquishProcessorForMicroseconds(sqInt us) sqInt ioBeep(void) { return dpy->ioBeep(); } +extern sqInt printCallStack(void); + #if defined(IMAGE_DUMP) static void emergencyDump(int quit)