Files

34 lines
1.6 KiB
C
Vendored

#ifndef _IPL_H
#define _IPL_H
#define IPL_HEADER_CHAR (0x4C5049)
#define IPL__HEADER_CHAR (0x5F4C5049)
#define IPLC_HEADER_CHAR (0x434C5049)
#define IPLK_HEADER_CHAR (0x4E4C5049)
#define IPL_IMAGE_MAGIC_OFFSET 4
#define IPL_IMAGE_SIZE_OFFSET 8
#define IPL_IMAGE_AUTH_OFFSET 10
#define IPL_IMAGE_CID_OFFSET 11
#define IPL_IMAGE_CHECKSUM_OFFSET 12
#define IPL_IMAGE_DATA_OFFSET 16
#define IPL_CUST_IMAGE_KEYN_OFFSET 16
#define IPL_CUST_IMAGE_KEYAES_OFFSET 18
#define image_get_ipl_data(a) (U32) (a + IPL_IMAGE_DATA_OFFSET)
#define image_get_ipl_magic(a) (*((volatile U32*) (a + IPL_IMAGE_MAGIC_OFFSET)))
#define image_get_ipl_size(a) (*((volatile U16*) (a + IPL_IMAGE_SIZE_OFFSET)))
#define image_get_ipl_auth(a) (*((volatile U8*) (a + IPL_IMAGE_AUTH_OFFSET)))
#define image_get_ipl_cid(a) (*((volatile U8*) (a + IPL_IMAGE_CID_OFFSET)))
#define image_get_ipl_checksum(a) (*((volatile U32*) (a + IPL_IMAGE_CHECKSUM_OFFSET)))
#define image_get_ipl_cust_keyn(a) (*((volatile U16*) (a + IPL_CUST_IMAGE_KEYN_OFFSET)))
#define image_get_ipl_cust_keyaes(a) (*((volatile U16*) (a + IPL_CUST_IMAGE_KEYAES_OFFSET)))
#define image_get_ipl_cust_keyn_data(a) (U32) (a + image_get_ipl_size(a) - image_get_ipl_cust_keyaes(a) - image_get_ipl_cust_keyn(a))
#define image_get_ipl_cust_keyaes_data(a) (U32) (image_get_ipl_cust_keyn_data + image_get_ipl_cust_keyn(a))
#endif