diff options
Diffstat (limited to 'firmware/include/bmpblk_header.h')
-rw-r--r-- | firmware/include/bmpblk_header.h | 113 |
1 files changed, 61 insertions, 52 deletions
diff --git a/firmware/include/bmpblk_header.h b/firmware/include/bmpblk_header.h index 7a588219..5957c31c 100644 --- a/firmware/include/bmpblk_header.h +++ b/firmware/include/bmpblk_header.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2011 The Chromium OS Authors. All rights reserved. +/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. * @@ -40,7 +40,6 @@ * +-----------------------------------------+ * | List of locale names | * +-----------------------------------------+ - * */ #ifndef VBOOT_REFERENCE_BMPBLK_HEADER_H_ @@ -60,83 +59,93 @@ __pragma(pack(push, 1)) /* Support packing for MSVC. */ /* BMPBLOCK header, describing how many screen layouts and image infos */ typedef struct BmpBlockHeader { - uint8_t signature[BMPBLOCK_SIGNATURE_SIZE]; /* BMPBLOCK_SIGNATURE $BMP */ - uint16_t major_version; /* see BMPBLOCK_MAJOR_VER */ - uint16_t minor_version; /* see BMPBLOCK_MINOR_VER */ - uint32_t number_of_localizations; /* Number of localizations */ - uint32_t number_of_screenlayouts; /* Number of screen layouts in each - * localization */ - uint32_t number_of_imageinfos; /* Number of image infos */ - uint32_t locale_string_offset; /* Offset of locale-translation string */ - uint32_t reserved[2]; + /* BMPBLOCK_SIGNATURE $BMP */ + uint8_t signature[BMPBLOCK_SIGNATURE_SIZE]; + uint16_t major_version; /* see BMPBLOCK_MAJOR_VER */ + uint16_t minor_version; /* see BMPBLOCK_MINOR_VER */ + uint32_t number_of_localizations; /* Number of localizations */ + /* Number of screen layouts in each localization */ + uint32_t number_of_screenlayouts; + uint32_t number_of_imageinfos; /* Number of image infos */ + /* Offset of locale-translation string */ + uint32_t locale_string_offset; + uint32_t reserved[2]; } __attribute__((packed)) BmpBlockHeader; /* Screen layout, describing how to stack multiple images on screen */ typedef struct ScreenLayout { - struct { - uint32_t x; /* X-offset of the image to be rendered */ - uint32_t y; /* Y-offset of the image to be rendered */ - uint32_t image_info_offset; /* Offset of image info from start of - * BMPBLOCK. 0 means end of it. */ - } images[MAX_IMAGE_IN_LAYOUT]; /* Images contained in the screen. Will be - * rendered from 0 to (number_of_images-1). */ + /* + * Images contained in the screen. Will be rendered from 0 to + * (number_of_images-1). + */ + struct { + /* (X,Y) offset of image to be rendered */ + uint32_t x; + uint32_t y; + /* Offset of image info from start of BMPBLOCK; 0=end it. */ + uint32_t image_info_offset; + } images[MAX_IMAGE_IN_LAYOUT]; } __attribute__((packed)) ScreenLayout; /* Constants for screen index */ typedef enum ScreenIndex { - SCREEN_DEVELOPER_WARNING = 0, - SCREEN_RECOVERY_REMOVE, - SCREEN_RECOVERY_NO_GOOD, - SCREEN_RECOVERY_INSERT, - SCREEN_RECOVERY_TO_DEV, - SCREEN_DEVELOPER_TO_NORM, - SCREEN_WAIT, - SCREEN_TO_NORM_CONFIRMED, - MAX_VALID_SCREEN_INDEX, - SCREEN_BLANK = ~0UL, + SCREEN_DEVELOPER_WARNING = 0, + SCREEN_RECOVERY_REMOVE, + SCREEN_RECOVERY_NO_GOOD, + SCREEN_RECOVERY_INSERT, + SCREEN_RECOVERY_TO_DEV, + SCREEN_DEVELOPER_TO_NORM, + SCREEN_WAIT, + SCREEN_TO_NORM_CONFIRMED, + MAX_VALID_SCREEN_INDEX, + SCREEN_BLANK = ~0UL, } ScreenIndex; /* Image info, describing the information of the image block */ typedef struct ImageInfo { - uint32_t tag; /* Tag it as a special image, like HWID */ - uint32_t width; /* Width of the image */ - uint32_t height; /* Height of the image */ - uint32_t format; /* File format of the image */ - uint32_t compression; /* Compression method for the image file */ - uint32_t original_size; /* Size of the original uncompressed image */ - uint32_t compressed_size; /* Size of the compressed image; if image is not - * compressed, this will be the same as the - * original size. */ - uint32_t reserved; + uint32_t tag; /* Tag it as a special image, like HWID */ + uint32_t width; /* Width of the image */ + uint32_t height; /* Height of the image */ + uint32_t format; /* File format of the image */ + uint32_t compression; /* Compression method for the image file */ + uint32_t original_size; /* Size of the original uncompressed image */ + /* + * Size of the compressed image; if image is not compressed, this will + * be the same as the original size. + */ + uint32_t compressed_size; + uint32_t reserved; /* NOTE: The actual image content (if any) follows immediately. */ } __attribute__((packed)) ImageInfo; /* Constants for ImageInfo.tag */ typedef enum ImageTag { - TAG_NONE = 0, - TAG_HWID, - TAG_HWID_RTOL, /* "right-to-left", ie, right-justified HWID */ + TAG_NONE = 0, + TAG_HWID, + TAG_HWID_RTOL, /* "right-to-left", ie, right-justified HWID */ } ImageTag; /* Constants for ImageInfo.format */ typedef enum ImageFormat { - FORMAT_INVALID = 0, - FORMAT_BMP, - FORMAT_FONT, + FORMAT_INVALID = 0, + FORMAT_BMP, + FORMAT_FONT, } ImageFormat; /* Constants for ImageInfo.compression */ typedef enum Compression { - COMPRESS_NONE = 0, - COMPRESS_EFIv1, /* The x86 BIOS only supports this */ - COMPRESS_LZMA1, /* The ARM BIOS supports LZMA1 */ - MAX_COMPRESS, + COMPRESS_NONE = 0, + COMPRESS_EFIv1, /* The x86 BIOS only supports this */ + COMPRESS_LZMA1, /* The ARM BIOS supports LZMA1 */ + MAX_COMPRESS, } Compression; -/* These magic image names can be used in the .yaml file to indicate that - the ASCII HWID should be displayed. For RENDER_HWID, the image coordinates - specify upper-left corner of the HWID string. For RENDER_HWID_RTOL, they - indicate the upper-right corner (handy for right-to-left languages). */ +/* + * These magic image names can be used in the .yaml file to indicate that the + * ASCII HWID should be displayed. For RENDER_HWID, the image coordinates + * specify upper-left corner of the HWID string. For RENDER_HWID_RTOL, they + * indicate the upper-right corner (handy for right-to-left languages). + */ #define RENDER_HWID "$HWID" #define RENDER_HWID_RTOL "$HWID.rtol" |