msf.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /*
  2. * Common interface to MSF (multi-segment format) definitions.
  3. *
  4. * Portions of this code are copyright (c) 2020 Cypress Semiconductor Corporation
  5. *
  6. * Copyright (C) 1999-2020, Broadcom Corporation
  7. *
  8. * Unless you and Broadcom execute a separate written software license
  9. * agreement governing use of this software, this software is licensed to you
  10. * under the terms of the GNU General Public License version 2 (the "GPL"),
  11. * available at http://www.broadcom.com/licenses/GPLv2.php, with the
  12. * following added to such license:
  13. *
  14. * As a special exception, the copyright holders of this software give you
  15. * permission to link this software with independent modules, and to copy and
  16. * distribute the resulting executable under terms of your choice, provided that
  17. * you also meet, for each linked independent module, the terms and conditions of
  18. * the license of that module. An independent module is a module which is not
  19. * derived from this software. The special exception does not apply to any
  20. * modifications of the software.
  21. *
  22. * Notwithstanding the above, under no circumstances may you combine this
  23. * software in any way with any other Broadcom software provided under a license
  24. * other than the GPL, without Broadcom's express prior written consent.
  25. *
  26. *
  27. * <<Broadcom-WL-IPTag/Open:>>
  28. *
  29. * $Id: msf.h 619634 2016-02-17 19:01:25Z $
  30. */
  31. #ifndef _WLC_MSF_H_
  32. #define _WLC_MSF_H_
  33. struct wl_segment {
  34. uint32 type;
  35. uint32 offset;
  36. uint32 length;
  37. uint32 crc32;
  38. uint32 flags;
  39. };
  40. typedef struct wl_segment wl_segment_t;
  41. struct wl_segment_info {
  42. uint8 magic[4];
  43. uint32 hdr_len;
  44. uint32 crc32;
  45. uint32 file_type;
  46. uint32 num_segments;
  47. wl_segment_t segments[1];
  48. };
  49. typedef struct wl_segment_info wl_segment_info_t;
  50. typedef struct wlc_blob_segment {
  51. uint32 type;
  52. uint8 *data;
  53. uint32 length;
  54. } wlc_blob_segment_t;
  55. /** Segment types in Binary Eventlog Archive file */
  56. enum bea_seg_type_e {
  57. MSF_SEG_TYP_RTECDC_BIN = 1,
  58. MSF_SEG_TYP_LOGSTRS_BIN = 2,
  59. MSF_SEG_TYP_FW_SYMBOLS = 3,
  60. MSF_SEG_TYP_ROML_BIN = 4
  61. };
  62. #endif /* _WLC_MSF_H */