Esteban Lorenzano uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker-oscog-EstebanLorenzano.165.mcz
==================== Summary ====================
Name: VMMaker-oscog-EstebanLorenzano.165 Author: EstebanLorenzano Time: 31 October 2012, 5:59:24.762 pm UUID: b9ded301-c60c-437f-bd59-9e8256726624 Ancestors: VMMaker-oscog-EstebanLorenzano.164
- added SystemInfoPlugin to retrieve some information about the platform (mainly for security reasons)
=============== Diff against VMMaker-oscog-EstebanLorenzano.164 ===============
Item was added: + SmartSyntaxInterpreterPlugin subclass: #SystemInfoPlugin + instanceVariableNames: '' + classVariableNames: '' + poolDictionaries: 'VMBasicConstants' + category: 'VMMaker-Plugins'! + + !SystemInfoPlugin commentStamp: '<historical>' prior: 0! + I'm a symple plugin who answers some information about the system. + My main purpose is to provide identifiers that can be used for security reasons (to forbid an application to run in different machines) + !
Item was added: + ----- Method: SystemInfoPlugin class>>declareCVarsIn: (in category 'translation') ----- + declareCVarsIn: codeGenerator + codeGenerator addHeaderFile: '"SystemInfo.h"'.!
Item was added: + ----- Method: SystemInfoPlugin>>primitivePrimaryMACAddress (in category 'primitives') ----- + primitivePrimaryMACAddress + | identifier size resultOop resultPtr | + + <export: true> + <var: #identifier type: 'char *'> + <var: #resultPtr type: 'char *'> + + self primitive: #primitivePrimaryMACAddress parameters: #(). + + interpreterProxy failed ifTrue: [ ^self ]. + + identifier := self sqPrimaryMACAddress. + size := self strlen: identifier. + resultOop := interpreterProxy instantiateClass: interpreterProxy classString indexableSize: size. + resultPtr := interpreterProxy firstIndexableField: resultOop. + 0 to: (size - 1) do: [ :i | + resultPtr at: i put: (identifier at: i) ]. + + ^resultOop!
Item was added: + ----- Method: SystemInfoPlugin>>primitiveUniqueIdentifier (in category 'primitives') ----- + primitiveUniqueIdentifier + | identifier size resultOop resultPtr | + + <export: true> + <var: #identifier type: 'char *'> + <var: #resultPtr type: 'char *'> + + self primitive: #primitiveUniqueIdentifier parameters: #(). + + interpreterProxy failed ifTrue: [ ^self ]. + + identifier := self sqUniqueIdentifier. + size := self strlen: identifier. + resultOop := interpreterProxy instantiateClass: interpreterProxy classString indexableSize: size. + resultPtr := interpreterProxy firstIndexableField: resultOop. + 0 to: (size - 1) do: [ :i | + resultPtr at: i put: (identifier at: i) ]. + + ^resultOop!
vm-dev@lists.squeakfoundation.org