OSEntries 1.46 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
/* Copyright 2012 Castle Technology Ltd
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#ifndef GLOBAL_OSENTRIES_H

#include <stdbool.h>
#include <stdint.h>

typedef struct {
  uint32_t Magic;
  uint32_t Flags;
  uint32_t ImageSize;
  uint32_t Entries;
  uint32_t NumEntries;
  uint32_t CompressedSize;
  uint32_t DecompressHdr;
  uint32_t CompressOffset;
} OSHdr;

typedef struct {
  uint32_t WSSize;
  uint32_t Code;
} OSDecompHdr;

#define OSHdr_Magic_Value (0x6d49534f) /* 'OSIm' */

38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
typedef struct {
  uint32_t AddrFlags;
#define OSIICOpDesc_Addr_Shift    (0)
#define OSIICOpDesc_Addr_Mask     (0xFF)
#define OSIICOpDesc_Reserved_Mask (0x1FFFFF00uL)
#define OSIICOpDesc_Flag_Retry    (1uL<<29)
#define OSIICOpDesc_Flag_SumOnly  (1uL<<30)
#define OSIICOpDesc_Flag_NoStart  (1uL<<31)
  union {
    void    *Data;
    uint32_t CheckSum;
  } d;
  uint32_t Length;
} OSIICOpDesc;

53 54
#endif
/* In the exported copy of this file, the Hdr2H translation of hdr.OSEntries will follow. */