[Vm-dev] VM Maker: VMMaker.oscog-ul.2354.mcz
Eliot Miranda
eliot.miranda at gmail.com
Fri Mar 16 22:46:04 UTC 2018
Hi Levente,
when I try and build on Mac OS X I get this:
"_serialPortOpenByName", referenced from:
_primitiveSerialPortOpenByName in SerialPlugin.lib(SerialPlugin.o)
"_serialPortReadIntoByName", referenced from:
_primitiveSerialPortReadByName in SerialPlugin.lib(SerialPlugin.o)
"_serialPortWriteFromByName", referenced from:
_primitiveSerialPortWriteByName in SerialPlugin.lib(SerialPlugin.o)
The implementations are missing in both platforms/Mac
OS/plugins/SerialPlugin/sqMacSerialPort.c and
platforms/iOS/plugins/SerialPlugin/sqMacSerialPort.c. They are there in
platforms/unix/plugins/SerialPlugin/sqUnixSerial.c and
platforms/win32/plugins/SerialPlugin/sqWin32SerialPort.c.
:-(
On Sat, Mar 10, 2018 at 1:58 PM, <commits at source.squeak.org> wrote:
>
> Levente Uzonyi uploaded a new version of VMMaker to project VM Maker:
> http://source.squeak.org/VMMaker/VMMaker.oscog-ul.2354.mcz
>
> ==================== Summary ====================
>
> Name: VMMaker.oscog-ul.2354
> Author: ul
> Time: 10 March 2018, 10:56:45.349653 pm
> UUID: b8f3192d-2b33-4a5d-83f9-785fbefbc570
> Ancestors: VMMaker.oscog-eem.2353
>
> Restored SerialPlugin's *byName* primitives on non-PharoVM VMs.
>
> =============== Diff against VMMaker.oscog-eem.2353 ===============
>
> Item was changed:
> ----- Method: SerialPlugin>>primitiveSerialPortOpenByName:
> baudRate:stopBitsType:parityType:dataBits:inFlowControlType:
> outFlowControlType:xOnByte:xOffByte: (in category 'primitives') -----
> primitiveSerialPortOpenByName: portName baudRate: baudRate stopBitsType:
> stopBitsType parityType: parityType dataBits: dataBits inFlowControlType:
> inFlowControl outFlowControlType: outFlowControl xOnByte: xOnChar xOffByte:
> xOffChar
> - <option: #PharoVM>
> <var: #port type: 'char *'>
>
> | port portNameSize |
>
> self primitive: 'primitiveSerialPortOpenByName'
> parameters: #(String SmallInteger SmallInteger
> SmallInteger SmallInteger SmallInteger SmallInteger SmallInteger
> SmallInteger ).
>
> portNameSize := interpreterProxy slotSizeOf: (portName asOop:
> String).
> port := self cCode: 'calloc(portNameSize+1, sizeof(char))'.
> self cCode: 'memcpy(port, portName, portNameSize)'.
>
> self cCode: 'serialPortOpenByName(
> port, baudRate, stopBitsType, parityType, dataBits,
> inFlowControl, outFlowControl, xOnChar, xOffChar)'.
>
> self free: port.!
>
> Item was changed:
> ----- Method: SerialPlugin>>primitiveSerialPortReadByName:into:startingAt:count:
> (in category 'primitives') -----
> primitiveSerialPortReadByName: portName into: array startingAt:
> startIndex count: count
> - <option: #PharoVM>
> <var: #port type: 'char *'>
>
> | port portNameSize bytesRead arrayPtr |
>
> self primitive: 'primitiveSerialPortReadByName'
> parameters: #(String ByteArray SmallInteger SmallInteger
> ).
>
> interpreterProxy success: (startIndex >= 1 and: [startIndex +
> count - 1 <= (interpreterProxy byteSizeOf: array cPtrAsOop)]).
> "adjust for zero-origin indexing"
>
> portNameSize := interpreterProxy slotSizeOf: (portName asOop:
> String).
> port := self cCode: 'calloc(portNameSize+1, sizeof(char))'.
> self cCode: 'memcpy(port, portName, portNameSize)'.
>
> arrayPtr := array + startIndex - 1.
> bytesRead := self cCode: 'serialPortReadIntoByName( port, count,
> arrayPtr)'.
>
> self free: port.
>
> ^ bytesRead asSmallIntegerObj!
>
> Item was changed:
> ----- Method: SerialPlugin>>primitiveSerialPortWriteByName:from:startingAt:count:
> (in category 'primitives') -----
> primitiveSerialPortWriteByName: portName from: array startingAt:
> startIndex count: count
> - <option: #PharoVM>
> <var: #port type: 'char *'>
>
> | bytesWritten arrayPtr portNameSize port |
>
> self primitive: 'primitiveSerialPortWriteByName'
> parameters: #(String ByteArray SmallInteger SmallInteger ).
>
> portNameSize := interpreterProxy slotSizeOf: (portName asOop:
> String).
> port := self cCode: 'calloc(portNameSize+1, sizeof(char))'.
> self cCode: 'memcpy(port, portName, portNameSize)'.
>
> interpreterProxy success: (startIndex >= 1 and: [startIndex +
> count - 1 <= (interpreterProxy byteSizeOf: array cPtrAsOop)]).
> interpreterProxy failed
> ifFalse: [arrayPtr := array + startIndex - 1.
> bytesWritten := self cCode:
> 'serialPortWriteFromByName(port, count, arrayPtr)' ].
>
> self free: port.
>
> ^ bytesWritten asSmallIntegerObj!
>
>
--
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20180316/424dd2e7/attachment.html>
More information about the Vm-dev
mailing list