Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

671 lines
20 KiB

  1. /*
  2. File: Aliases.h
  3. Contains: Alias Manager Interfaces.
  4. Version: QuickTime 7.3
  5. Copyright: (c) 2007 (c) 1989-2001 by Apple Computer, Inc., all rights reserved
  6. Bugs?: For bug reports, consult the following page on
  7. the World Wide Web:
  8. http://developer.apple.com/bugreporter/
  9. */
  10. #ifndef __ALIASES__
  11. #define __ALIASES__
  12. #ifndef __MACTYPES__
  13. #include <MacTypes.h>
  14. #endif
  15. #ifndef __FILES__
  16. #include <Files.h>
  17. #endif
  18. #if PRAGMA_ONCE
  19. #pragma once
  20. #endif
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24. #if PRAGMA_IMPORT
  25. #pragma import on
  26. #endif
  27. #if PRAGMA_STRUCT_ALIGN
  28. #pragma options align=mac68k
  29. #elif PRAGMA_STRUCT_PACKPUSH
  30. #pragma pack(push, 2)
  31. #elif PRAGMA_STRUCT_PACK
  32. #pragma pack(2)
  33. #endif
  34. typedef UInt32 FSAliasInfoBitmap;
  35. enum {
  36. kFSAliasInfoNone = 0x00000000, /* no valid info*/
  37. kFSAliasInfoVolumeCreateDate = 0x00000001, /* volume creation date is valid*/
  38. kFSAliasInfoTargetCreateDate = 0x00000002, /* target creation date is valid*/
  39. kFSAliasInfoFinderInfo = 0x00000004, /* file type and creator are valid*/
  40. kFSAliasInfoIsDirectory = 0x00000008, /* isDirectory boolean is valid*/
  41. kFSAliasInfoIDs = 0x00000010, /* parentDirID and nodeID are valid*/
  42. kFSAliasInfoFSInfo = 0x00000020, /* filesystemID and signature are valid*/
  43. kFSAliasInfoVolumeFlags = 0x00000040 /* volumeIsBootVolume, volumeIsAutomounted, volumeIsEjectable and volumeHasPersistentFileIDs are valid*/
  44. };
  45. enum {
  46. rAliasType = FOUR_CHAR_CODE('alis') /* Aliases are stored as resources of this type */
  47. };
  48. enum {
  49. /* define alias resolution action rules mask */
  50. kARMMountVol = 0x00000001, /* mount the volume automatically */
  51. kARMNoUI = 0x00000002, /* no user interface allowed during resolution */
  52. kARMMultVols = 0x00000008, /* search on multiple volumes */
  53. kARMSearch = 0x00000100, /* search quickly */
  54. kARMSearchMore = 0x00000200, /* search further */
  55. kARMSearchRelFirst = 0x00000400, /* search target on a relative path first */
  56. kARMTryFileIDFirst = 0x00000800 /* search by file id before path */
  57. };
  58. enum {
  59. /* define alias record information types */
  60. asiZoneName = -3, /* get zone name */
  61. asiServerName = -2, /* get server name */
  62. asiVolumeName = -1, /* get volume name */
  63. asiAliasName = 0, /* get aliased file/folder/volume name */
  64. asiParentName = 1 /* get parent folder name */
  65. };
  66. /* ResolveAliasFileWithMountFlags options */
  67. enum {
  68. kResolveAliasFileNoUI = 0x00000001, /* no user interaction during resolution */
  69. kResolveAliasTryFileIDFirst = 0x00000002 /* search by file id before path */
  70. };
  71. /* define the alias record that will be the blackbox for the caller */
  72. struct AliasRecord {
  73. OSType userType; /* appl stored type like creator type */
  74. unsigned short aliasSize; /* alias record size in bytes, for appl usage */
  75. };
  76. typedef struct AliasRecord AliasRecord;
  77. typedef AliasRecord * AliasPtr;
  78. typedef AliasPtr * AliasHandle;
  79. /* info block to pass to FSCopyAliasInfo */
  80. struct FSAliasInfo {
  81. UTCDateTime volumeCreateDate;
  82. UTCDateTime targetCreateDate;
  83. OSType fileType;
  84. OSType fileCreator;
  85. UInt32 parentDirID;
  86. UInt32 nodeID;
  87. UInt16 filesystemID;
  88. UInt16 signature;
  89. Boolean volumeIsBootVolume;
  90. Boolean volumeIsAutomounted;
  91. Boolean volumeIsEjectable;
  92. Boolean volumeHasPersistentFileIDs;
  93. Boolean isDirectory;
  94. };
  95. typedef struct FSAliasInfo FSAliasInfo;
  96. typedef FSAliasInfo * FSAliasInfoPtr;
  97. /* alias record information type */
  98. typedef short AliasInfoType;
  99. /*
  100. * NewAlias()
  101. *
  102. * Summary:
  103. * create a new alias between fromFile and target, returns alias
  104. * record handle
  105. *
  106. * Availability:
  107. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  108. * CarbonLib: in CarbonLib 1.0 and later
  109. * Mac OS X: in version 10.0 and later
  110. */
  111. EXTERN_API( OSErr )
  112. NewAlias(
  113. const FSSpec * fromFile, /* can be NULL */
  114. const FSSpec * target,
  115. AliasHandle * alias) TWOWORDINLINE(0x7002, 0xA823);
  116. /*
  117. * NewAliasMinimal()
  118. *
  119. * Summary:
  120. * create a minimal new alias for a target and return alias record
  121. * handle
  122. *
  123. * Availability:
  124. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  125. * CarbonLib: in CarbonLib 1.0 and later
  126. * Mac OS X: in version 10.0 and later
  127. */
  128. EXTERN_API( OSErr )
  129. NewAliasMinimal(
  130. const FSSpec * target,
  131. AliasHandle * alias) TWOWORDINLINE(0x7008, 0xA823);
  132. /*
  133. * NewAliasMinimalFromFullPath()
  134. *
  135. * Summary:
  136. * create a minimal new alias from a target fullpath (optional zone
  137. * and server name) and return alias record handle
  138. *
  139. * Availability:
  140. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  141. * CarbonLib: in CarbonLib 1.0 and later
  142. * Mac OS X: in version 10.0 and later
  143. */
  144. EXTERN_API( OSErr )
  145. NewAliasMinimalFromFullPath(
  146. short fullPathLength,
  147. const void * fullPath,
  148. ConstStr32Param zoneName,
  149. ConstStr31Param serverName,
  150. AliasHandle * alias) TWOWORDINLINE(0x7009, 0xA823);
  151. /*
  152. * ResolveAlias()
  153. *
  154. * Summary:
  155. * given an alias handle and fromFile, resolve the alias, update the
  156. * alias record and return aliased filename and wasChanged flag.
  157. *
  158. * Availability:
  159. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  160. * CarbonLib: in CarbonLib 1.0 and later
  161. * Mac OS X: in version 10.0 and later
  162. */
  163. EXTERN_API( OSErr )
  164. ResolveAlias(
  165. const FSSpec * fromFile, /* can be NULL */
  166. AliasHandle alias,
  167. FSSpec * target,
  168. Boolean * wasChanged) TWOWORDINLINE(0x7003, 0xA823);
  169. /*
  170. * GetAliasInfo()
  171. *
  172. * Summary:
  173. * given an alias handle and an index specifying requested alias
  174. * information type, return the information from alias record as a
  175. * string.
  176. *
  177. * Availability:
  178. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  179. * CarbonLib: in CarbonLib 1.0 and later
  180. * Mac OS X: in version 10.0 and later
  181. */
  182. EXTERN_API( OSErr )
  183. GetAliasInfo(
  184. AliasHandle alias,
  185. AliasInfoType index,
  186. Str63 theString) TWOWORDINLINE(0x7007, 0xA823);
  187. /*
  188. * IsAliasFile()
  189. *
  190. * Availability:
  191. * Non-Carbon CFM: in InterfaceLib 8.5 and later
  192. * CarbonLib: in CarbonLib 1.0 and later
  193. * Mac OS X: in version 10.0 and later
  194. */
  195. EXTERN_API( OSErr )
  196. IsAliasFile(
  197. const FSSpec * fileFSSpec,
  198. Boolean * aliasFileFlag,
  199. Boolean * folderFlag) TWOWORDINLINE(0x702A, 0xA823);
  200. /*
  201. * ResolveAliasWithMountFlags()
  202. *
  203. * Availability:
  204. * Non-Carbon CFM: in InterfaceLib 8.5 and later
  205. * CarbonLib: in CarbonLib 1.0 and later
  206. * Mac OS X: in version 10.0 and later
  207. */
  208. EXTERN_API( OSErr )
  209. ResolveAliasWithMountFlags(
  210. const FSSpec * fromFile, /* can be NULL */
  211. AliasHandle alias,
  212. FSSpec * target,
  213. Boolean * wasChanged,
  214. unsigned long mountFlags) TWOWORDINLINE(0x702B, 0xA823);
  215. /*
  216. * ResolveAliasFile()
  217. *
  218. * Summary:
  219. * Given a file spec, return target file spec if input file spec is
  220. * an alias. It resolves the entire alias chain or one step of the
  221. * chain. It returns info about whether the target is a folder or
  222. * file; and whether the input file spec was an alias or not.
  223. *
  224. * Availability:
  225. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  226. * CarbonLib: in CarbonLib 1.0 and later
  227. * Mac OS X: in version 10.0 and later
  228. */
  229. EXTERN_API( OSErr )
  230. ResolveAliasFile(
  231. FSSpec * theSpec,
  232. Boolean resolveAliasChains,
  233. Boolean * targetIsFolder,
  234. Boolean * wasAliased) TWOWORDINLINE(0x700C, 0xA823);
  235. /*
  236. * ResolveAliasFileWithMountFlags()
  237. *
  238. * Availability:
  239. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  240. * CarbonLib: in CarbonLib 1.0 and later
  241. * Mac OS X: in version 10.0 and later
  242. */
  243. EXTERN_API( OSErr )
  244. ResolveAliasFileWithMountFlags(
  245. FSSpec * theSpec,
  246. Boolean resolveAliasChains,
  247. Boolean * targetIsFolder,
  248. Boolean * wasAliased,
  249. unsigned long mountFlags) TWOWORDINLINE(0x7029, 0xA823);
  250. /*
  251. * FollowFinderAlias()
  252. *
  253. * Availability:
  254. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  255. * CarbonLib: in CarbonLib 1.0 and later
  256. * Mac OS X: in version 10.0 and later
  257. */
  258. EXTERN_API( OSErr )
  259. FollowFinderAlias(
  260. const FSSpec * fromFile, /* can be NULL */
  261. AliasHandle alias,
  262. Boolean logon,
  263. FSSpec * target,
  264. Boolean * wasChanged) TWOWORDINLINE(0x700F, 0xA823);
  265. /*
  266. Low Level Routines
  267. */
  268. /*
  269. * UpdateAlias()
  270. *
  271. * Summary:
  272. * given a fromFile-target pair and an alias handle, update the
  273. * alias record pointed to by alias handle to represent target as
  274. * the new alias.
  275. *
  276. * Availability:
  277. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  278. * CarbonLib: in CarbonLib 1.0 and later
  279. * Mac OS X: in version 10.0 and later
  280. */
  281. EXTERN_API( OSErr )
  282. UpdateAlias(
  283. const FSSpec * fromFile, /* can be NULL */
  284. const FSSpec * target,
  285. AliasHandle alias,
  286. Boolean * wasChanged) TWOWORDINLINE(0x7006, 0xA823);
  287. typedef CALLBACK_API( Boolean , AliasFilterProcPtr )(CInfoPBPtr cpbPtr, Boolean *quitFlag, Ptr myDataPtr);
  288. typedef STACK_UPP_TYPE(AliasFilterProcPtr) AliasFilterUPP;
  289. /*
  290. * NewAliasFilterUPP()
  291. *
  292. * Availability:
  293. * Non-Carbon CFM: available as macro/inline
  294. * CarbonLib: in CarbonLib 1.0 and later
  295. * Mac OS X: in version 10.0 and later
  296. */
  297. EXTERN_API_C( AliasFilterUPP )
  298. NewAliasFilterUPP(AliasFilterProcPtr userRoutine);
  299. #if !OPAQUE_UPP_TYPES
  300. enum { uppAliasFilterProcInfo = 0x00000FD0 }; /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes) */
  301. #ifdef __cplusplus
  302. inline DEFINE_API_C(AliasFilterUPP) NewAliasFilterUPP(AliasFilterProcPtr userRoutine) { return (AliasFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppAliasFilterProcInfo, GetCurrentArchitecture()); }
  303. #else
  304. #define NewAliasFilterUPP(userRoutine) (AliasFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppAliasFilterProcInfo, GetCurrentArchitecture())
  305. #endif
  306. #endif
  307. /*
  308. * DisposeAliasFilterUPP()
  309. *
  310. * Availability:
  311. * Non-Carbon CFM: available as macro/inline
  312. * CarbonLib: in CarbonLib 1.0 and later
  313. * Mac OS X: in version 10.0 and later
  314. */
  315. EXTERN_API_C( void )
  316. DisposeAliasFilterUPP(AliasFilterUPP userUPP);
  317. #if !OPAQUE_UPP_TYPES
  318. #ifdef __cplusplus
  319. inline DEFINE_API_C(void) DisposeAliasFilterUPP(AliasFilterUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
  320. #else
  321. #define DisposeAliasFilterUPP(userUPP) DisposeRoutineDescriptor(userUPP)
  322. #endif
  323. #endif
  324. /*
  325. * InvokeAliasFilterUPP()
  326. *
  327. * Availability:
  328. * Non-Carbon CFM: available as macro/inline
  329. * CarbonLib: in CarbonLib 1.0 and later
  330. * Mac OS X: in version 10.0 and later
  331. */
  332. EXTERN_API_C( Boolean )
  333. InvokeAliasFilterUPP(
  334. CInfoPBPtr cpbPtr,
  335. Boolean * quitFlag,
  336. Ptr myDataPtr,
  337. AliasFilterUPP userUPP);
  338. #if !OPAQUE_UPP_TYPES
  339. #ifdef __cplusplus
  340. inline DEFINE_API_C(Boolean) InvokeAliasFilterUPP(CInfoPBPtr cpbPtr, Boolean * quitFlag, Ptr myDataPtr, AliasFilterUPP userUPP) { return (Boolean)CALL_THREE_PARAMETER_UPP(userUPP, uppAliasFilterProcInfo, cpbPtr, quitFlag, myDataPtr); }
  341. #else
  342. #define InvokeAliasFilterUPP(cpbPtr, quitFlag, myDataPtr, userUPP) (Boolean)CALL_THREE_PARAMETER_UPP((userUPP), uppAliasFilterProcInfo, (cpbPtr), (quitFlag), (myDataPtr))
  343. #endif
  344. #endif
  345. #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
  346. /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
  347. #define NewAliasFilterProc(userRoutine) NewAliasFilterUPP(userRoutine)
  348. #define CallAliasFilterProc(userRoutine, cpbPtr, quitFlag, myDataPtr) InvokeAliasFilterUPP(cpbPtr, quitFlag, myDataPtr, userRoutine)
  349. #endif /* CALL_NOT_IN_CARBON */
  350. /*
  351. * MatchAlias()
  352. *
  353. * Summary:
  354. * Given an alias handle and fromFile, match the alias and return
  355. * FSSpecs to the aliased file(s) and needsUpdate flag
  356. *
  357. * Availability:
  358. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  359. * CarbonLib: in CarbonLib 1.0 and later
  360. * Mac OS X: in version 10.0 and later
  361. */
  362. EXTERN_API( OSErr )
  363. MatchAlias(
  364. const FSSpec * fromFile, /* can be NULL */
  365. unsigned long rulesMask,
  366. AliasHandle alias,
  367. short * aliasCount,
  368. FSSpecArrayPtr aliasList,
  369. Boolean * needsUpdate,
  370. AliasFilterUPP aliasFilter,
  371. void * yourDataPtr) TWOWORDINLINE(0x7005, 0xA823);
  372. /*
  373. * ResolveAliasFileWithMountFlagsNoUI()
  374. *
  375. * Summary:
  376. * variation on ResolveAliasFile that does not prompt user with a
  377. * dialog
  378. *
  379. * Availability:
  380. * Non-Carbon CFM: not available
  381. * CarbonLib: in CarbonLib 1.0 and later
  382. * Mac OS X: in version 10.0 and later
  383. */
  384. EXTERN_API( OSErr )
  385. ResolveAliasFileWithMountFlagsNoUI(
  386. FSSpec * theSpec,
  387. Boolean resolveAliasChains,
  388. Boolean * targetIsFolder,
  389. Boolean * wasAliased,
  390. unsigned long mountFlags);
  391. /*
  392. * MatchAliasNoUI()
  393. *
  394. * Summary:
  395. * variation on MatchAlias that does not prompt user with a dialog
  396. *
  397. * Availability:
  398. * Non-Carbon CFM: not available
  399. * CarbonLib: in CarbonLib 1.0 and later
  400. * Mac OS X: in version 10.0 and later
  401. */
  402. EXTERN_API( OSErr )
  403. MatchAliasNoUI(
  404. const FSSpec * fromFile, /* can be NULL */
  405. unsigned long rulesMask,
  406. AliasHandle alias,
  407. short * aliasCount,
  408. FSSpecArrayPtr aliasList,
  409. Boolean * needsUpdate,
  410. AliasFilterUPP aliasFilter,
  411. void * yourDataPtr);
  412. /*
  413. * FSNewAliasUnicode()
  414. *
  415. * Summary:
  416. * Creates an alias given a ref to the target's parent directory and
  417. * the target's unicode name. If the target does not exist fnfErr
  418. * will be returned but the alias will still be created. This
  419. * allows the creation of aliases to targets that do not exist.
  420. *
  421. * Parameters:
  422. *
  423. * fromFile:
  424. * The starting point for a relative search.
  425. *
  426. * targetParentRef:
  427. * An FSRef to the parent directory of the target.
  428. *
  429. * targetNameLength:
  430. * Number of Unicode characters in the target's name.
  431. *
  432. * targetName:
  433. * A pointer to the Unicode name.
  434. *
  435. * inAlias:
  436. * A Handle to the newly created alias record.
  437. *
  438. * isDirectory:
  439. * On input, if target does not exist, a flag to indicate whether
  440. * or not the target is a directory. On output, if the target did
  441. * exist, an flag indicating if the target is a directory. Pass
  442. * NULL in the non-existant case if unsure.
  443. *
  444. * Availability:
  445. * Non-Carbon CFM: not available
  446. * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
  447. * Mac OS X: in version 10.2 and later
  448. */
  449. EXTERN_API_C( OSErr )
  450. FSNewAliasUnicode(
  451. const FSRef * fromFile, /* can be NULL */
  452. const FSRef * targetParentRef,
  453. UniCharCount targetNameLength,
  454. const UniChar * targetName,
  455. AliasHandle * inAlias,
  456. Boolean * isDirectory); /* can be NULL */
  457. /*
  458. * FSNewAliasMinimalUnicode()
  459. *
  460. * Summary:
  461. * Creates a minimal alias given a ref to the target's parent
  462. * directory and the target's unicode name. If the target does not
  463. * exist fnfErr will be returned but the alias will still be created.
  464. *
  465. * Parameters:
  466. *
  467. * targetParentRef:
  468. * An FSRef to the parent directory of the target.
  469. *
  470. * targetNameLength:
  471. * Number of Unicode characters in the target's name.
  472. *
  473. * targetName:
  474. * A pointer to the Unicode name.
  475. *
  476. * inAlias:
  477. * A Handle to the newly created alias record.
  478. *
  479. * isDirectory:
  480. * On input, if target does not exist, a flag to indicate whether
  481. * or not the
  482. *
  483. * Availability:
  484. * Non-Carbon CFM: not available
  485. * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
  486. * Mac OS X: in version 10.2 and later
  487. */
  488. EXTERN_API_C( OSErr )
  489. FSNewAliasMinimalUnicode(
  490. const FSRef * targetParentRef,
  491. UniCharCount targetNameLength,
  492. const UniChar * targetName,
  493. AliasHandle * inAlias,
  494. Boolean * isDirectory); /* can be NULL */
  495. /*
  496. * FSMatchAlias()
  497. *
  498. * Summary:
  499. * Given an alias handle and fromFile, match the alias and return
  500. * FSRefs to the aliased file(s) and needsUpdate flag
  501. *
  502. * Availability:
  503. * Non-Carbon CFM: not available
  504. * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
  505. * Mac OS X: in version 10.2 and later
  506. */
  507. EXTERN_API_C( OSErr )
  508. FSMatchAlias(
  509. const FSRef * fromFile, /* can be NULL */
  510. unsigned long rulesMask,
  511. AliasHandle inAlias,
  512. short * aliasCount,
  513. FSRef * aliasList,
  514. Boolean * needsUpdate,
  515. AliasFilterUPP aliasFilter,
  516. void * yourDataPtr);
  517. /*
  518. * FSMatchAliasNoUI()
  519. *
  520. * Summary:
  521. * variation on FSMatchAlias that does not prompt user with a dialog
  522. *
  523. * Availability:
  524. * Non-Carbon CFM: not available
  525. * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
  526. * Mac OS X: in version 10.2 and later
  527. */
  528. EXTERN_API_C( OSErr )
  529. FSMatchAliasNoUI(
  530. const FSRef * fromFile, /* can be NULL */
  531. unsigned long rulesMask,
  532. AliasHandle inAlias,
  533. short * aliasCount,
  534. FSRef * aliasList,
  535. Boolean * needsUpdate,
  536. AliasFilterUPP aliasFilter,
  537. void * yourDataPtr);
  538. /*
  539. * FSCopyAliasInfo()
  540. *
  541. * Discussion:
  542. * This routine will return the requested information from the
  543. * passed in aliasHandle. The information is gathered only from the
  544. * alias record so it may not match what is on disk (no disk i/o is
  545. * performed). The whichInfo paramter is an output parameter that
  546. * signifies which fields in the info record contain valid data.
  547. *
  548. * Parameters:
  549. *
  550. * inAlias:
  551. * A handle to the alias record to get the information from.
  552. *
  553. * targetName:
  554. * The name of the target item.
  555. *
  556. * volumeName:
  557. * The name of the volume the target resides on.
  558. *
  559. * pathString:
  560. * POSIX path to target.
  561. *
  562. * whichInfo:
  563. * An indication of which fields in the info block contain valid
  564. * data.
  565. *
  566. * info:
  567. * Returned information about the alias.
  568. *
  569. * Availability:
  570. * Non-Carbon CFM: not available
  571. * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
  572. * Mac OS X: in version 10.2 and later
  573. */
  574. EXTERN_API_C( OSStatus )
  575. FSCopyAliasInfo(
  576. AliasHandle inAlias,
  577. HFSUniStr255 * targetName, /* can be NULL */
  578. HFSUniStr255 * volumeName, /* can be NULL */
  579. CFStringRef * pathString, /* can be NULL */
  580. FSAliasInfoBitmap * whichInfo, /* can be NULL */
  581. FSAliasInfo * info); /* can be NULL */
  582. #if PRAGMA_STRUCT_ALIGN
  583. #pragma options align=reset
  584. #elif PRAGMA_STRUCT_PACKPUSH
  585. #pragma pack(pop)
  586. #elif PRAGMA_STRUCT_PACK
  587. #pragma pack()
  588. #endif
  589. #ifdef PRAGMA_IMPORT_OFF
  590. #pragma import off
  591. #elif PRAGMA_IMPORT
  592. #pragma import reset
  593. #endif
  594. #ifdef __cplusplus
  595. }
  596. #endif
  597. #endif /* __ALIASES__ */