Subversion Repositories Kolibri OS

Rev

Rev 5191 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /* Alpha VMS external format of Descriptors.
  2.  
  3.    Copyright (C) 2010-2015 Free Software Foundation, Inc.
  4.    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
  5.  
  6.    This file is part of BFD, the Binary File Descriptor library.
  7.  
  8.    This program is free software; you can redistribute it and/or modify
  9.    it under the terms of the GNU General Public License as published by
  10.    the Free Software Foundation; either version 3 of the License, or
  11.    (at your option) any later version.
  12.  
  13.    This program is distributed in the hope that it will be useful,
  14.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.    GNU General Public License for more details.
  17.  
  18.    You should have received a copy of the GNU General Public License
  19.    along with this program; if not, write to the Free Software
  20.    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
  21.    MA 02110-1301, USA.  */
  22.  
  23. #ifndef _VMS_DSC_H
  24. #define _VMS_DSC_H
  25.  
  26. /* Descriptors.  */
  27. #define DSC__K_DTYPE_Z    0 /* Unspecified.  */
  28. #define DSC__K_DTYPE_V    1 /* Bit.  */
  29. #define DSC__K_DTYPE_BU   2 /* Byte logical.  */
  30. #define DSC__K_DTYPE_WU   3 /* Word logical.  */
  31. #define DSC__K_DTYPE_LU   4 /* Longword logical.  */
  32. #define DSC__K_DTYPE_QU   5 /* Quadword logical.  */
  33. #define DSC__K_DTYPE_B    6 /* Byte integer.  */
  34. #define DSC__K_DTYPE_W    7 /* Word integer.  */
  35. #define DSC__K_DTYPE_L    8 /* Longword integer.  */
  36. #define DSC__K_DTYPE_Q    9 /* Quadword integer.  */
  37. #define DSC__K_DTYPE_F   10 /* Single-precision floating.  */
  38. #define DSC__K_DTYPE_D   11 /* Double-precision floating.  */
  39. #define DSC__K_DTYPE_FC  12 /* Complex.  */
  40. #define DSC__K_DTYPE_DC  13 /* Double-precision Complex.  */
  41. #define DSC__K_DTYPE_T   14 /* ASCII text string.  */
  42. #define DSC__K_DTYPE_NU  15 /* Numeric string, unsigned.  */
  43. #define DSC__K_DTYPE_NL  16 /* Numeric string, left separate sign.  */
  44. #define DSC__K_DTYPE_NLO 17 /* Numeric string, left overpunched sign.  */
  45. #define DSC__K_DTYPE_NR  18 /* Numeric string, right separate sign.  */
  46. #define DSC__K_DTYPE_NRO 19 /* Numeric string, right overpunched sign.  */
  47. #define DSC__K_DTYPE_NZ  20 /* Numeric string, zoned sign.  */
  48. #define DSC__K_DTYPE_P   21 /* Packed decimal string.  */
  49. #define DSC__K_DTYPE_ZI  22 /* Sequence of instructions.  */
  50. #define DSC__K_DTYPE_ZEM 23 /* Procedure entry mask.  */
  51. #define DSC__K_DTYPE_DSC 24 /* Descriptor, used for arrays of dyn strings.  */
  52. #define DSC__K_DTYPE_OU  25 /* Octaword logical.  */
  53. #define DSC__K_DTYPE_O   26 /* Octaword integer.  */
  54. #define DSC__K_DTYPE_G   27 /* Double precision G floating, 64 bit.  */
  55. #define DSC__K_DTYPE_H   28 /* Quadruple precision floating, 128 bit.  */
  56. #define DSC__K_DTYPE_GC  29 /* Double precision complex, G floating.  */
  57. #define DSC__K_DTYPE_HC  30 /* Quadruple precision complex, H floating.  */
  58. #define DSC__K_DTYPE_CIT 31 /* COBOL intermediate temporary.  */
  59. #define DSC__K_DTYPE_BPV 32 /* Bound Procedure Value.  */
  60. #define DSC__K_DTYPE_BLV 33 /* Bound Label Value.  */
  61. #define DSC__K_DTYPE_VU  34 /* Bit Unaligned.  */
  62. #define DSC__K_DTYPE_ADT 35 /* Absolute Date-Time.  */
  63. #define DSC__K_DTYPE_VT  37 /* Varying Text.  */
  64. #define DSC__K_DTYPE_T2  38 /* 16-bit char.  */
  65. #define DSC__K_DTYPE_VT2 39 /* 16-bit varying char.  */
  66.  
  67. #define DSC__K_CLASS_S     1 /* Fixed-length scalar/string.  */
  68. #define DSC__K_CLASS_D     2 /* Dynamic string.  */
  69. #define DSC__K_CLASS_V     3 /* Reserved.  */
  70. #define DSC__K_CLASS_A     4 /* Contiguous array.  */
  71. #define DSC__K_CLASS_P     5 /* Procedure argument descriptor.  */
  72. #define DSC__K_CLASS_PI    6 /* Procedure incarnation descriptor.  */
  73. #define DSC__K_CLASS_J     7 /* Reserved.  */
  74. #define DSC__K_CLASS_JI    8 /* Obsolete.  */
  75. #define DSC__K_CLASS_SD    9 /* Decimal (scalar) string.  */
  76. #define DSC__K_CLASS_NCA  10 /* Non-contiguous array.  */
  77. #define DSC__K_CLASS_VS   11 /* Varying string.  */
  78. #define DSC__K_CLASS_VSA  12 /* Varying string array.  */
  79. #define DSC__K_CLASS_UBS  13 /* Unaligned bit string.  */
  80. #define DSC__K_CLASS_UBA  14 /* Unaligned bit array.  */
  81. #define DSC__K_CLASS_SB   15 /* String with bounds.  */
  82. #define DSC__K_CLASS_UBSB 16 /* Unaligned bit string with bounds.  */
  83.  
  84. /* Common part.  */
  85.  
  86. struct vms_dsc
  87. {
  88.   unsigned char length[2];
  89.   unsigned char dtype;
  90.   unsigned char bclass;
  91.   unsigned char pointer[4];
  92. };
  93.  
  94. struct vms_dsc64
  95. {
  96.   unsigned char mbo[2];
  97.   unsigned char dtype;
  98.   unsigned char bclass;
  99.   unsigned char mbmo[4];
  100.   unsigned char length[8];
  101.   unsigned char pointer[8];
  102. };
  103.  
  104. struct vms_dsc_nca
  105. {
  106.   unsigned char length[2];
  107.   unsigned char dtype;
  108.   unsigned char bclass;
  109.   unsigned char pointer[4];
  110.  
  111.   unsigned char scale;
  112.   unsigned char digits;
  113.   unsigned char aflags;
  114.   unsigned char dimct;
  115.  
  116.   unsigned char arsize[4];
  117.   unsigned char a0[4];
  118. };
  119.  
  120. struct vms_dsc_ubs
  121. {
  122.   unsigned char length[2];
  123.   unsigned char dtype;
  124.   unsigned char bclass;
  125.   unsigned char base[4];
  126.   unsigned char pos[4];
  127. };
  128.  
  129. #endif /* _VMS_DSC_H */
  130.