Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  1. #ifndef _BE_LE_H
  2. #define _BE_LE_H
  3. /* be_le.h */
  4. /*****************************************************************************/
  5. /* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only                     */
  6. /*                                                                           */
  7. /* AS-Portierung                                                             */
  8. /*                                                                           */
  9. /* Little/Big-Endian-Routinen                                                */
  10. /*                                                                           */
  11. /* Historie: 30. 5.1996 Grundsteinlegung                                     */
  12. /*            6. 7.1997 Dec32BlankString dazu                                */
  13. /*            1. 6.2000 added LargeHIntFormat                                */
  14. /*            7. 7.2000 added memory read/write functions                    */
  15. /*                                                                           */
  16. /*****************************************************************************/
  17.  
  18. #include "datatypes.h"
  19.  
  20. extern Boolean HostBigEndian;
  21.  
  22. extern const char *Integ16Format, *Integ32Format, *Integ64Format;
  23. extern const char *IntegerFormat, *LongIntFormat, *QuadIntFormat;
  24. extern const char *LargeIntFormat, *LargeHIntFormat;
  25.  
  26.  
  27. extern void WSwap(void *Field, int Cnt);
  28.  
  29. extern void DSwap(void *Field, int Cnt);
  30.  
  31. extern void QSwap(void *Field, int Cnt);
  32.  
  33. extern void TSwap(void *Field, int Cnt);
  34.  
  35. extern void DWSwap(void *Field, int Cnt);
  36.  
  37. extern void QWSwap(void *Field, int Cnt);
  38.  
  39. extern void TWSwap(void *Field, int Cnt);
  40.  
  41.  
  42. extern Boolean Read2(FILE *file, void *Ptr);
  43.  
  44. extern Boolean Read4(FILE *file, void *Ptr);
  45.  
  46. extern Boolean Read8(FILE *file, void *Ptr);
  47.  
  48.  
  49. extern Boolean Write2(FILE *file, void *Ptr);
  50.  
  51. extern Boolean Write4(FILE *file, void *Ptr);
  52.  
  53. extern Boolean Write8(FILE *file, void *Ptr);
  54.  
  55. #define MRead1L(Buffer) (*((Byte *)(Buffer)))
  56.  
  57. #define MRead1B(Buffer) (*((Byte *)(Buffer)))
  58.  
  59. extern Word MRead2L(Byte *Buffer);
  60.  
  61. extern Word MRead2B(Byte *Buffer);
  62.  
  63. #define MWrite1L(Buffer, Value) (*((Byte*) (Buffer))) = Value;
  64.  
  65. #define MWrite1B(Buffer, Value) (*((Byte*) (Buffer))) = Value;
  66.  
  67. extern void MWrite2L(Byte *Buffer, Word Value);
  68.  
  69. extern void MWrite2B(Byte *Buffer, Word Value);
  70.  
  71. extern LongWord MRead4L(Byte *Buffer);
  72.  
  73. extern LongWord MRead4B(Byte *Buffer);
  74.  
  75. extern void MWrite4L(Byte *Buffer, LongWord Value);
  76.  
  77. extern void MWrite4B(Byte *Buffer, LongWord Value);
  78.  
  79. #ifdef HAS64
  80. extern QuadWord MRead8L(Byte *Buffer);
  81.  
  82. extern QuadWord MRead8B(Byte *Buffer);
  83.  
  84. extern void MWrite8L(Byte *Buffer, QuadWord Value);
  85.  
  86. extern void MWrite8B(Byte *Buffer, QuadWord Value);
  87. #endif
  88.  
  89. extern void be_le_init(void);
  90. #endif /* _BE_LE_H */
  91.