hpatch_impl.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /**
  2. * Copyright (c) 2024, sulfurandcu.github.io
  3. *
  4. * SPDX-License-Identifier: MIT
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2024-10-24 liujitong first version
  9. */
  10. #ifndef __hpatch_impl_h__
  11. #define __hpatch_impl_h__
  12. #include "hpatch_conf.h"
  13. #include "hpatch_lite.h"
  14. #include "patch_types.h"
  15. typedef enum hpi_patch_result_t
  16. {
  17. HPATCHI_SUCCESS = 0,
  18. HPATCHI_OPTIONS_ERROR,
  19. HPATCHI_PATHTYPE_ERROR,
  20. HPATCHI_OPENREAD_ERROR,
  21. HPATCHI_OPENWRITE_ERROR,
  22. HPATCHI_FILEREAD_ERROR,
  23. HPATCHI_FILEWRITE_ERROR,
  24. HPATCHI_FILEDATA_ERROR,
  25. HPATCHI_FILECLOSE_ERROR,
  26. HPATCHI_MEM_ERROR,
  27. HPATCHI_COMPRESSTYPE_ERROR,
  28. HPATCHI_DECOMPRESSER_DICT_ERROR,
  29. HPATCHI_DECOMPRESSER_OPEN_ERROR,
  30. HPATCHI_DECOMPRESSER_CLOSE_ERROR,
  31. HPATCHI_PATCH_OPEN_ERROR = 20,
  32. HPATCHI_PATCH_ERROR,
  33. } hpi_patch_result_t;
  34. typedef hpi_BOOL (*read_old_t)(struct hpatchi_listener_t *listener, hpi_pos_t addr, hpi_byte *data, hpi_size_t size);
  35. typedef hpi_BOOL (*write_new_t)(struct hpatchi_listener_t *listener, const hpi_byte *data, hpi_size_t size);
  36. hpi_patch_result_t hpi_patch(hpatchi_listener_t *listener, int patch_cache_size, int decompress_cache_size,
  37. hpi_TInputStream_read _do_read_diff, read_old_t _do_read_old, write_new_t _do_write_new);
  38. #endif /* __hpatch_impl_h__ */