amiga_sys/
lib.rs

1//! Unsafe bindings for the Amiga (m68k) system libraries.
2//!
3//! Most functions take a pointer to its library as the first parameter.
4//! Call `abs_exec_library()` to get a pointer to the Exec library and call `OpenLibrary()`
5//! to open other libraries.
6
7#![feature(asm_experimental_arch)]
8#![allow(non_upper_case_globals)]
9#![allow(non_camel_case_types)]
10#![allow(non_snake_case)]
11#![no_std]
12
13#[cfg(any(target_arch = "m68k", doc))]
14mod bindings;
15#[cfg(any(target_arch = "m68k", doc))]
16pub use bindings::*;
17
18#[cfg(any(target_arch = "m68k", doc))]
19mod constants;
20#[cfg(any(target_arch = "m68k", doc))]
21pub use constants::*;
22
23/// Returns a pointer to the exec library by reading the memory address 0x00000004.
24#[cfg(any(target_arch = "m68k", doc))]
25pub unsafe fn abs_exec_library() -> *mut Library {
26    unsafe { *(0x00000004 as *mut usize) as *mut Library }
27}
28
29// ensure structs have correct sizes: these sizes have been taken from NDK3.1 STRUCTURE.OFFSETS
30#[cfg(any(target_arch = "m68k", doc))]
31const _: () = {
32    ["Size of AChain"][::core::mem::size_of::<AChain>() - 274usize];
33    ["Size of AmigaGuideHost"][::core::mem::size_of::<AmigaGuideHost>() - 40usize];
34    ["Size of AmigaGuideMsg"][::core::mem::size_of::<AmigaGuideMsg>() - 52usize];
35    ["Size of AnalogSignalInterval"][::core::mem::size_of::<AnalogSignalInterval>() - 4usize];
36    ["Size of AnchorPath"][::core::mem::size_of::<AnchorPath>() - 282usize];
37    ["Size of AnimComp"][::core::mem::size_of::<AnimComp>() - 38usize];
38    ["Size of AnimHeader"][::core::mem::size_of::<AnimHeader>() - 40usize];
39    ["Size of AnimOb"][::core::mem::size_of::<AnimOb>() - 42usize];
40    ["Size of AppIcon"][::core::mem::size_of::<AppIcon>() - 4usize];
41    ["Size of AppMenuItem"][::core::mem::size_of::<AppMenuItem>() - 4usize];
42    ["Size of AppMessage"][::core::mem::size_of::<AppMessage>() - 86usize];
43    ["Size of AppWindow"][::core::mem::size_of::<AppWindow>() - 4usize];
44    ["Size of AreaInfo"][::core::mem::size_of::<AreaInfo>() - 24usize];
45    ["Size of AssignList"][::core::mem::size_of::<AssignList>() - 8usize];
46    //["Size of AudChannel"][::core::mem::size_of::<AudChannel>() - 16usize]; // not found in NDK3.2
47    ["Size of AvailFonts"][::core::mem::size_of::<AvailFonts>() - 10usize];
48    ["Size of AvailFontsHeader"][::core::mem::size_of::<AvailFontsHeader>() - 2usize];
49    ["Size of BadBlockBlock"][::core::mem::size_of::<BadBlockBlock>() - 512usize];
50    ["Size of BadBlockEntry"][::core::mem::size_of::<BadBlockEntry>() - 8usize];
51    ["Size of BitMap"][::core::mem::size_of::<BitMap>() - 40usize];
52    ["Size of BitMapHeader"][::core::mem::size_of::<BitMapHeader>() - 20usize];
53    ["Size of BitScaleArgs"][::core::mem::size_of::<BitScaleArgs>() - 48usize];
54    ["Size of Bob"][::core::mem::size_of::<Bob>() - 32usize];
55    ["Size of BoolInfo"][::core::mem::size_of::<BoolInfo>() - 10usize];
56    ["Size of BootBlock"][::core::mem::size_of::<BootBlock>() - 12usize];
57    ["Size of BootNode"][::core::mem::size_of::<BootNode>() - 20usize];
58    ["Size of Border"][::core::mem::size_of::<Border>() - 16usize];
59    ["Size of CDInfo"][::core::mem::size_of::<CDInfo>() - 34usize];
60    ["Size of CDXL"][::core::mem::size_of::<CDXL>() - 28usize];
61    ["Size of CIA"][::core::mem::size_of::<CIA>() - 3842usize];
62    ["Size of CSource"][::core::mem::size_of::<CSource>() - 12usize];
63    ["Size of CardHandle"][::core::mem::size_of::<CardHandle>() - 28usize];
64    ["Size of CardMemoryMap"][::core::mem::size_of::<CardMemoryMap>() - 24usize];
65    ["Size of Catalog"][::core::mem::size_of::<Catalog>() - 28usize];
66    ["Size of CliProcList"][::core::mem::size_of::<CliProcList>() - 16usize];
67    ["Size of ClipHookMsg"][::core::mem::size_of::<ClipHookMsg>() - 12usize];
68    ["Size of ClipRect"][::core::mem::size_of::<ClipRect>() - 36usize];
69    ["Size of ClipboardHandle"][::core::mem::size_of::<ClipboardHandle>() - 120usize];
70    ["Size of ClipboardUnitPartial"][::core::mem::size_of::<ClipboardUnitPartial>() - 18usize];
71    ["Size of ClockData"][::core::mem::size_of::<ClockData>() - 14usize];
72    ["Size of CollectionItem"][::core::mem::size_of::<CollectionItem>() - 12usize];
73    ["Size of ColorFontColors"][::core::mem::size_of::<ColorFontColors>() - 8usize];
74    ["Size of ColorMap"][::core::mem::size_of::<ColorMap>() - 52usize];
75    ["Size of ColorRegister"][::core::mem::size_of::<ColorRegister>() - 4usize];
76    ["Size of ColorSpec"][::core::mem::size_of::<ColorSpec>() - 8usize];
77    ["Size of ColorTextFont"][::core::mem::size_of::<ColorTextFont>() - 96usize];
78    ["Size of ColorWheelHSB"][::core::mem::size_of::<ColorWheelHSB>() - 12usize];
79    ["Size of ColorWheelRGB"][::core::mem::size_of::<ColorWheelRGB>() - 12usize];
80    ["Size of CommandLineInterface"][::core::mem::size_of::<CommandLineInterface>() - 64usize];
81    ["Size of ConUnit"][::core::mem::size_of::<ConUnit>() - 296usize];
82    ["Size of Conductor"][::core::mem::size_of::<Conductor>() - 54usize];
83    ["Size of ConfigDev"][::core::mem::size_of::<ConfigDev>() - 68usize];
84    ["Size of ContextNode"][::core::mem::size_of::<ContextNode>() - 24usize];
85    ["Size of CopIns"][::core::mem::size_of::<CopIns>() - 6usize];
86    ["Size of CopList"][::core::mem::size_of::<CopList>() - 38usize];
87    ["Size of CountryPrefs"][::core::mem::size_of::<CountryPrefs>() - 504usize];
88    ["Size of CurrentBinding"][::core::mem::size_of::<CurrentBinding>() - 16usize];
89    ["Size of Custom"][::core::mem::size_of::<Custom>() - 510usize];
90    ["Size of DBufInfo"][::core::mem::size_of::<DBufInfo>() - 84usize];
91    ["Size of DBufPacket"][::core::mem::size_of::<DBufPacket>() - 12usize];
92    ["Size of DTHookContext"][::core::mem::size_of::<DTHookContext>() - 40usize];
93    ["Size of DTMethod"][::core::mem::size_of::<DTMethod>() - 12usize];
94    ["Size of DTSpecialInfo"][::core::mem::size_of::<DTSpecialInfo>() - 90usize];
95    ["Size of DataType"][::core::mem::size_of::<DataType>() - 58usize];
96    ["Size of DataTypeHeader"][::core::mem::size_of::<DataTypeHeader>() - 32usize];
97    ["Size of DateStamp"][::core::mem::size_of::<DateStamp>() - 12usize];
98    ["Size of DateTime"][::core::mem::size_of::<DateTime>() - 26usize];
99    ["Size of DevInfo"][::core::mem::size_of::<DevInfo>() - 44usize];
100    ["Size of DevProc"][::core::mem::size_of::<DevProc>() - 16usize];
101    ["Size of Device"][::core::mem::size_of::<Device>() - 34usize];
102    ["Size of DeviceData"][::core::mem::size_of::<DeviceData>() - 52usize];
103    ["Size of DeviceList"][::core::mem::size_of::<DeviceList>() - 44usize];
104    ["Size of DeviceNode"][::core::mem::size_of::<DeviceNode>() - 44usize];
105    ["Size of DeviceTData"][::core::mem::size_of::<DeviceTData>() - 10usize];
106    ["Size of DiagArea"][::core::mem::size_of::<DiagArea>() - 14usize];
107    ["Size of DimensionInfo"][::core::mem::size_of::<DimensionInfo>() - 88usize];
108    ["Size of DiscResource"][::core::mem::size_of::<DiscResource>() - 148usize];
109    ["Size of DiscResourceUnit"][::core::mem::size_of::<DiscResourceUnit>() - 86usize];
110    ["Size of DiskFontHeader"][::core::mem::size_of::<DiskFontHeader>() - 106usize];
111    ["Size of DiskObject"][::core::mem::size_of::<DiskObject>() - 78usize];
112    ["Size of DisplayInfo"][::core::mem::size_of::<DisplayInfo>() - 56usize];
113    ["Size of DisplayMode"][::core::mem::size_of::<DisplayMode>() - 106usize];
114    ["Size of DosEnvec"][::core::mem::size_of::<DosEnvec>() - 80usize];
115    ["Size of DosInfo"][::core::mem::size_of::<DosInfo>() - 158usize];
116    ["Size of DosLibrary"][::core::mem::size_of::<DosLibrary>() - 70usize];
117    ["Size of DosList"][::core::mem::size_of::<DosList>() - 44usize];
118    ["Size of DosPacket"][::core::mem::size_of::<DosPacket>() - 48usize];
119    ["Size of DrawInfo"][::core::mem::size_of::<DrawInfo>() - 50usize];
120    ["Size of DrawerData"][::core::mem::size_of::<DrawerData>() - 62usize];
121    ["Size of DriveGeometry"][::core::mem::size_of::<DriveGeometry>() - 32usize];
122    ["Size of EClockVal"][::core::mem::size_of::<EClockVal>() - 8usize];
123    ["Size of EasyStruct"][::core::mem::size_of::<EasyStruct>() - 20usize];
124    ["Size of ErrorString"][::core::mem::size_of::<ErrorString>() - 8usize];
125    ["Size of ExAllControl"][::core::mem::size_of::<ExAllControl>() - 16usize];
126    ["Size of ExAllData"][::core::mem::size_of::<ExAllData>() - 40usize];
127    ["Size of ExecBase"][::core::mem::size_of::<ExecBase>() - 632usize];
128    ["Size of ExpansionBase"][::core::mem::size_of::<ExpansionBase>() - 88usize];
129    ["Size of ExpansionControl"][::core::mem::size_of::<ExpansionControl>() - 16usize];
130    ["Size of ExpansionRom"][::core::mem::size_of::<ExpansionRom>() - 16usize];
131    ["Size of ExtGadget"][::core::mem::size_of::<ExtGadget>() - 56usize];
132    ["Size of ExtIntuiMessage"][::core::mem::size_of::<ExtIntuiMessage>() - 56usize];
133    ["Size of ExtNewScreen"][::core::mem::size_of::<ExtNewScreen>() - 36usize];
134    ["Size of ExtNewWindow"][::core::mem::size_of::<ExtNewWindow>() - 52usize];
135    ["Size of ExtSprite"][::core::mem::size_of::<ExtSprite>() - 16usize];
136    ["Size of ExtendedNode"][::core::mem::size_of::<ExtendedNode>() - 24usize];
137    ["Size of FileHandle"][::core::mem::size_of::<FileHandle>() - 44usize];
138    ["Size of FileInfoBlock"][::core::mem::size_of::<FileInfoBlock>() - 260usize];
139    ["Size of FileLock"][::core::mem::size_of::<FileLock>() - 20usize];
140    ["Size of FileRequester"][::core::mem::size_of::<FileRequester>() - 56usize];
141    ["Size of FileSysEntry"][::core::mem::size_of::<FileSysEntry>() - 62usize];
142    ["Size of FileSysHeaderBlock"][::core::mem::size_of::<FileSysHeaderBlock>() - 256usize];
143    ["Size of FileSysResource"][::core::mem::size_of::<FileSysResource>() - 32usize];
144    ["Size of FileSysStartupMsg"][::core::mem::size_of::<FileSysStartupMsg>() - 16usize];
145    ["Size of FontContents"][::core::mem::size_of::<FontContents>() - 260usize];
146    ["Size of FontContentsHeader"][::core::mem::size_of::<FontContentsHeader>() - 4usize];
147    ["Size of FontPrefs"][::core::mem::size_of::<FontPrefs>() - 156usize];
148    ["Size of FontRequester"][::core::mem::size_of::<FontRequester>() - 44usize];
149    ["Size of FrameInfo"][::core::mem::size_of::<FrameInfo>() - 36usize];
150    ["Size of FreeList"][::core::mem::size_of::<FreeList>() - 16usize];
151    ["Size of Gadget"][::core::mem::size_of::<Gadget>() - 44usize];
152    ["Size of GadgetInfo"][::core::mem::size_of::<GadgetInfo>() - 58usize];
153    ["Size of GamePortTrigger"][::core::mem::size_of::<GamePortTrigger>() - 8usize];
154    ["Size of GelsInfo"][::core::mem::size_of::<GelsInfo>() - 38usize];
155    ["Size of GfxBase"][::core::mem::size_of::<GfxBase>() - 552usize]; // fixed for NDK3.2
156    ["Size of GlyphEngine"][::core::mem::size_of::<GlyphEngine>() - 8usize];
157    ["Size of GlyphMap"][::core::mem::size_of::<GlyphMap>() - 36usize];
158    ["Size of GlyphWidthEntry"][::core::mem::size_of::<GlyphWidthEntry>() - 14usize];
159    ["Size of Hook"][::core::mem::size_of::<Hook>() - 20usize];
160    ["Size of IBox"][::core::mem::size_of::<IBox>() - 8usize];
161    ["Size of IControlPrefs"][::core::mem::size_of::<IControlPrefs>() - 38usize]; // fixed for NDK3.2
162    ["Size of IENewTablet"][::core::mem::size_of::<IENewTablet>() - 32usize];
163    ["Size of IEPointerPixel"][::core::mem::size_of::<IEPointerPixel>() - 8usize];
164    ["Size of IEPointerTablet"][::core::mem::size_of::<IEPointerTablet>() - 10usize];
165    ["Size of IFFHandle"][::core::mem::size_of::<IFFHandle>() - 12usize];
166    ["Size of IFFStreamCmd"][::core::mem::size_of::<IFFStreamCmd>() - 12usize];
167    ["Size of IOAudio"][::core::mem::size_of::<IOAudio>() - 68usize];
168    ["Size of IOClipReq"][::core::mem::size_of::<IOClipReq>() - 52usize];
169    ["Size of IODRPReq"][::core::mem::size_of::<IODRPReq>() - 62usize];
170    ["Size of IOExtPar"][::core::mem::size_of::<IOExtPar>() - 62usize];
171    ["Size of IOExtSer"][::core::mem::size_of::<IOExtSer>() - 82usize];
172    ["Size of IOExtTD"][::core::mem::size_of::<IOExtTD>() - 56usize];
173    ["Size of IOPArray"][::core::mem::size_of::<IOPArray>() - 8usize];
174    ["Size of IOPrtCmdReq"][::core::mem::size_of::<IOPrtCmdReq>() - 38usize];
175    ["Size of IORequest"][::core::mem::size_of::<IORequest>() - 32usize];
176    ["Size of IOStdReq"][::core::mem::size_of::<IOStdReq>() - 48usize];
177    ["Size of IOTArray"][::core::mem::size_of::<IOTArray>() - 8usize];
178    ["Size of Image"][::core::mem::size_of::<Image>() - 20usize];
179    ["Size of InfoData"][::core::mem::size_of::<InfoData>() - 36usize];
180    ["Size of InputEvent"][::core::mem::size_of::<InputEvent>() - 22usize];
181    ["Size of InputPrefs"][::core::mem::size_of::<InputPrefs>() - 44usize];
182    ["Size of InputXpression"][::core::mem::size_of::<InputXpression>() - 12usize];
183    ["Size of IntVector"][::core::mem::size_of::<IntVector>() - 12usize];
184    ["Size of Interrupt"][::core::mem::size_of::<Interrupt>() - 22usize];
185    ["Size of IntuiMessage"][::core::mem::size_of::<IntuiMessage>() - 52usize];
186    ["Size of IntuiText"][::core::mem::size_of::<IntuiText>() - 20usize];
187    ["Size of IntuitionBase"][::core::mem::size_of::<IntuitionBase>() - 80usize];
188    ["Size of IoBuff"][::core::mem::size_of::<IoBuff>() - 256usize];
189    ["Size of Isrvstr"][::core::mem::size_of::<Isrvstr>() - 30usize];
190    ["Size of KeyMap"][::core::mem::size_of::<KeyMap>() - 32usize];
191    ["Size of KeyMapNode"][::core::mem::size_of::<KeyMapNode>() - 46usize];
192    ["Size of KeyMapResource"][::core::mem::size_of::<KeyMapResource>() - 28usize];
193    ["Size of KeyQuery"][::core::mem::size_of::<KeyQuery>() - 4usize];
194    ["Size of LVDrawMsg"][::core::mem::size_of::<LVDrawMsg>() - 24usize];
195    ["Size of Layer"][::core::mem::size_of::<Layer>() - 160usize];
196    ["Size of Layer_Info"][::core::mem::size_of::<Layer_Info>() - 102usize];
197    ["Size of Library"][::core::mem::size_of::<Library>() - 34usize];
198    ["Size of Line"][::core::mem::size_of::<Line>() - 36usize];
199    ["Size of List"][::core::mem::size_of::<List>() - 14usize];
200    ["Size of LoadSegBlock"][::core::mem::size_of::<LoadSegBlock>() - 512usize];
201    ["Size of LocalContextItem"][::core::mem::size_of::<LocalContextItem>() - 20usize];
202    ["Size of LocalVar"][::core::mem::size_of::<LocalVar>() - 24usize];
203    ["Size of Locale"][::core::mem::size_of::<Locale>() - 168usize];
204    ["Size of LocaleBase"][::core::mem::size_of::<LocaleBase>() - 36usize];
205    ["Size of LocalePrefs"][::core::mem::size_of::<LocalePrefs>() - 860usize];
206    ["Size of MathIEEEBase"][::core::mem::size_of::<MathIEEEBase>() - 60usize];
207    ["Size of MathIEEEResource"][::core::mem::size_of::<MathIEEEResource>() - 44usize];
208    ["Size of MemChunk"][::core::mem::size_of::<MemChunk>() - 8usize];
209    ["Size of MemEntry"][::core::mem::size_of::<MemEntry>() - 8usize];
210    ["Size of MemHandlerData"][::core::mem::size_of::<MemHandlerData>() - 12usize];
211    ["Size of MemHeader"][::core::mem::size_of::<MemHeader>() - 32usize];
212    ["Size of MemList"][::core::mem::size_of::<MemList>() - 24usize];
213    ["Size of Menu"][::core::mem::size_of::<Menu>() - 30usize];
214    ["Size of MenuItem"][::core::mem::size_of::<MenuItem>() - 34usize];
215    ["Size of Message"][::core::mem::size_of::<Message>() - 20usize];
216    ["Size of MinList"][::core::mem::size_of::<MinList>() - 12usize];
217    ["Size of MinNode"][::core::mem::size_of::<MinNode>() - 8usize];
218    ["Size of MonitorInfo"][::core::mem::size_of::<MonitorInfo>() - 96usize];
219    ["Size of MonitorSpec"][::core::mem::size_of::<MonitorSpec>() - 160usize];
220    ["Size of MsgPort"][::core::mem::size_of::<MsgPort>() - 34usize];
221    ["Size of NVEntry"][::core::mem::size_of::<NVEntry>() - 20usize];
222    ["Size of NVInfo"][::core::mem::size_of::<NVInfo>() - 8usize];
223    ["Size of NameInfo"][::core::mem::size_of::<NameInfo>() - 56usize];
224    ["Size of NamedObject"][::core::mem::size_of::<NamedObject>() - 4usize];
225    ["Size of NewAmigaGuide"][::core::mem::size_of::<NewAmigaGuide>() - 52usize];
226    ["Size of NewBroker"][::core::mem::size_of::<NewBroker>() - 26usize];
227    ["Size of NewGadget"][::core::mem::size_of::<NewGadget>() - 30usize];
228    ["Size of NewMenu"][::core::mem::size_of::<NewMenu>() - 20usize];
229    ["Size of NewScreen"][::core::mem::size_of::<NewScreen>() - 32usize];
230    ["Size of NewWindow"][::core::mem::size_of::<NewWindow>() - 48usize];
231    ["Size of NexxStr"][::core::mem::size_of::<NexxStr>() - 16usize];
232    ["Size of Node"][::core::mem::size_of::<Node>() - 14usize];
233    ["Size of NotifyMessage"][::core::mem::size_of::<NotifyMessage>() - 38usize];
234    ["Size of NotifyRequest"][::core::mem::size_of::<NotifyRequest>() - 48usize];
235    ["Size of OldDrawerData"][::core::mem::size_of::<OldDrawerData>() - 56usize];
236    ["Size of OverscanPrefs"][::core::mem::size_of::<OverscanPrefs>() - 36usize];
237    ["Size of PGX"][::core::mem::size_of::<PGX>() - 16usize];
238    ["Size of PaletteExtra"][::core::mem::size_of::<PaletteExtra>() - 68usize];
239    ["Size of PalettePrefs"][::core::mem::size_of::<PalettePrefs>() - 400usize];
240    ["Size of PartitionBlock"][::core::mem::size_of::<PartitionBlock>() - 256usize];
241    ["Size of Player"][::core::mem::size_of::<Player>() - 44usize];
242    ["Size of PointerPrefs"][::core::mem::size_of::<PointerPrefs>() - 32usize];
243    ["Size of PrefHeader"][::core::mem::size_of::<PrefHeader>() - 6usize];
244    ["Size of Preferences"][::core::mem::size_of::<Preferences>() - 232usize];
245    ["Size of PrinterData"][::core::mem::size_of::<PrinterData>() - 6842usize]; // fixed for NDK3.2
246    ["Size of PrinterExtendedData"][::core::mem::size_of::<PrinterExtendedData>() - 78usize]; // fixed for NDK3.2
247    ["Size of PrinterGfxPrefs"][::core::mem::size_of::<PrinterGfxPrefs>() - 38usize];
248    ["Size of PrinterPSPrefs"][::core::mem::size_of::<PrinterPSPrefs>() - 124usize];
249    ["Size of PrinterSegment"][::core::mem::size_of::<PrinterSegment>() - 90usize]; // fixed for NDK3.2
250    ["Size of PrinterTxtPrefs"][::core::mem::size_of::<PrinterTxtPrefs>() - 64usize];
251    ["Size of PrinterUnitPrefs"][::core::mem::size_of::<PrinterUnitPrefs>() - 56usize];
252    ["Size of Process"][::core::mem::size_of::<Process>() - 228usize];
253    ["Size of PropInfo"][::core::mem::size_of::<PropInfo>() - 22usize];
254    ["Size of PrtInfo"][::core::mem::size_of::<PrtInfo>() - 128usize]; // fixed for NDK3.2
255    ["Size of PubScreenNode"][::core::mem::size_of::<PubScreenNode>() - 30usize];
256    ["Size of QCode"][::core::mem::size_of::<QCode>() - 12usize];
257    ["Size of QueryHeader"][::core::mem::size_of::<QueryHeader>() - 16usize];
258    ["Size of RDArgs"][::core::mem::size_of::<RDArgs>() - 32usize];
259    ["Size of RGBTable"][::core::mem::size_of::<RGBTable>() - 4usize];
260    ["Size of RMSF"][::core::mem::size_of::<RMSF>() - 4usize];
261    ["Size of RasInfo"][::core::mem::size_of::<RasInfo>() - 12usize];
262    ["Size of RastPort"][::core::mem::size_of::<RastPort>() - 100usize];
263    ["Size of RealTimeBase"][::core::mem::size_of::<RealTimeBase>() - 48usize];
264    ["Size of RecordLock"][::core::mem::size_of::<RecordLock>() - 16usize];
265    ["Size of Rect32"][::core::mem::size_of::<Rect32>() - 16usize];
266    ["Size of Rectangle"][::core::mem::size_of::<Rectangle>() - 8usize];
267    ["Size of Region"][::core::mem::size_of::<Region>() - 12usize];
268    ["Size of RegionRectangle"][::core::mem::size_of::<RegionRectangle>() - 16usize];
269    ["Size of Remember"][::core::mem::size_of::<Remember>() - 12usize];
270    ["Size of Requester"][::core::mem::size_of::<Requester>() - 112usize];
271    ["Size of Resident"][::core::mem::size_of::<Resident>() - 26usize];
272    ["Size of RexxArg"][::core::mem::size_of::<RexxArg>() - 16usize];
273    ["Size of RexxMsg"][::core::mem::size_of::<RexxMsg>() - 128usize];
274    ["Size of RexxMsgPort"][::core::mem::size_of::<RexxMsgPort>() - 80usize];
275    ["Size of RexxRsrc"][::core::mem::size_of::<RexxRsrc>() - 32usize];
276    ["Size of RexxTask"][::core::mem::size_of::<RexxTask>() - 330usize];
277    ["Size of RigidDiskBlock"][::core::mem::size_of::<RigidDiskBlock>() - 256usize];
278    ["Size of RootNode"][::core::mem::size_of::<RootNode>() - 56usize];
279    ["Size of RxsLib"][::core::mem::size_of::<RxsLib>() - 256usize]; // fixed for NDK3.2
280    ["Size of SCSICmd"][::core::mem::size_of::<SCSICmd>() - 30usize];
281    ["Size of SGWork"][::core::mem::size_of::<SGWork>() - 44usize];
282    ["Size of SatisfyMsg"][::core::mem::size_of::<SatisfyMsg>() - 26usize];
283    ["Size of Screen"][::core::mem::size_of::<Screen>() - 346usize];
284    ["Size of ScreenBuffer"][::core::mem::size_of::<ScreenBuffer>() - 8usize];
285    ["Size of ScreenModePrefs"][::core::mem::size_of::<ScreenModePrefs>() - 28usize];
286    ["Size of ScreenModeRequester"][::core::mem::size_of::<ScreenModeRequester>() - 48usize];
287    ["Size of Segment"][::core::mem::size_of::<Segment>() - 16usize];
288    ["Size of Semaphore"][::core::mem::size_of::<Semaphore>() - 36usize];
289    ["Size of SemaphoreMessage"][::core::mem::size_of::<SemaphoreMessage>() - 24usize];
290    ["Size of SemaphoreRequest"][::core::mem::size_of::<SemaphoreRequest>() - 12usize];
291    ["Size of SerialPrefs"][::core::mem::size_of::<SerialPrefs>() - 34usize];
292    ["Size of SignalSemaphore"][::core::mem::size_of::<SignalSemaphore>() - 46usize];
293    ["Size of SimpleSprite"][::core::mem::size_of::<SimpleSprite>() - 12usize];
294    ["Size of SoftIntList"][::core::mem::size_of::<SoftIntList>() - 16usize];
295    ["Size of SoundPrefs"][::core::mem::size_of::<SoundPrefs>() - 284usize];
296    ["Size of SpecialMonitor"][::core::mem::size_of::<SpecialMonitor>() - 58usize];
297    //["Size of SpriteDef"][::core::mem::size_of::<SpriteDef>() - 8usize]; // not found in NDK3.2
298    ["Size of SrcNode"][::core::mem::size_of::<SrcNode>() - 16usize];
299    ["Size of StackSwapStruct"][::core::mem::size_of::<StackSwapStruct>() - 12usize];
300    ["Size of StandardPacket"][::core::mem::size_of::<StandardPacket>() - 68usize];
301    ["Size of StoredProperty"][::core::mem::size_of::<StoredProperty>() - 8usize];
302    ["Size of StringExtend"][::core::mem::size_of::<StringExtend>() - 36usize];
303    ["Size of StringInfo"][::core::mem::size_of::<StringInfo>() - 36usize];
304    ["Size of TAvailFonts"][::core::mem::size_of::<TAvailFonts>() - 14usize];
305    ["Size of TDU_PublicUnit"][::core::mem::size_of::<TDU_PublicUnit>() - 72usize]; // fixed for NDK3.2
306    ["Size of TFontContents"][::core::mem::size_of::<TFontContents>() - 260usize];
307    ["Size of TOCEntry"][::core::mem::size_of::<TOCEntry>() - 6usize];
308    ["Size of TOCSummary"][::core::mem::size_of::<TOCSummary>() - 6usize];
309    ["Size of TP_AmigaXIP"][::core::mem::size_of::<TP_AmigaXIP>() - 8usize];
310    ["Size of TTextAttr"][::core::mem::size_of::<TTextAttr>() - 12usize];
311    ["Size of TabletData"][::core::mem::size_of::<TabletData>() - 24usize];
312    ["Size of TabletHookData"][::core::mem::size_of::<TabletHookData>() - 16usize];
313    ["Size of TagItem"][::core::mem::size_of::<TagItem>() - 8usize];
314    ["Size of Task"][::core::mem::size_of::<Task>() - 92usize];
315    ["Size of TextAttr"][::core::mem::size_of::<TextAttr>() - 8usize];
316    ["Size of TextExtent"][::core::mem::size_of::<TextExtent>() - 12usize];
317    ["Size of TextFont"][::core::mem::size_of::<TextFont>() - 52usize];
318    ["Size of TextFontExtension"][::core::mem::size_of::<TextFontExtension>() - 24usize];
319    ["Size of TmpRas"][::core::mem::size_of::<TmpRas>() - 8usize];
320    ["Size of Tool"][::core::mem::size_of::<Tool>() - 8usize];
321    ["Size of ToolNode"][::core::mem::size_of::<ToolNode>() - 26usize];
322    ["Size of UCopList"][::core::mem::size_of::<UCopList>() - 12usize];
323    ["Size of Unit"][::core::mem::size_of::<Unit>() - 38usize];
324    ["Size of UtilityBase"][::core::mem::size_of::<UtilityBase>() - 36usize];
325    ["Size of VSprite"][::core::mem::size_of::<VSprite>() - 60usize];
326    ["Size of VecInfo"][::core::mem::size_of::<VecInfo>() - 40usize];
327    ["Size of View"][::core::mem::size_of::<View>() - 18usize];
328    ["Size of ViewExtra"][::core::mem::size_of::<ViewExtra>() - 34usize];
329    ["Size of ViewPort"][::core::mem::size_of::<ViewPort>() - 40usize];
330    ["Size of ViewPortExtra"][::core::mem::size_of::<ViewPortExtra>() - 66usize];
331    ["Size of VoiceHeader"][::core::mem::size_of::<VoiceHeader>() - 20usize];
332    ["Size of WBArg"][::core::mem::size_of::<WBArg>() - 8usize];
333    ["Size of WBPatternPrefs"][::core::mem::size_of::<WBPatternPrefs>() - 24usize];
334    ["Size of WBStartup"][::core::mem::size_of::<WBStartup>() - 40usize];
335    ["Size of Window"][::core::mem::size_of::<Window>() - 136usize];
336    ["Size of XRef"][::core::mem::size_of::<XRef>() - 40usize]; // fixed for NDK3.2
337    ["Size of _Object"][::core::mem::size_of::<_Object>() - 12usize];
338    ["Size of adtFrame"][::core::mem::size_of::<adtFrame>() - 40usize];
339    ["Size of adtStart"][::core::mem::size_of::<adtStart>() - 8usize];
340    ["Size of bltnode"][::core::mem::size_of::<bltnode>() - 18usize];
341    ["Size of collTable"][::core::mem::size_of::<collTable>() - 64usize];
342    ["Size of copinit"][::core::mem::size_of::<copinit>() - 192usize];
343    ["Size of cprlist"][::core::mem::size_of::<cprlist>() - 10usize];
344    ["Size of dtDraw"][::core::mem::size_of::<dtDraw>() - 36usize];
345    ["Size of dtFrameBox"][::core::mem::size_of::<dtFrameBox>() - 24usize];
346    ["Size of dtGeneral"][::core::mem::size_of::<dtGeneral>() - 8usize];
347    ["Size of dtGoto"][::core::mem::size_of::<dtGoto>() - 16usize];
348    ["Size of dtPrint"][::core::mem::size_of::<dtPrint>() - 16usize];
349    ["Size of dtSelect"][::core::mem::size_of::<dtSelect>() - 16usize];
350    ["Size of dtTrigger"][::core::mem::size_of::<dtTrigger>() - 16usize];
351    ["Size of dtWrite"][::core::mem::size_of::<dtWrite>() - 20usize];
352    ["Size of gpGoInactive"][::core::mem::size_of::<gpGoInactive>() - 12usize];
353    ["Size of gpHitTest"][::core::mem::size_of::<gpHitTest>() - 12usize];
354    ["Size of gpInput"][::core::mem::size_of::<gpInput>() - 24usize];
355    ["Size of gpLayout"][::core::mem::size_of::<gpLayout>() - 12usize];
356    ["Size of gpRender"][::core::mem::size_of::<gpRender>() - 16usize];
357    ["Size of impDraw"][::core::mem::size_of::<impDraw>() - 24usize];
358    ["Size of impErase"][::core::mem::size_of::<impErase>() - 16usize];
359    ["Size of impFrameBox"][::core::mem::size_of::<impFrameBox>() - 20usize];
360    ["Size of impHitTest"][::core::mem::size_of::<impHitTest>() - 12usize];
361    ["Size of mouth_rb"][::core::mem::size_of::<mouth_rb>() - 92usize];
362    ["Size of narrator_rb"][::core::mem::size_of::<narrator_rb>() - 88usize];
363    ["Size of opAddTail"][::core::mem::size_of::<opAddTail>() - 8usize];
364    ["Size of opExpungeNode"][::core::mem::size_of::<opExpungeNode>() - 8usize];
365    ["Size of opFindHost"][::core::mem::size_of::<opFindHost>() - 28usize];
366    ["Size of opGet"][::core::mem::size_of::<opGet>() - 12usize];
367    ["Size of opMember"][::core::mem::size_of::<opMember>() - 8usize];
368    ["Size of opNodeIO"][::core::mem::size_of::<opNodeIO>() - 28usize];
369    ["Size of opSet"][::core::mem::size_of::<opSet>() - 12usize];
370    ["Size of opUpdate"][::core::mem::size_of::<opUpdate>() - 16usize];
371    ["Size of pmState"][::core::mem::size_of::<pmState>() - 8usize];
372    ["Size of pmTime"][::core::mem::size_of::<pmTime>() - 8usize];
373    ["Size of timerequest"][::core::mem::size_of::<timerequest>() - 40usize];
374    ["Size of timeval"][::core::mem::size_of::<timeval>() - 8usize];
375    ["Size of CDTOC"][::core::mem::size_of::<CDTOC>() - 6usize];
376    ["Size of LSNMSF"][::core::mem::size_of::<LSNMSF>() - 4usize];
377    ["Size of colorEntry"][::core::mem::size_of::<colorEntry>() - 4usize];
378    ["Size of printerIO"][::core::mem::size_of::<printerIO>() - 62usize];
379};