Bläddra i källkod

* corrected version provided by Yuri Prokushev, the original author; fix for #40322

Tomas Hajny 1 år sedan
förälder
incheckning
52fdfcd8db
1 ändrade filer med 73 tillägg och 67 borttagningar
  1. 73 67
      packages/os2units/src/lvm.pas

+ 73 - 67
packages/os2units/src/lvm.pas

@@ -1,6 +1,6 @@
 {
    Copyright (c) International Business Machines  Corp., 2000
-   Copyright (c) 2003 Yuri Prokushev
+   Copyright (c) 2003,2023 Yuri Prokushev
 
    This module defines the interface to LVM.DLL, which is the
    engine that performs all of the disk partitioning/volume
@@ -26,18 +26,24 @@
 Unit LVM;
 {$ENDIF FPC_DOTTEDUNITS}
 
-{$PACKRECORDS C}
+{$PACKRECORDS 1}
 
 Interface
 
 {$ifdef os2}
   {$define lvm1}
+  {$define useordinals}
 {$endif}
 
 {$ifdef linux}
   { $define lvm2}
 {$endif}
 
+{$ifdef aix}
+  { $define lvm2}
+{$endif}
+
+
 // The number of bytes in a sector on the disk.
 const
   BYTES_PER_SECTOR=512;
@@ -719,7 +725,7 @@ const
 //*           LVM_Interface_Type of VIO_Interface.                                                   */
 //*                                                                                                  */
 //****************************************************************************************************/
-procedure Open_LVM_Engine(Ignore_CHS: BOOLEAN; Error_Code: PCARDINAL32); external 'lvm' name 'Open_LVM_Engine';
+procedure Open_LVM_Engine(Ignore_CHS: BOOLEAN; Error_Code: PCARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $0041;{$else}name 'Open_LVM_Engine';{$endif}
 
 //****************************************************************************************************/
 //*                                                                                                  */
@@ -809,7 +815,7 @@ procedure Open_LVM_Engine2(Ignore_CHS: BOOLEAN; Interface_Type: LVM_Interface_Ty
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-function Commit_Changes(Error_Code: PCARDINAL32): BOOLEAN; external 'lvm' name 'Commit_Changes';
+function Commit_Changes(Error_Code: PCARDINAL32): BOOLEAN; cdecl; external 'lvm' {$ifdef useordinals}index $0029;{$else}name 'Commit_Changes';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -891,7 +897,7 @@ procedure Set_Java_Call_Back(
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-procedure Close_LVM_Engine; external 'lvm' name 'Close_LVM_Engine';
+procedure Close_LVM_Engine; cdecl; external 'lvm' {$ifdef useordinals}index $0048;{$else}name 'Close_LVM_Engine';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -1016,7 +1022,7 @@ CARDINAL32 * Error_Code );
 //*                          this record will be filled in by the     */
 //*                          feature if it successfully parses the    */
 //*                          tokens.                                  */
-//*          AnsiChar ** Error_Message - The address of a pointer to AnsiChar.*/
+//*          char ** Error_Message - The address of a pointer to char.*/
 //*                          This will be set to NULL if the feature  */
 //*                          successfully parses the list of tokens,  */
 //*                          or it will be set to point to an error   */
@@ -1067,7 +1073,7 @@ CARDINAL32 * Error_Code );
 {$ifdef lvm2}
 void _System Parse_Feature_Parameters( DLIST                               Tokens,
 LVM_Feature_Specification_Record  * Feature_Data,
-AnsiChar **                             Error_Message,
+char **                             Error_Message,
 CARDINAL32 *                        Error_Code);
 {$endif}
 //*********************************************************************/
@@ -1097,7 +1103,7 @@ CARDINAL32 *                        Error_Code);
 //*           have changed.                                           */
 //*                                                                   */
 //*********************************************************************/
-procedure Refresh_LVM_Engine(Error_Code: PCARDINAL32); external 'lvm' name 'Refresh_LVM_Engine';
+procedure Refresh_LVM_Engine(Error_Code: PCARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $005B;{$else}name 'Refresh_LVM_Engine';{$endif}
 
 //****************************************************************************
 //
@@ -1138,7 +1144,7 @@ procedure Refresh_LVM_Engine(Error_Code: PCARDINAL32); external 'lvm' name 'Refr
 //*           free this memory when they are done using it.           */
 //*                                                                   */
 //*********************************************************************/
-function Get_Drive_Control_Data(Error_Code: PCARDINAL32): Drive_Control_Array; external 'lvm' name 'Get_Drive_Control_Data';
+function Get_Drive_Control_Data(Error_Code: PCARDINAL32): Drive_Control_Array; cdecl; external 'lvm' {$ifdef useordinals}index $0010;{$else}name 'Get_Drive_Control_Data';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -1167,7 +1173,7 @@ function Get_Drive_Control_Data(Error_Code: PCARDINAL32): Drive_Control_Array; e
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-function Get_Drive_Status(Drive_Handle: ADDRESS; Error_Code: PCARDINAL32): Drive_Information_Record; external 'lvm' name 'Get_Drive_Status';
+function Get_Drive_Status(Drive_Handle: ADDRESS; Error_Code: PCARDINAL32): Drive_Information_Record; cdecl; external 'lvm' {$ifdef useordinals}index $0054;{$else}name 'Get_Drive_Status';{$endif}
 
 //****************************************************************************
 //
@@ -1223,7 +1229,7 @@ function Get_Drive_Status(Drive_Handle: ADDRESS; Error_Code: PCARDINAL32): Drive
 //*           are done using it.                                      */
 //*                                                                   */
 //*********************************************************************/
-function Get_Partitions(Handle: ADDRESS; Error_Code: PCARDINAL32): Partition_Information_Array; external 'lvm' name 'Get_Partitions';
+function Get_Partitions(Handle: ADDRESS; Error_Code: PCARDINAL32): Partition_Information_Array; cdecl; external 'lvm' {$ifdef useordinals}index $0027;{$else}name 'Get_Partitions';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -1255,7 +1261,7 @@ function Get_Partitions(Handle: ADDRESS; Error_Code: PCARDINAL32): Partition_Inf
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-function Get_Partition_Handle(Serial_Number: CARDINAL32; Error_Code: PCARDINAL32): ADDRESS; external 'lvm' name 'Get_Partition_Handle';
+function Get_Partition_Handle(Serial_Number: CARDINAL32; Error_Code: PCARDINAL32): ADDRESS; cdecl; external 'lvm' {$ifdef useordinals}index $0001;{$else}name 'Get_Partition_Handle';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -1286,7 +1292,7 @@ function Get_Partition_Handle(Serial_Number: CARDINAL32; Error_Code: PCARDINAL32
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-function Get_Partition_Information(Partition_Handle: ADDRESS; Error_Code: PCARDINAL32): Partition_Information_Record; external 'lvm' name 'Get_Partition_Information';
+function Get_Partition_Information(Partition_Handle: ADDRESS; Error_Code: PCARDINAL32): Partition_Information_Record; cdecl; external 'lvm' {$ifdef useordinals}index $0036;{$else}name 'Get_Partition_Information';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -1298,7 +1304,7 @@ function Get_Partition_Information(Partition_Handle: ADDRESS; Error_Code: PCARDI
 //*                                   a block of free space.          */
 //*          CARDINAL32      Size - The size, in sectors, of the      */
 //*                                 partition to create.              */
-//*          AnsiChar            Name[] - The name to give to the newly   */
+//*          char            Name[] - The name to give to the newly   */
 //*                                   created partition.              */
 //*          Allocation_Algorithm algorithm - If Handle is a drive,   */
 //*                                           then the engine will    */
@@ -1373,7 +1379,7 @@ Bootable: BOOLEAN;
 Primary_Partition: BOOLEAN;
 Allocate_From_Start: BOOLEAN;
 Error_Code: PCARDINAL32
-): ADDRESS; external 'lvm' name 'Create_Partition';
+): ADDRESS; cdecl; external 'lvm' {$ifdef useordinals}index $004F;{$else}name 'Create_Partition';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -1408,7 +1414,7 @@ Error_Code: PCARDINAL32
 //*           volume!                                                 */
 //*                                                                   */
 //*********************************************************************/
-procedure Delete_Partition(Partition_Handle: ADDRESS; Error_Code: PCARDINAL32); external 'lvm' name 'Delete_Partition';
+procedure Delete_Partition(Partition_Handle: ADDRESS; Error_Code: PCARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $0051;{$else}name 'Delete_Partition';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -1446,7 +1452,7 @@ procedure Delete_Partition(Partition_Handle: ADDRESS; Error_Code: PCARDINAL32);
 procedure Set_Active_Flag(Partition_Handle: ADDRESS;
 Active_Flag: BYTE;
 Error_Code: PCARDINAL32
-); external 'lvm' name 'Set_Active_Flag';
+); cdecl; external 'lvm' {$ifdef useordinals}index $0045;{$else}name 'Set_Active_Flag';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -1488,7 +1494,7 @@ Error_Code: PCARDINAL32
 procedure Set_OS_Flag(Partition_Handle: ADDRESS;
 OS_Flag: BYTE;
 Error_Code: PCARDINAL32
-); external 'lvm' name 'Set_OS_Flag';
+); cdecl; external 'lvm' {$ifdef useordinals}index $0015;{$else}name 'Set_OS_Flag';{$endif}
 
 //****************************************************************************
 //
@@ -1537,7 +1543,7 @@ Error_Code: PCARDINAL32
 //*           free this memory when they are done using it.           */
 //*                                                                   */
 //*********************************************************************/
-function Get_Volume_Control_Data(Error_Code: PCARDINAL32): Volume_Control_Array; external 'lvm' name 'Get_Volume_Control_Data';
+function Get_Volume_Control_Data(Error_Code: PCARDINAL32): Volume_Control_Array; cdecl; external 'lvm' {$ifdef useordinals}index $0032;{$else}name 'Get_Volume_Control_Data';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -1569,7 +1575,7 @@ function Get_Volume_Control_Data(Error_Code: PCARDINAL32): Volume_Control_Array;
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-function Get_Volume_Information(Volume_Handle: ADDRESS; Error_Code: PCARDINAL32): Volume_Information_Record; external 'lvm' name 'Get_Volume_Information';
+function Get_Volume_Information(Volume_Handle: ADDRESS; Error_Code: PCARDINAL32): Volume_Information_Record; cdecl; external 'lvm' {$ifdef useordinals}index $0014;{$else}name 'Get_Volume_Information';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -1579,7 +1585,7 @@ function Get_Volume_Information(Volume_Handle: ADDRESS; Error_Code: PCARDINAL32)
 //*                      partitions.  The partitions are specified by */
 //*                      their corresponding handles.                 */
 //*                                                                   */
-//*   Input: AnsiChar         Name[] - The name to assign to the newly    */
+//*   Input: char         Name[] - The name to assign to the newly    */
 //*                                created volume.                    */
 //*          BOOLEAN      Create_LVM_Volume - If TRUE, then an LVM    */
 //*                                           volume is created,      */
@@ -1589,7 +1595,7 @@ function Get_Volume_Information(Volume_Handle: ADDRESS; Error_Code: PCARDINAL32)
 //*          BOOLEAN      Bootable - If TRUE, the volume will not be  */
 //*                                  created unless OS/2 can be booted*/
 //*                                  from it.                         */
-//*          AnsiChar         Drive_Letter_Preference - This is the drive */
+//*          char         Drive_Letter_Preference - This is the drive */
 //*                                                 letter to use for */
 //*                                                 accessing the     */
 //*                                                 newly created     */
@@ -1648,7 +1654,7 @@ FeaturesToUse: CARDINAL32;
 Partition_Count: CARDINAL32;
 Partition_Handles: Array of ADDRESS;
 Error_Code: PCARDINAL32
-); external 'lvm' name 'Create_Volume';
+); cdecl; external 'lvm' {$ifdef useordinals}index $001E;{$else}name 'Create_Volume';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -1658,7 +1664,7 @@ Error_Code: PCARDINAL32
 //*                      partitions.  The partitions are specified by */
 //*                      their corresponding handles.                 */
 //*                                                                   */
-//*   Input: AnsiChar         Name[] - The name to assign to the newly    */
+//*   Input: char         Name[] - The name to assign to the newly    */
 //*                                created volume.                    */
 //*          BOOLEAN      Create_LVM_Volume - If TRUE, then an LVM    */
 //*                                           volume is created,      */
@@ -1668,7 +1674,7 @@ Error_Code: PCARDINAL32
 //*          BOOLEAN      Bootable - If TRUE, the volume will not be  */
 //*                                  created unless OS/2 can be booted*/
 //*                                  from it.                         */
-//*          AnsiChar         Drive_Letter_Preference - This is the drive */
+//*          char         Drive_Letter_Preference - This is the drive */
 //*                                                 letter to use for */
 //*                                                 accessing the     */
 //*                                                 newly created     */
@@ -1728,7 +1734,7 @@ Error_Code: PCARDINAL32
 void _System Create_Volume2( AnsiChar                               Name[VOLUME_NAME_SIZE],
 BOOLEAN                            Create_LVM_Volume,
 BOOLEAN                            Bootable,
-AnsiChar                               Drive_Letter_Preference,
+char                               Drive_Letter_Preference,
 CARDINAL32                         Feature_Count,
 LVM_Feature_Specification_Record   FeaturesToUse[],
 CARDINAL32                         Partition_Count,
@@ -1775,7 +1781,7 @@ CARDINAL32 *                       Error_Code
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-procedure Delete_Volume(Volume_Handle: ADDRESS; Error_Code: PCARDINAL32); external 'lvm' name 'Delete_Volume';
+procedure Delete_Volume(Volume_Handle: ADDRESS; Error_Code: PCARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $001F;{$else}name 'Delete_Volume';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -1811,7 +1817,7 @@ procedure Delete_Volume(Volume_Handle: ADDRESS; Error_Code: PCARDINAL32); extern
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-procedure Hide_Volume(Volume_Handle: ADDRESS; Error_Code: PCARDINAL32); external 'lvm' name 'Hide_Volume';
+procedure Hide_Volume(Volume_Handle: ADDRESS; Error_Code: PCARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $000F;{$else}name 'Hide_Volume';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -1875,7 +1881,7 @@ procedure Expand_Volume(Volume_Handle: ADDRESS;
 Partition_Count: CARDINAL32;
 Partition_Handles: Array of ADDRESS;
 Error_Code: PCARDINAL32
-); external 'lvm' name 'Expand_Volume';
+); cdecl; external 'lvm' {$ifdef useordinals}index $0024;{$else}name 'Expand_Volume';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -1886,7 +1892,7 @@ Error_Code: PCARDINAL32
 //*   Input: ADDRESS Volume_Handle - The handle of the volume which   */
 //*                                  is to have its assigned drive    */
 //*                                  letter changed.                  */
-//*          AnsiChar  New_Drive_Preference - The new drive letter to     */
+//*          char  New_Drive_Preference - The new drive letter to     */
 //*                                       assign to the volume.       */
 //*          CARDINAL32 * Error_Code - The address of a CARDINAL32 in */
 //*                                    in which to store an error code*/
@@ -1916,7 +1922,7 @@ Error_Code: PCARDINAL32
 procedure Assign_Drive_Letter(Volume_Handle: ADDRESS;
 New_Drive_Preference: AnsiChar;
 Error_Code: PCARDINAL32
-); external 'lvm' name 'Assign_Drive_Letter';
+); cdecl; external 'lvm' {$ifdef useordinals}index $0004;{$else}name 'Assign_Drive_Letter';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -1948,7 +1954,7 @@ Error_Code: PCARDINAL32
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-procedure Set_Installable(Volume_Handle: ADDRESS; Error_Code: PCARDINAL32); external 'lvm' name 'Set_Installable';
+procedure Set_Installable(Volume_Handle: ADDRESS; Error_Code: PCARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $003F;{$else}name 'Set_Installable';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -1973,7 +1979,7 @@ procedure Set_Installable(Volume_Handle: ADDRESS; Error_Code: PCARDINAL32); exte
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-function Get_Installable_Volume(Error_Code: PCARDINAL32): Volume_Information_Record; external 'lvm' name 'Get_Installable_Volume';
+function Get_Installable_Volume(Error_Code: PCARDINAL32): Volume_Information_Record; cdecl; external 'lvm' {$ifdef useordinals}index $000E;{$else}name 'Get_Installable_Volume';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2040,7 +2046,7 @@ CARDINAL32 * Error_Code ) ;
 //*                                                                   */
 //*   Input: ADDRESS Handle - The handle of the drive, partition, or  */
 //*                           volume which is to have its name set.   */
-//*          AnsiChar New_Name[] - The new name for the drive/partition/  */
+//*          char New_Name[] - The new name for the drive/partition/  */
 //*                            volume.                                */
 //*          CARDINAL32 * Error_Code - The address of a CARDINAL32 in */
 //*                                    in which to store an error code*/
@@ -2063,7 +2069,7 @@ CARDINAL32 * Error_Code ) ;
 procedure Set_Name(Handle: ADDRESS;
 New_Name: Array of AnsiChar;
 Error_Code: PCARDINAL32
-); external 'lvm' name 'Set_Name';
+); cdecl; external 'lvm' {$ifdef useordinals}index $0062;{$else}name 'Set_Name';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2101,7 +2107,7 @@ Error_Code: PCARDINAL32
 //*********************************************************************/
 procedure Set_Startable(Handle: ADDRESS;
 Error_Code: PCARDINAL32
-); external 'lvm' name 'Set_Startable';
+); cdecl; external 'lvm' {$ifdef useordinals}index $0018;{$else}name 'Set_Startable';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2137,7 +2143,7 @@ Error_Code: PCARDINAL32
 //*           definitions.                                            */
 //*                                                                   */
 //*********************************************************************/
-function Get_Valid_Options(Handle: ADDRESS; Error_Code: PCARDINAL32): CARDINAL32; external 'lvm' name 'Get_Valid_Options';
+function Get_Valid_Options(Handle: ADDRESS; Error_Code: PCARDINAL32): CARDINAL32; cdecl; external 'lvm' {$ifdef useordinals}index $0056;{$else}name 'Get_Valid_Options';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2292,7 +2298,7 @@ Feature_Information_Array _System Get_Features( ADDRESS Handle, CARDINAL32 * Err
 type
   PBOOLEAN=^BOOLEAN;
 
-function Boot_Manager_Is_Installed(Active: PBOOLEAN; Error_Code: PCARDINAL32): BOOLEAN; external 'lvm' name 'Boot_Manager_Is_Installed';
+function Boot_Manager_Is_Installed(Active: PBOOLEAN; Error_Code: PCARDINAL32): BOOLEAN; cdecl; external 'lvm' {$ifdef useordinals}index $0030;{$else}name 'Boot_Manager_Is_Installed';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2317,7 +2323,7 @@ function Boot_Manager_Is_Installed(Active: PBOOLEAN; Error_Code: PCARDINAL32): B
 //*   Notes:                                                          */
 //*                                                                   */
 //*********************************************************************/
-function Get_Boot_Manager_Handle(Error_Code: PCARDINAL32): ADDRESS; external 'lvm' name 'Get_Boot_Manager_Handle';
+function Get_Boot_Manager_Handle(Error_Code: PCARDINAL32): ADDRESS; cdecl; external 'lvm' {$ifdef useordinals}index $0023;{$else}name 'Get_Boot_Manager_Handle';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2352,7 +2358,7 @@ function Get_Boot_Manager_Handle(Error_Code: PCARDINAL32): ADDRESS; external 'lv
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-procedure Add_To_Boot_Manager(Handle: ADDRESS; Error_Code: PCARDINAL32); external 'lvm' name 'Add_To_Boot_Manager';
+procedure Add_To_Boot_Manager(Handle: ADDRESS; Error_Code: PCARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $006A;{$else}name 'Add_To_Boot_Manager';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2384,7 +2390,7 @@ procedure Add_To_Boot_Manager(Handle: ADDRESS; Error_Code: PCARDINAL32); externa
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-procedure Remove_From_Boot_Manager(Handle: ADDRESS; Error_Code: PCARDINAL32); external 'lvm' name 'Remove_From_Boot_Manager';
+procedure Remove_From_Boot_Manager(Handle: ADDRESS; Error_Code: PCARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $002C;{$else}name 'Remove_From_Boot_Manager';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2421,7 +2427,7 @@ procedure Remove_From_Boot_Manager(Handle: ADDRESS; Error_Code: PCARDINAL32); ex
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-function Get_Boot_Manager_Menu(Error_Code: PCARDINAL32): Boot_Manager_Menu; external 'lvm' name 'Get_Boot_Manager_Menu';
+function Get_Boot_Manager_Menu(Error_Code: PCARDINAL32): Boot_Manager_Menu; cdecl; external 'lvm' {$ifdef useordinals}index $0003;{$else}name 'Get_Boot_Manager_Menu';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2454,7 +2460,7 @@ function Get_Boot_Manager_Menu(Error_Code: PCARDINAL32): Boot_Manager_Menu; exte
 //*                                                                   */
 //*********************************************************************/
 // Only drives 0 and 1 are acceptable.
-procedure Install_Boot_Manager(Drive_Number: CARDINAL32; Error_Code: PCARDINAL32); external 'lvm' name 'Install_Boot_Manager';
+procedure Install_Boot_Manager(Drive_Number: CARDINAL32; Error_Code: PCARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $0069;{$else}name 'Install_Boot_Manager';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2477,7 +2483,7 @@ procedure Install_Boot_Manager(Drive_Number: CARDINAL32; Error_Code: PCARDINAL32
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-procedure Remove_Boot_Manager(Error_Code: PCARDINAL32); external 'lvm' name 'Remove_Boot_Manager';
+procedure Remove_Boot_Manager(Error_Code: PCARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $0002;{$else}name 'Remove_Boot_Manager';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2523,7 +2529,7 @@ Timer_Active: BOOLEAN;
 Time_Out_Value: CARDINAL32;
 Advanced_Mode: BOOLEAN;
 Error_Code: PCARDINAL32
-); external 'lvm' name 'Set_Boot_Manager_Options';
+); cdecl; external 'lvm' {$ifdef useordinals}index $002D;{$else}name 'Set_Boot_Manager_Options';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2576,7 +2582,7 @@ Timer_Active: PBOOLEAN;
 Time_Out_Value: PCARDINAL32;
 Advanced_Mode: PBOOLEAN;
 Error_Code: PCARDINAL32
-); external 'lvm' name 'Get_Boot_Manager_Options';
+); cdecl; external 'lvm' {$ifdef useordinals}index $002A;{$else}name 'Get_Boot_Manager_Options';{$endif}
 
 //****************************************************************************
 //
@@ -2640,7 +2646,7 @@ ADDRESS _System Allocate_Engine_Memory( CARDINAL32 Size );
 //*           passed into this function.                              */
 //*                                                                   */
 //*********************************************************************/
-procedure Free_Engine_Memory(Object_: ADDRESS); external 'lvm' name 'Free_Engine_Memory';
+procedure Free_Engine_Memory(Object_: ADDRESS); cdecl; external 'lvm' {$ifdef useordinals}index $005E;{$else}name 'Free_Engine_Memory';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2668,7 +2674,7 @@ procedure Free_Engine_Memory(Object_: ADDRESS); external 'lvm' name 'Free_Engine
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-procedure New_MBR(Drive_Handle: ADDRESS; Error_Code: PCARDINAL32); external 'lvm' name 'New_MBR';
+procedure New_MBR(Drive_Handle: ADDRESS; Error_Code: PCARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $0060;{$else}name 'New_MBR';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2696,7 +2702,7 @@ procedure New_MBR(Drive_Handle: ADDRESS; Error_Code: PCARDINAL32); external 'lvm
 //*           by OS2DASD.                                             */
 //*                                                                   */
 //*********************************************************************/
-function Get_Available_Drive_Letters(Error_Code: PCARDINAL32): CARDINAL32; external 'lcm' name 'Get_Available_Drive_Letters';
+function Get_Available_Drive_Letters(Error_Code: PCARDINAL32): CARDINAL32; cdecl; external 'lcm' {$ifdef useordinals}index $005D;{$else}name 'Get_Available_Drive_Letters';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2729,7 +2735,7 @@ function Get_Available_Drive_Letters(Error_Code: PCARDINAL32): CARDINAL32; exter
 //*           not controlled by OS2DASD.                              */
 //*                                                                   */
 //*********************************************************************/
-function Get_Reserved_Drive_Letters(Error_Code: CARDINAL32): CARDINAL32; external 'lvm' name 'Get_Reserved_Drive_Letters';
+function Get_Reserved_Drive_Letters(Error_Code: CARDINAL32): CARDINAL32; cdecl; external 'lvm' {$ifdef useordinals}index $0050;{$else}name 'Get_Reserved_Drive_Letters';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2753,7 +2759,7 @@ function Get_Reserved_Drive_Letters(Error_Code: CARDINAL32): CARDINAL32; externa
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-function Reboot_Required: BOOLEAN; external 'lvm' name 'Reboot_Required';
+function Reboot_Required: BOOLEAN; cdecl; external 'lvm' {$ifdef useordinals}index $0043;{$else}name 'Reboot_Required';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2777,7 +2783,7 @@ function Reboot_Required: BOOLEAN; external 'lvm' name 'Reboot_Required';
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-function Changes_Pending: BOOLEAN; external 'lvm' name 'Changes_Pending';
+function Changes_Pending: BOOLEAN; cdecl; external 'lvm' {$ifdef useordinals}index $003D;{$else}name 'Changes_Pending';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2809,7 +2815,7 @@ function Changes_Pending: BOOLEAN; external 'lvm' name 'Changes_Pending';
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-procedure Set_Reboot_Flag(Reboot: BOOLEAN; Error_Code: PCARDINAL32); external 'lvm' name 'Set_Reboot_Flag';
+procedure Set_Reboot_Flag(Reboot: BOOLEAN; Error_Code: PCARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $0042;{$else}name 'Set_Reboot_Flag';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2840,7 +2846,7 @@ procedure Set_Reboot_Flag(Reboot: BOOLEAN; Error_Code: PCARDINAL32); external 'l
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-function Get_Reboot_Flag(Error_Code: PCARDINAL32): BOOLEAN; external 'lvm' name 'Get_Reboot_Flag';
+function Get_Reboot_Flag(Error_Code: PCARDINAL32): BOOLEAN; cdecl; external 'lvm' {$ifdef useordinals}index $0040;{$else}name 'Get_Reboot_Flag';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2870,7 +2876,7 @@ function Get_Reboot_Flag(Error_Code: PCARDINAL32): BOOLEAN; external 'lvm' name
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-procedure Set_Install_Flags(Install_Flags: CARDINAL32; Error_Code: PCARDINAL32); external 'lvm' name 'Set_Install_Flags';
+procedure Set_Install_Flags(Install_Flags: CARDINAL32; Error_Code: PCARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $0055;{$else}name 'Set_Install_Flags';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2899,7 +2905,7 @@ procedure Set_Install_Flags(Install_Flags: CARDINAL32; Error_Code: PCARDINAL32);
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-function Get_Install_Flags(Error_Code: PCARDINAL32): CARDINAL32; external 'lvm' name 'Get_Install_Flags';
+function Get_Install_Flags(Error_Code: PCARDINAL32): CARDINAL32; cdecl; external 'lvm' {$ifdef useordinals}index $0053;{$else}name 'Get_Install_Flags';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2926,7 +2932,7 @@ function Get_Install_Flags(Error_Code: PCARDINAL32): CARDINAL32; external 'lvm'
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-procedure Set_Min_Install_Size(Min_Sectors: CARDINAL32); external 'lvm' name 'Set_Min_Install_Size';
+procedure Set_Min_Install_Size(Min_Sectors: CARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $0007;{$else}name 'Set_Min_Install_Size';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2952,7 +2958,7 @@ procedure Set_Min_Install_Size(Min_Sectors: CARDINAL32); external 'lvm' name 'Se
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-procedure Set_Free_Space_Threshold(Min_Sectors: CARDINAL32); external 'lvm' name 'Set_Free_Space_Threshold';
+procedure Set_Free_Space_Threshold(Min_Sectors: CARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $002E;{$else}name 'Set_Free_Space_Threshold';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -2991,7 +2997,7 @@ procedure Read_Sectors(Drive_Number: CARDINAL32;
 Starting_Sector: LBA;
 Sectors_To_Read: CARDINAL32;
 Buffer: ADDRESS;
-Error: PCARDINAL32); external 'lvm' name 'Read_Sectors';
+Error: PCARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $0012;{$else}name 'Read_Sectors';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -3031,7 +3037,7 @@ procedure Write_Sectors(Drive_Number: CARDINAL32;
 Starting_Sector: LBA;
 Sectors_To_Write: CARDINAL32;
 Buffer: ADDRESS;
-Error: PCARDINAL32); external 'lvm' name 'Write_Sectors';
+Error: PCARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $0021;{$else}name 'Write_Sectors';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -3057,7 +3063,7 @@ Error: PCARDINAL32); external 'lvm' name 'Write_Sectors';
 //*          called as this function is disabled while it is open!    */
 //*                                                                   */
 //*********************************************************************/
-procedure Rediscover_PRMs(Error_Code: PCARDINAL32); external 'lvm' name 'Rediscover_PRMs';
+procedure Rediscover_PRMs(Error_Code: PCARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $0046;{$else}name 'Rediscover_PRMs';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -3069,7 +3075,7 @@ procedure Rediscover_PRMs(Error_Code: PCARDINAL32); external 'lvm' name 'Redisco
 //*                      a volume really has given the possibilities  */
 //*                      of conflict or a drive preference of '*'.    */
 //*                                                                   */
-//*   Input:  AnsiChar  IFSM_Drive_Letter : The drive letter for which the*/
+//*   Input:  char  IFSM_Drive_Letter : The drive letter for which the*/
 //*                                     OS2LVM data is requested.     */
 //*           CARDINAL32 * Drive_Number : The address of a variable   */
 //*                                       to hold the OS/2 drive      */
@@ -3084,7 +3090,7 @@ procedure Rediscover_PRMs(Error_Code: PCARDINAL32); external 'lvm' name 'Redisco
 //*                                        volume currently assigned  */
 //*                                        to the requested drive     */
 //*                                        letter.                    */
-//*           AnsiChar * LVM_Drive_Letter : The address of a variable to  */
+//*           char * LVM_Drive_Letter : The address of a variable to  */
 //*                                     hold the drive letter that    */
 //*                                     OS2LVM thinks the volume      */
 //*                                     assigned to the requested     */
@@ -3110,7 +3116,7 @@ function Get_LVM_View(IFSM_Drive_Letter: AnsiChar;
 Drive_Number: PCARDINAL32;
 Partition_LBA: PCARDINAL32;
 LVM_Drive_Letter: PAnsiChar;
-UnitID: PBYTE): BOOLEAN; external 'lvm' name 'Get_LVM_View';
+UnitID: PBYTE): BOOLEAN; cdecl; external 'lvm' {$ifdef useordinals}index $0016;{$else}name 'Get_LVM_View';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -3122,7 +3128,7 @@ UnitID: PBYTE): BOOLEAN; external 'lvm' name 'Get_LVM_View';
 //*                     The data is logged in a binary format for     */
 //*                     compactness and speed.                        */
 //*                                                                   */
-//*   Input: AnsiChar * Filename - The filename of the file to use as the */
+//*   Input: char * Filename - The filename of the file to use as the */
 //*                            log file.                              */
 //*          CARDINAL32 * Error_Code - The address of a CARDINAL32 in */
 //*                                    in which to store an error code*/
@@ -3141,7 +3147,7 @@ UnitID: PBYTE): BOOLEAN; external 'lvm' name 'Get_LVM_View';
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-procedure Start_Logging(Filename: PAnsiChar; Error_Code: PCARDINAL32); external 'lvm' name 'Start_Logging';
+procedure Start_Logging(Filename: PAnsiChar; Error_Code: PCARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $0019;{$else}name 'Start_Logging';{$endif}
 
 //*********************************************************************/
 //*                                                                   */
@@ -3166,7 +3172,7 @@ procedure Start_Logging(Filename: PAnsiChar; Error_Code: PCARDINAL32); external
 //*   Notes:  None.                                                   */
 //*                                                                   */
 //*********************************************************************/
-procedure Stop_Logging(Error_Code: PCARDINAL32); external 'lvm' name 'Stop_Logging';
+procedure Stop_Logging(Error_Code: PCARDINAL32); cdecl; external 'lvm' {$ifdef useordinals}index $0017;{$else}name 'Stop_Logging';{$endif}
 
 
 {$ifdef lists}