summaryrefslogtreecommitdiffstats
path: root/qemu/roms/ipxe/src/include/ipxe/png.h
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/ipxe/src/include/ipxe/png.h')
-rw-r--r--qemu/roms/ipxe/src/include/ipxe/png.h179
1 files changed, 0 insertions, 179 deletions
diff --git a/qemu/roms/ipxe/src/include/ipxe/png.h b/qemu/roms/ipxe/src/include/ipxe/png.h
deleted file mode 100644
index 3505eefc8..000000000
--- a/qemu/roms/ipxe/src/include/ipxe/png.h
+++ /dev/null
@@ -1,179 +0,0 @@
-#ifndef _IPXE_PNG_H
-#define _IPXE_PNG_H
-
-/** @file
- *
- * Portable Network Graphics (PNG) format
- *
- */
-
-FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
-
-#include <stdint.h>
-#include <byteswap.h>
-#include <ipxe/image.h>
-
-/** A PNG file signature */
-struct png_signature {
- /** Signature bytes */
- uint8_t bytes[8];
-} __attribute__ (( packed ));
-
-/** PNG file signature */
-#define PNG_SIGNATURE { { 0x89, 'P', 'N', 'G', '\r', '\n', 0x1a, '\n' } }
-
-/** A PNG chunk header */
-struct png_chunk_header {
- /** Length of the chunk (excluding header and footer) */
- uint32_t len;
- /** Chunk type */
- uint32_t type;
-} __attribute__ (( packed ));
-
-/** A PNG chunk footer */
-struct png_chunk_footer {
- /** CRC */
- uint32_t crc;
-} __attribute__ (( packed ));
-
-/** PNG chunk type property bits */
-enum png_chunk_type_bits {
- /** Chunk is ancillary */
- PNG_CHUNK_ANCILLARY = 0x20000000UL,
- /** Chunk is private */
- PNG_CHUNK_PRIVATE = 0x00200000UL,
- /** Reserved */
- PNG_CHUNK_RESERVED = 0x00002000UL,
- /** Chunk is safe to copy */
- PNG_CHUNK_SAFE = 0x00000020UL,
-};
-
-/**
- * Canonicalise PNG chunk type
- *
- * @v type Raw chunk type
- * @ret type Canonicalised chunk type (excluding property bits)
- */
-static inline __attribute__ (( always_inline )) uint32_t
-png_canonical_type ( uint32_t type ) {
- return ( type & ~( htonl ( PNG_CHUNK_ANCILLARY | PNG_CHUNK_PRIVATE |
- PNG_CHUNK_RESERVED | PNG_CHUNK_SAFE ) ) );
-}
-
-/**
- * Define a canonical PNG chunk type
- *
- * @v first First letter (in upper case)
- * @v second Second letter (in upper case)
- * @v third Third letter (in upper case)
- * @v fourth Fourth letter (in upper case)
- * @ret type Canonical chunk type
- */
-#define PNG_TYPE( first, second, third, fourth ) \
- ( ( (first) << 24 ) | ( (second) << 16 ) | ( (third) << 8 ) | (fourth) )
-
-/** PNG image header chunk type */
-#define PNG_TYPE_IHDR PNG_TYPE ( 'I', 'H', 'D', 'R' )
-
-/** A PNG image header */
-struct png_image_header {
- /** Width */
- uint32_t width;
- /** Height */
- uint32_t height;
- /** Bit depth */
- uint8_t depth;
- /** Colour type */
- uint8_t colour_type;
- /** Compression method */
- uint8_t compression;
- /** Filter method */
- uint8_t filter;
- /** Interlace method */
- uint8_t interlace;
-} __attribute__ (( packed ));
-
-/** PNG colour type bits */
-enum png_colour_type {
- /** Palette is used */
- PNG_COLOUR_TYPE_PALETTE = 0x01,
- /** RGB colour is used */
- PNG_COLOUR_TYPE_RGB = 0x02,
- /** Alpha channel is used */
- PNG_COLOUR_TYPE_ALPHA = 0x04,
-};
-
-/** PNG colour type mask */
-#define PNG_COLOUR_TYPE_MASK 0x07
-
-/** PNG compression methods */
-enum png_compression_method {
- /** DEFLATE compression with 32kB sliding window */
- PNG_COMPRESSION_DEFLATE = 0x00,
- /** First unknown compression method */
- PNG_COMPRESSION_UNKNOWN = 0x01,
-};
-
-/** PNG filter methods */
-enum png_filter_method {
- /** Adaptive filtering with five basic types */
- PNG_FILTER_BASIC = 0x00,
- /** First unknown filter method */
- PNG_FILTER_UNKNOWN = 0x01,
-};
-
-/** PNG interlace methods */
-enum png_interlace_method {
- /** No interlacing */
- PNG_INTERLACE_NONE = 0x00,
- /** Adam7 interlacing */
- PNG_INTERLACE_ADAM7 = 0x01,
- /** First unknown interlace method */
- PNG_INTERLACE_UNKNOWN = 0x02,
-};
-
-/** PNG palette chunk type */
-#define PNG_TYPE_PLTE PNG_TYPE ( 'P', 'L', 'T', 'E' )
-
-/** A PNG palette entry */
-struct png_palette_entry {
- /** Red */
- uint8_t red;
- /** Green */
- uint8_t green;
- /** Blue */
- uint8_t blue;
-} __attribute__ (( packed ));
-
-/** A PNG palette chunk */
-struct png_palette {
- /** Palette entries */
- struct png_palette_entry entries[0];
-} __attribute__ (( packed ));
-
-/** Maximum number of PNG palette entries */
-#define PNG_PALETTE_COUNT 256
-
-/** PNG image data chunk type */
-#define PNG_TYPE_IDAT PNG_TYPE ( 'I', 'D', 'A', 'T' )
-
-/** PNG basic filter types */
-enum png_basic_filter_type {
- /** No filtering */
- PNG_FILTER_BASIC_NONE = 0,
- /** Left byte used as predictor */
- PNG_FILTER_BASIC_SUB = 1,
- /** Above byte used as predictor */
- PNG_FILTER_BASIC_UP = 2,
- /** Above and left bytes used as predictors */
- PNG_FILTER_BASIC_AVERAGE = 3,
- /** Paeth filter */
- PNG_FILTER_BASIC_PAETH = 4,
-};
-
-/** PNG image end chunk type */
-#define PNG_TYPE_IEND PNG_TYPE ( 'I', 'E', 'N', 'D' )
-
-extern struct image_type png_image_type __image_type ( PROBE_NORMAL );
-
-#endif /* _IPXE_PNG_H */