fx_file.h 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. /***************************************************************************
  2. * Copyright (c) 2024 Microsoft Corporation
  3. *
  4. * This program and the accompanying materials are made available under the
  5. * terms of the MIT License which is available at
  6. * https://opensource.org/licenses/MIT.
  7. *
  8. * SPDX-License-Identifier: MIT
  9. **************************************************************************/
  10. /**************************************************************************/
  11. /**************************************************************************/
  12. /** */
  13. /** FileX Component */
  14. /** */
  15. /** File */
  16. /** */
  17. /**************************************************************************/
  18. /**************************************************************************/
  19. /**************************************************************************/
  20. /* */
  21. /* COMPONENT DEFINITION RELEASE */
  22. /* */
  23. /* fx_file.h PORTABLE C */
  24. /* 6.1 */
  25. /* AUTHOR */
  26. /* */
  27. /* William E. Lamie, Microsoft Corporation */
  28. /* */
  29. /* DESCRIPTION */
  30. /* */
  31. /* This file defines the FileX File component constants, data */
  32. /* definitions, and external references. It is assumed that fx_api.h */
  33. /* (and fx_port.h) have already been included. */
  34. /* */
  35. /* RELEASE HISTORY */
  36. /* */
  37. /* DATE NAME DESCRIPTION */
  38. /* */
  39. /* 05-19-2020 William E. Lamie Initial Version 6.0 */
  40. /* 09-30-2020 William E. Lamie Modified comment(s), and */
  41. /* added conditional to */
  42. /* disable one line function, */
  43. /* resulting in version 6.1 */
  44. /* */
  45. /**************************************************************************/
  46. #ifndef FX_FILE_H
  47. #define FX_FILE_H
  48. /* Define the external File component function prototypes. */
  49. #ifndef FX_DISABLE_ONE_LINE_FUNCTION
  50. UINT _fx_file_allocate(FX_FILE *file_ptr, ULONG size);
  51. #else
  52. #define _fx_file_allocate(f, s) _fx_file_extended_allocate(f, (ULONG64)s);
  53. #endif /* FX_DISABLE_ONE_LINE_FUNCTION */
  54. UINT _fx_file_attributes_read(FX_MEDIA *media_ptr, CHAR *file_name, UINT *attributes_ptr);
  55. UINT _fx_file_attributes_set(FX_MEDIA *media_ptr, CHAR *file_name, UINT attributes);
  56. UINT _fx_file_best_effort_allocate(FX_FILE *file_ptr, ULONG size, ULONG *actual_size_allocated);
  57. UINT _fx_file_close(FX_FILE *file_ptr);
  58. UINT _fx_file_create(FX_MEDIA *media_ptr, CHAR *file_name);
  59. UINT _fx_file_date_time_set(FX_MEDIA *media_ptr, CHAR *file_name,
  60. UINT year, UINT month, UINT day, UINT hour, UINT minute, UINT second);
  61. UINT _fx_file_delete(FX_MEDIA *media_ptr, CHAR *file_name);
  62. UINT _fx_file_open(FX_MEDIA *media_ptr, FX_FILE *file_ptr, CHAR *file_name,
  63. UINT open_type);
  64. UINT _fx_file_read(FX_FILE *file_ptr, VOID *buffer_ptr, ULONG request_size, ULONG *actual_size);
  65. #ifndef FX_DISABLE_ONE_LINE_FUNCTION
  66. UINT _fx_file_relative_seek(FX_FILE *file_ptr, ULONG byte_offset, UINT seek_from);
  67. #else
  68. #define _fx_file_relative_seek(f, b, sf) _fx_file_extended_relative_seek(f, (ULONG64)b, sf);
  69. #endif /* FX_DISABLE_ONE_LINE_FUNCTION */
  70. UINT _fx_file_rename(FX_MEDIA *media_ptr, CHAR *old_file_name, CHAR *new_file_name);
  71. #ifndef FX_DISABLE_ONE_LINE_FUNCTION
  72. UINT _fx_file_seek(FX_FILE *file_ptr, ULONG byte_offset);
  73. UINT _fx_file_truncate(FX_FILE *file_ptr, ULONG size);
  74. UINT _fx_file_truncate_release(FX_FILE *file_ptr, ULONG size);
  75. #else
  76. #define _fx_file_seek(f, b) _fx_file_extended_seek(f, (ULONG64)b)
  77. #define _fx_file_truncate(f, s) _fx_file_extended_truncate(f, (ULONG64)s);
  78. #define _fx_file_truncate_release(f, s) _fx_file_extended_truncate_release(f, (ULONG64)s);
  79. #endif /* FX_DISABLE_ONE_LINE_FUNCTION */
  80. UINT _fx_file_write(FX_FILE *file_ptr, VOID *buffer_ptr, ULONG size);
  81. UINT _fx_file_write_notify_set(FX_FILE *file_ptr, VOID (*file_write_notify)(FX_FILE *));
  82. UINT _fx_file_extended_allocate(FX_FILE *file_ptr, ULONG64 size);
  83. UINT _fx_file_extended_best_effort_allocate(FX_FILE *file_ptr, ULONG64 size, ULONG64 *actual_size_allocated);
  84. UINT _fx_file_extended_relative_seek(FX_FILE *file_ptr, ULONG64 byte_offset, UINT seek_from);
  85. UINT _fx_file_extended_seek(FX_FILE *file_ptr, ULONG64 byte_offset);
  86. UINT _fx_file_extended_truncate(FX_FILE *file_ptr, ULONG64 size);
  87. UINT _fx_file_extended_truncate_release(FX_FILE *file_ptr, ULONG64 size);
  88. UINT _fxe_file_allocate(FX_FILE *file_ptr, ULONG size);
  89. UINT _fxe_file_attributes_read(FX_MEDIA *media_ptr, CHAR *file_name, UINT *attributes_ptr);
  90. UINT _fxe_file_attributes_set(FX_MEDIA *media_ptr, CHAR *file_name, UINT attributes);
  91. UINT _fxe_file_best_effort_allocate(FX_FILE *file_ptr, ULONG size, ULONG *actual_size_allocated);
  92. UINT _fxe_file_close(FX_FILE *file_ptr);
  93. UINT _fxe_file_create(FX_MEDIA *media_ptr, CHAR *file_name);
  94. UINT _fxe_file_date_time_set(FX_MEDIA *media_ptr, CHAR *file_name,
  95. UINT year, UINT month, UINT day, UINT hour, UINT minute, UINT second);
  96. UINT _fxe_file_delete(FX_MEDIA *media_ptr, CHAR *file_name);
  97. UINT _fxe_file_open(FX_MEDIA *media_ptr, FX_FILE *file_ptr, CHAR *file_name,
  98. UINT open_type, UINT file_control_block_size);
  99. UINT _fxe_file_read(FX_FILE *file_ptr, VOID *buffer_ptr, ULONG request_size, ULONG *actual_size);
  100. UINT _fxe_file_relative_seek(FX_FILE *file_ptr, ULONG byte_offset, UINT seek_from);
  101. UINT _fxe_file_rename(FX_MEDIA *media_ptr, CHAR *old_file_name, CHAR *new_file_name);
  102. UINT _fxe_file_seek(FX_FILE *file_ptr, ULONG byte_offset);
  103. UINT _fxe_file_truncate(FX_FILE *file_ptr, ULONG size);
  104. UINT _fxe_file_truncate_release(FX_FILE *file_ptr, ULONG size);
  105. UINT _fxe_file_write(FX_FILE *file_ptr, VOID *buffer_ptr, ULONG size);
  106. UINT _fxe_file_write_notify_set(FX_FILE *file_ptr, VOID (*file_write_notify)(FX_FILE *));
  107. UINT _fxe_file_extended_allocate(FX_FILE *file_ptr, ULONG64 size);
  108. UINT _fxe_file_extended_best_effort_allocate(FX_FILE *file_ptr, ULONG64 size, ULONG64 *actual_size_allocated);
  109. UINT _fxe_file_extended_relative_seek(FX_FILE *file_ptr, ULONG64 byte_offset, UINT seek_from);
  110. UINT _fxe_file_extended_seek(FX_FILE *file_ptr, ULONG64 byte_offset);
  111. UINT _fxe_file_extended_truncate(FX_FILE *file_ptr, ULONG64 size);
  112. UINT _fxe_file_extended_truncate_release(FX_FILE *file_ptr, ULONG64 size);
  113. #endif