From: cies Date: 2007-03-31T23:06:30+09:00 Subject: win32api: i probably don't understand pointer packing... ------=_Part_158521_20181974.1175349981576 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline hi all, i'm trying to sent some simple midi messages to a midi device on a windows machine, therefor i try to use Win32API. but i guess i don't understand the packing of pointers well enough, it keeps returning an "invalid parameter passed" error code. i tried many combinations. a little help would be very welcome! maybe i take the complete wrong approach... please let me know if you think i do. you can see the full file in the attachment, or an excerpt here: require 'Win32API' #reference of winmm.dll's midi API for "midiOutOpen": #http://msdn2.microsoft.com/en-us/library/ms711632.aspx #mmsystem.h (from wine): #http://www.koders.com/c/fid51853E4D2B2777DF792D2B246103C7C446CF3B67.aspx class Win32MidiOut # some constants from (wine's) mmsystem.h CALLBACK_NULL = 0x00000001 ERR_MSG = { 0 => 'no error', 1 => 'unspecified error', 2 => 'device ID out of range', 3 => 'driver failed to enable', 4 => 'device already allocated', 5 => 'device handle invalid', 6 => 'no device driver present', 7 => 'memory allocation error', 8 => 'function isn\'t supported', 9 => 'error value out of range', 10 => 'invalid flag passed', 11 => 'invalid parameter passed' } def self.device_count Win32API.new("winmm", "midiOutGetNumDevs", [], 'I').call end def open_device(num) f = Win32API.new("winmm", "midiOutOpen", 'PPPPI', 'I') id_ptr = [num].pack('I') callback_prt = [0].pack('l') callback_instance_prt = [0].pack('l') err = f.call(@device, id_ptr, callback_prt, callback_instance_prt, 1) puts ERR_MSG[err] p @device end end p Win32MidiOut::device_count p Win32MidiOut.new.open_device(0) #thanks! -- "Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music." -- Kristian Wilson (Nintendo, Inc), 1989 ------=_Part_158521_20181974.1175349981576 Content-Type: application/octet-stream; name=Win32MidiOut.rb Content-Transfer-Encoding: base64 X-Attachment-Id: f_ezy4w7wx Content-Disposition: attachment; filename="Win32MidiOut.rb" cmVxdWlyZSAnV2luMzJBUEknDQoNCiNodHRwOi8vd3d3LnJ1YnljZW50cmFsLmNvbS9ib29rL2xp Yl93aW5kb3dzLmh0bWwgICwgc2F5czoNCiMNCiMgV2luMzJBUEkubmV3KGRsbG5hbWUsIHByb2Nu YW1lLCBpbXBvcnRBcnJheSwgZXhwb3J0KSAtPiB3YXBpDQojIFJldHVybnMgYSBuZXcgb2JqZWN0 IHJlcHJlc2VudGluZyBhIFdpbmRvd3MgMzIgQVBJIGZ1bmN0aW9uLg0KIyAtIGRsbG5hbWUgaXMg dGhlIG5hbWUgb2YgdGhlIERMTCBjb250YWluaW5nIHRoZSBmdW5jdGlvbiwgc3VjaCBhcyAndXNl cjMyJyBvciAna2VybmVsMzInDQojIC0gcHJvY25hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIGRlc2ly ZWQgZnVuY3Rpb24NCiMgLSBpbXBvcnRBcnJheSBpcyBhbiBhcnJheSBvZiBzdHJpbmdzIHJlcHJl c2VudGluZyB0aGUgdHlwZXMgb2YgYXJndW1lbnRzIHRvIHRoZSBmdW5jdGlvbi4NCiMgLSBleHBv cnQgaXMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSByZXR1cm4gdHlwZSBvZiB0aGUgZnVuY3Rp b24uDQojICAgICAgJ24nIGFuZCAnbCcgcmVwcmVzZW50IG51bWJlcnMsDQojICAgICAgJ2knIHJl cHJlc2VudCBpbnRlZ2VycywNCiMgICAgICAncCcgcmVwcmVzZW50cyBwb2ludGVycyB0byBkYXRh IHN0b3JlZCBpbiBhIHN0cmluZywgYW5kDQojICAgICAgJ3YnIHJlcHJlc2VudHMgYSB2b2lkIHR5 cGUgKHVzZWQgZm9yIGV4cG9ydCBwYXJhbWV0ZXJzIG9ubHkpDQojDQojIHdhcGkuY2FsbCggWyBh cmdzIF0qICkgLT4gYW5PYmplY3QNCiMgQ2FsbHMgdGhpcyBBUEkgZnVuY3Rpb24gd2l0aCB0aGUg Z2l2ZW4gYXJndW1lbnRzLCB3aGljaCBtdXN0IG1hdGNoIHRoZSBzaWduYXR1cmUgc3BlY2lmaWVk IHRvIG5ldy4NCg0KI3JlZmVyZW5jZSBvZiB3aW5tbS5kbGwncyBtaWRpIEFQSSBmb3IgIm1pZGlP dXRPcGVuIjogICAoSU1QT1JUTkFOVCkNCiNodHRwOi8vbXNkbjIubWljcm9zb2Z0LmNvbS9lbi11 cy9saWJyYXJ5L21zNzExNjMyLmFzcHgNCg0KI21tc3lzdGVtLmggKGZyb20gd2luZSk6DQojaHR0 cDovL3d3dy5rb2RlcnMuY29tL2MvZmlkNTE4NTNFNEQyQjI3NzdERjc5MkQyQjI0NjEwM0M3QzQ0 NkNGM0I2Ny5hc3B4DQojTU1SRVNVTFQgaXMgYW4gaW50DQojRFdPUkQgaXMgYW4gaW50DQojRFdP UkRfUFJUIGlzIGEgbG9uZyBvbiAzMmJpdCBhbmQgYW4gdWludDY0IG9uIDY0IGJpdA0KDQoNCg0K Y2xhc3MgV2luMzJNaWRpT3V0DQogICMgc29tZSBjb25zdGFudHMgZnJvbSAod2luZSdzKSBtbXN5 c3RlbS5oDQogIENBTExCQUNLX05VTEwgPSAweDAwMDAwMDAxDQogIEVSUl9NU0cgPSB7DQogICAg MCA9PiAnbm8gZXJyb3InLA0KICAgIDEgPT4gJ3Vuc3BlY2lmaWVkIGVycm9yJywNCiAgICAyID0+ ICdkZXZpY2UgSUQgb3V0IG9mIHJhbmdlJywNCiAgICAzID0+ICdkcml2ZXIgZmFpbGVkIHRvIGVu YWJsZScsDQogICAgNCA9PiAnZGV2aWNlIGFscmVhZHkgYWxsb2NhdGVkJywNCiAgICA1ID0+ICdk ZXZpY2UgaGFuZGxlIGludmFsaWQnLA0KICAgIDYgPT4gJ25vIGRldmljZSBkcml2ZXIgcHJlc2Vu dCcsDQogICAgNyA9PiAnbWVtb3J5IGFsbG9jYXRpb24gZXJyb3InLA0KICAgIDggPT4gJ2Z1bmN0 aW9uIGlzblwndCBzdXBwb3J0ZWQnLA0KICAgIDkgPT4gJ2Vycm9yIHZhbHVlIG91dCBvZiByYW5n ZScsDQogICAgMTAgPT4gJ2ludmFsaWQgZmxhZyBwYXNzZWQnLA0KICAgIDExID0+ICdpbnZhbGlk IHBhcmFtZXRlciBwYXNzZWQnDQogIH0NCg0KICBkZWYgc2VsZi5kZXZpY2VfY291bnQNCiAgICBX aW4zMkFQSS5uZXcoIndpbm1tIiwgIm1pZGlPdXRHZXROdW1EZXZzIiwgW10sICdJJykuY2FsbA0K ICBlbmQNCg0KICBkZWYgb3Blbl9kZXZpY2UobnVtKQ0KICAgIGYgPSBXaW4zMkFQSS5uZXcoIndp bm1tIiwgIm1pZGlPdXRPcGVuIiwgJ1BQUFBJJywgJ0knKQ0KICAgIGlkX3B0ciA9IFtudW1dLnBh Y2soJ0knKQ0KICAgIGNhbGxiYWNrX3BydCA9IFswXS5wYWNrKCdsJykNCiAgICBjYWxsYmFja19p bnN0YW5jZV9wcnQgPSBbMF0ucGFjaygnbCcpDQogICAgZXJyID0gZi5jYWxsKEBkZXZpY2UsIGlk X3B0ciwgY2FsbGJhY2tfcHJ0LCBjYWxsYmFja19pbnN0YW5jZV9wcnQsIDEpDQogICAgcHV0cyBF UlJfTVNHW2Vycl0NCiAgICBwIEBkZXZpY2UNCiAgZW5kDQplbmQNCg0KDQpwIFdpbjMyTWlkaU91 dDo6ZGV2aWNlX2NvdW50DQpwIFdpbjMyTWlkaU91dC5uZXcub3Blbl9kZXZpY2UoMCkNCg0KDQoN Cg0KDQojYW5kIGV4YW1wbGUgb2YgdGhlIHVzZSBvZiB0aGUgb2xkZXIgd2luZG93cyBtaWRpIGFw aToNCiNodHRwOi8vd3d3LmNjYXJoLm9yZy9jb3Vyc2VzLzI1My9sYWIvbWlkaXByb2cva2V5bWlk aS9rZXltaWRpLmMNCg0KPWJlZ2luDQoNCi8vDQovLyBQcm9ncmFtbWVyOiAgICBDcmFpZyBTdHVh cnQgU2FwcCA8Y3JhaWdAY2NybWEuc3RhbmZvcmQuZWR1Pg0KLy8gQ3JlYXRpb24gRGF0ZTogU2F0 IEphbiAgMSAyMDoyOTo0NSBQU1QgMjAwNQ0KLy8gTGFzdCBNb2RpZmllZDogU2F0IEphbiAgMSAy MDozNzoyOCBQU1QgMjAwNQ0KLy8gRmlsZW5hbWU6ICAgICAgLi4ubWlkaWlvL2RvYy93aW5kb3dz bWlkaS9rZXltaWRpL2tleW1pZGkuYw0KLy8gVVJMOiAgICAgICAgICAgaHR0cDovL21pZGlpby5z YXBwLm9yZy9kb2Mvd2luZG93c21pZGkva2V5bWlkaS9rZXltaWRpLmMNCi8vIFN5bnRheDogICAg ICAgIEM7IFZpc3VhbCBDL0MrKyA1LzYNCi8vDQovLyBEZXNjcmlwdGlvbjogICBUaGUgZXhhbXBs ZSBwcm9ncmFtIHNob3dzIGhvdyB0byBvcGVuIE1JREkgb3V0cHV0LA0KLy8gICAgICAgICAgICAg ICAgc2VuZCBhIE1JREkgbWVzc2FnZSwgYW5kIGNsb3NlIE1JREkgb3V0cHV0Lg0KLy8gICAgICAg ICAgICAgICAgV2hlbiB5b3UgcHJlc3MgYSBrZXkgb24gdGhlIGNvbXB1dGVyIGtleWJvYXJkLCBh IE1JREkNCi8vICAgICAgICAgICAgICAgIG5vdGUgd2lsbCBiZSBlaXRoZXIgdHVybmVkIG9uIG9y IG9mZi4NCi8vDQoNCiNpbmNsdWRlIDxjb25pby5oPiAgICAgLyogaW5jbHVkZSBmb3Iga2JoaXQo KSBhbmQgZ2V0Y2goKSBmdW5jdGlvbnMgKi8NCiNpbmNsdWRlIDxzdGRpby5oPiAgICAgLyogZm9y IHByaW50ZigpIGZ1bmN0aW9uICovDQoNCiNpbmNsdWRlIDx3aW5kb3dzLmg+ICAgLyogcmVxdWly ZWQgYmVmb3JlIGluY2x1ZGluZyBtbXN5c3RlbS5oICovDQojaW5jbHVkZSA8bW1zeXN0ZW0uaD4g IC8qIG11bHRpbWVkaWEgZnVuY3Rpb25zIChzdWNoIGFzIE1JREkpIGZvciBXaW5kb3dzICovDQoN CmludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgew0KICAgaW50IGNrZXk7ICAgICAgICAg ICAvLyBzdG9yYWdlIGZvciB0aGUgY3VycmVudCBrZXlib2FyZCBrZXkgYmVpbmcgcHJlc3NlZA0K ICAgaW50IG5vdGVzdGF0ZSA9IDA7ICAvLyBrZWVwaW5nIHRyYWNrIG9mIHdoZW4gdGhlIG5vdGUg aXMgb24gb3Igb2ZmDQogICBpbnQgdmVsb2NpdHkgPSAxMDA7IC8vIE1JREkgbm90ZSB2ZWxvY2l0 eSBwYXJhbWV0ZXIgdmFsdWUNCiAgIGludCBtaWRpcG9ydDsgICAgICAgLy8gc2VsZWN0IHdoaWNo IE1JREkgb3V0cHV0IHBvcnQgdG8gb3Blbg0KICAgaW50IGZsYWc7ICAgICAgICAgICAvLyBtb25p dG9yIHRoZSBzdGF0dXMgb2YgcmV0dXJuaW5nIGZ1bmN0aW9ucw0KICAgSE1JRElPVVQgZGV2aWNl OyAgICAvLyBNSURJIGRldmljZSBpbnRlcmZhY2UgZm9yIHNlbmRpbmcgTUlESSBvdXRwdXQNCiAN CiAgIC8vIHZhcmlhYmxlIHdoaWNoIGlzIGJvdGggYW4gaW50ZWdlciBhbmQgYW4gYXJyYXkgb2Yg Y2hhcmFjdGVyczoNCiAgIHVuaW9uIHsgdW5zaWduZWQgbG9uZyB3b3JkOyB1bnNpZ25lZCBjaGFy IGRhdGFbNF07IH0gbWVzc2FnZTsNCiAgIC8vIG1lc3NhZ2UuZGF0YVswXSA9IGNvbW1hbmQgYnl0 ZSBvZiB0aGUgTUlESSBtZXNzYWdlLCBmb3IgZXhhbXBsZTogMHg5MA0KICAgLy8gbWVzc2FnZS5k YXRhWzFdID0gZmlyc3QgZGF0YSBieXRlIG9mIHRoZSBNSURJIG1lc3NhZ2UsIGZvciBleGFtcGxl OiA2MA0KICAgLy8gbWVzc2FnZS5kYXRhWzJdID0gc2Vjb25kIGRhdGEgYnl0ZSBvZiB0aGUgTUlE SSBtZXNzYWdlLCBmb3IgZXhhbXBsZSAxMDANCiAgIC8vIG1lc3NhZ2UuZGF0YVszXSA9IG5vdCB1 c2VkIGZvciBhbnkgTUlESSBtZXNzYWdlcywgc28gc2V0IHRvIDANCiAgIG1lc3NhZ2UuZGF0YVsw XSA9IDB4OTA7ICAvLyBNSURJIG5vdGUtb24gbWVzc2FnZSAocmVxdWlyZXMgdG8gZGF0YSBieXRl cykNCiAgIG1lc3NhZ2UuZGF0YVsxXSA9IDYwOyAgICAvLyBNSURJIG5vdGUtb24gbWVzc2FnZTog S2V5IG51bWJlciAoNjAgPSBtaWRkbGUgQykNCiAgIG1lc3NhZ2UuZGF0YVsyXSA9IDEwMDsgICAv LyBNSURJIG5vdGUtb24gbWVzc2FnZTogS2V5IHZlbG9jaXR5ICgxMDAgPSBsb3VkKQ0KICAgbWVz c2FnZS5kYXRhWzNdID0gMDsgICAgIC8vIFVudXNlZCBwYXJhbWV0ZXINCg0KICAgLy8gQXNzaWdu IHRoZSBNSURJIG91dHB1dCBwb3J0IG51bWJlciAoZnJvbSBpbnB1dCBvciBkZWZhdWx0IHRvIDAp DQogICBpZiAoYXJnYyA8IDIpIHsNCiAgICAgIG1pZGlwb3J0ID0gMDsNCiAgIH0gZWxzZSB7DQog ICAgICBtaWRpcG9ydCA9IGF0b2koYXJndlsxXSk7DQogICB9DQogICBwcmludGYoIk1JREkgb3V0 cHV0IHBvcnQgc2V0IHRvICVkLlxuIiwgbWlkaXBvcnQpOw0KDQogICAvLyBPcGVuIHRoZSBNSURJ IG91dHB1dCBwb3J0DQogICBmbGFnID0gbWlkaU91dE9wZW4oJmRldmljZSwgbWlkaXBvcnQsIDAs IDAsIENBTExCQUNLX05VTEwpOw0KICAgaWYgKGZsYWcgIT0gTU1TWVNFUlJfTk9FUlJPUikgew0K ICAgICAgcHJpbnRmKCJFcnJvciBvcGVuaW5nIE1JREkgT3V0cHV0LlxuIik7DQogICAgICByZXR1 cm4gMTsNCiAgIH0NCg0KICAgLy8gTWFpbiBldmVudCBsb29wDQogICBwcmludGYoIlByZXNzIFwi cVwiIHRvIHF1aXQuXG4iKTsNCiAgIHdoaWxlICgxKSB7ICAgICAgICAgLy8gZXZlbnQgbG9vcA0K ICAgICAgaWYgKGtiaGl0KCkpIHsgICAvLyBJZiBhIGtleSBvbiB0aGUgY29tcHV0ZXIga2V5Ym9h cmQgaGFzIGJlZW4gcHJlc3NlZCANCiAgICAgICAgIGNrZXkgPSBnZXRjaCgpOw0KICAgICAgICAg aWYgKG5vdGVzdGF0ZSA9PSAwKSB7DQogICAgICAgICAgICAvLyBOb3RlIGlzIGN1cnJlbnRseSBv ZmYsIHR1cm4gb24gbm90ZS4NCiAgICAgICAgICAgIG1lc3NhZ2UuZGF0YVsyXSA9IHZlbG9jaXR5 Ow0KICAgICAgICAgICAgbm90ZXN0YXRlID0gMTsNCiAgICAgICAgICAgIHByaW50ZigiTm90ZSB0 dXJuZWQgT04uXG4iKTsNCiAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAvLyBOb3RlIGlz IGN1cnJlbnRseSBvbiwgdHVybiBvZmYgbm90ZS4NCiAgICAgICAgICAgIG1lc3NhZ2UuZGF0YVsy XSA9IDA7ICAvLyAwIHZlbG9jaXR5ID0gbm90ZSBvZmYNCiAgICAgICAgICAgIG5vdGVzdGF0ZSA9 IDA7DQogICAgICAgICAgICBwcmludGYoIk5vdGUgdHVybmVkIE9GRi5cbiIpOw0KICAgICAgICAg fQ0KICAgICAgICAgZmxhZyA9IG1pZGlPdXRTaG9ydE1zZyhkZXZpY2UsIG1lc3NhZ2Uud29yZCk7 DQogICAgICAgICBpZiAoZmxhZyAhPSBNTVNZU0VSUl9OT0VSUk9SKSB7DQogICAgICAgICAgICBw cmludGYoIldhcm5pbmc6IE1JREkgT3V0cHV0IGlzIG5vdCBvcGVuLlxuIik7DQogICAgICAgICB9 DQogICAgICAgICBpZiAoY2tleSA9PSAncScpIGJyZWFrOw0KICAgICAgfQ0KICAgfQ0KDQogICAv LyB0dXJuIGFueSBNSURJIG5vdGVzIGN1cnJlbnRseSBwbGF5aW5nOg0KICAgbWlkaU91dFJlc2V0 KGRldmljZSk7DQoNCiAgIC8vIFJlbW92ZSBhbnkgZGF0YSBpbiBNSURJIGRldmljZSBhbmQgY2xv c2UgdGhlIE1JREkgT3V0cHV0IHBvcnQNCiAgIG1pZGlPdXRDbG9zZShkZXZpY2UpOw0KDQogICBy ZXR1cm4gMDsNCn0NCg0KDQovKiBXaW5kb3dzIEkvTyBmdW5jdGlvbnMgdXNlZCBpbiB0aGlzIHBy b2dyYW06DQogKg0KICogS2V5Ym9hcmQgQ29uc29sZSBGdW5jdGlvbnM6DQogKiBpbnQga2JoaXQo dm9pZCkgLS0gUmV0dXJucyB0cnVlIGlmIGEga2V5IG9uIHRoZSBjb21wdXRlciBrZXlib2FyZCBo YXMNCiAqICAgICAgICAgICAgICAgICAgICBiZWVuIHByZXNzZWQsIG9yIGZhbHNlIGlmIG5vIGtl eSBoYXMgYmVlbiBwcmVzc2VkLg0KICogaW50IGdldGNoKHZvaWQpIC0tIFJldHVybnMgdGhlIGtl eSB3aGljaCBoYXMgYmVlbiBwcmVzc2VkIG9uIHRoZSBjb21wdXRlcg0KICogICAgICAgICAgICAg ICAgICAgIGtleWJvYXJkLiAgUmV0dXJucyAtMSBpZiB0aGVyZSB3YXMgbm90IGtleSBwcmVzcy4N CiAqDQogKiBNSURJIE91dHB1dCBGdW5jdGlvbnM6DQogKiBtaWRpT3V0T3BlbiAgICAgLS0gaHR0 cDovL21zZG4ubWljcm9zb2Z0LmNvbS9saWJyYXJ5L2VuLXVzL211bHRpbWVkL2h0bS9fd2luMzJf bWlkaW91dG9wZW4uYXNwDQogKiBtaWRpT3V0U2hvcnRNc2cgLS0gaHR0cDovL21zZG4ubWljcm9z b2Z0LmNvbS9saWJyYXJ5L2VuLXVzL211bHRpbWVkL2h0bS9fd2luMzJfbWlkaW91dHNob3J0bXNn LmFzcA0KICogbWlkaU91dENsb3NlICAgIC0tIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vbGli cmFyeS9lbi11cy9tdWx0aW1lZC9odG0vX3dpbjMyX21pZGlvdXRjbG9zZS5hc3ANCiAqIG1pZGlP dXRSZXNldCAgICAtLSBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2xpYnJhcnkvZW4tdXMvbXVs dGltZWQvaHRtL193aW4zMl9taWRpb3V0Y2xvc2UuYXNwDQogKi8NCg0KPWVuZA0KDQoNCg0KI2Eg cGFydCBvZiB3aW5lJ3MgbW1zeXN0ZW0uaDoNCg0KPWJlZ2luDQojZGVmaW5lIE1NU1lTRVJSX0JB U0UgICAgICAgICAgMA0KI2RlZmluZSBXQVZFUlJfQkFTRSAgICAgICAgICAgIDMyDQojZGVmaW5l IE1JRElFUlJfQkFTRSAgICAgICAgICAgNjQNCiNkZWZpbmUgVElNRVJSX0JBU0UgICAgICAgICAg ICA5Ng0KI2RlZmluZSBKT1lFUlJfQkFTRSAgICAgICAgICAgIDE2MA0KI2RlZmluZSBNQ0lFUlJf QkFTRSAgICAgICAgICAgIDI1Ng0KDQojZGVmaW5lIE1DSV9TVFJJTkdfT0ZGU0VUICAgICAgNTEy DQojZGVmaW5lIE1DSV9WRF9PRkZTRVQgICAgICAgICAgMTAyNA0KI2RlZmluZSBNQ0lfQ0RfT0ZG U0VUICAgICAgICAgIDEwODgNCiNkZWZpbmUgTUNJX1dBVkVfT0ZGU0VUICAgICAgICAxMTUyDQoj ZGVmaW5lIE1DSV9TRVFfT0ZGU0VUICAgICAgICAgMTIxNg0KDQojZGVmaW5lIE1NU1lTRVJSX05P RVJST1IgICAgICAJMCAgICAgICAgICAgICAgICAgICAgLyogbm8gZXJyb3IgKi8NCiNkZWZpbmUg TU1TWVNFUlJfRVJST1IgICAgICAgIAkoTU1TWVNFUlJfQkFTRSArIDEpICAvKiB1bnNwZWNpZmll ZCBlcnJvciAqLw0KI2RlZmluZSBNTVNZU0VSUl9CQURERVZJQ0VJRCAgCShNTVNZU0VSUl9CQVNF ICsgMikgIC8qIGRldmljZSBJRCBvdXQgb2YgcmFuZ2UgKi8NCiNkZWZpbmUgTU1TWVNFUlJfTk9U RU5BQkxFRCAgIAkoTU1TWVNFUlJfQkFTRSArIDMpICAvKiBkcml2ZXIgZmFpbGVkIGVuYWJsZSAq Lw0KI2RlZmluZSBNTVNZU0VSUl9BTExPQ0FURUQgICAgCShNTVNZU0VSUl9CQVNFICsgNCkgIC8q IGRldmljZSBhbHJlYWR5IGFsbG9jYXRlZCAqLw0KI2RlZmluZSBNTVNZU0VSUl9JTlZBTEhBTkRM RSAgCShNTVNZU0VSUl9CQVNFICsgNSkgIC8qIGRldmljZSBoYW5kbGUgaXMgaW52YWxpZCAqLw0K I2RlZmluZSBNTVNZU0VSUl9OT0RSSVZFUiAgICAgCShNTVNZU0VSUl9CQVNFICsgNikgIC8qIG5v IGRldmljZSBkcml2ZXIgcHJlc2VudCAqLw0KI2RlZmluZSBNTVNZU0VSUl9OT01FTSAgICAgICAg CShNTVNZU0VSUl9CQVNFICsgNykgIC8qIG1lbW9yeSBhbGxvY2F0aW9uIGVycm9yICovDQojZGVm aW5lIE1NU1lTRVJSX05PVFNVUFBPUlRFRCAJKE1NU1lTRVJSX0JBU0UgKyA4KSAgLyogZnVuY3Rp b24gaXNuJ3Qgc3VwcG9ydGVkICovDQojZGVmaW5lIE1NU1lTRVJSX0JBREVSUk5VTSAgICAJKE1N U1lTRVJSX0JBU0UgKyA5KSAgLyogZXJyb3IgdmFsdWUgb3V0IG9mIHJhbmdlICovDQojZGVmaW5l IE1NU1lTRVJSX0lOVkFMRkxBRyAgICAJKE1NU1lTRVJSX0JBU0UgKyAxMCkgLyogaW52YWxpZCBm bGFnIHBhc3NlZCAqLw0KI2RlZmluZSBNTVNZU0VSUl9JTlZBTFBBUkFNICAgCShNTVNZU0VSUl9C QVNFICsgMTEpIC8qIGludmFsaWQgcGFyYW1ldGVyIHBhc3NlZCAqLw0KI2RlZmluZSBNTVNZU0VS Ul9MQVNURVJST1IgICAgCShNTVNZU0VSUl9CQVNFICsgMTEpIC8qIGxhc3QgZXJyb3IgaW4gcmFu Z2UgKi8NCg0KI2RlZmluZSBDQUxMQkFDS19UWVBFTUFTSyAgIAkweDAwMDcwMDAwbCAgICAJLyog Y2FsbGJhY2sgdHlwZSBtYXNrICovDQojZGVmaW5lIENBTExCQUNLX05VTEwgICAgICAgCTB4MDAw MDAwMDBsICAgIAkvKiBubyBjYWxsYmFjayAqLw0KI2RlZmluZSBDQUxMQkFDS19XSU5ET1cgICAg IAkweDAwMDEwMDAwbCAgICAJLyogZHdDYWxsYmFjayBpcyBhIEhXTkQgKi8NCiNkZWZpbmUgQ0FM TEJBQ0tfVEFTSyAgICAgICAJMHgwMDAyMDAwMGwgICAgCS8qIGR3Q2FsbGJhY2sgaXMgYSBIVEFT SyAqLw0KI2RlZmluZSBDQUxMQkFDS19USFJFQUQJCShDQUxMQkFDS19UQVNLKQkvKiBkd0NhbGxi YWNrIGlzIGEgdGhyZWFkIElEICovDQojZGVmaW5lIENBTExCQUNLX0ZVTkNUSU9OICAgCTB4MDAw MzAwMDBsICAgIAkvKiBkd0NhbGxiYWNrIGlzIGEgRkFSUFJPQyAqLw0KI2RlZmluZSBDQUxMQkFD S19FVkVOVAkJMHgwMDA1MDAwMGwJLyogZHdDYWxsYmFjayBpcyBhbiBFVkVOVCBIYW5kbGVyICov DQoNCj1lbmQ= ------=_Part_158521_20181974.1175349981576--