xref: /linux-6.15/include/linux/linux_logo.h (revision d6161b7d)
1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
21da177e4SLinus Torvalds #ifndef _LINUX_LINUX_LOGO_H
31da177e4SLinus Torvalds #define _LINUX_LINUX_LOGO_H
41da177e4SLinus Torvalds 
51da177e4SLinus Torvalds /*
61da177e4SLinus Torvalds  *  Linux logo to be displayed on boot
71da177e4SLinus Torvalds  *
81da177e4SLinus Torvalds  *  Copyright (C) 1996 Larry Ewing ([email protected])
91da177e4SLinus Torvalds  *  Copyright (C) 1996,1998 Jakub Jelinek ([email protected])
101da177e4SLinus Torvalds  *  Copyright (C) 2001 Greg Banks <[email protected]>
111da177e4SLinus Torvalds  *  Copyright (C) 2001 Jan-Benedict Glaw <[email protected]>
121da177e4SLinus Torvalds  *  Copyright (C) 2003 Geert Uytterhoeven <[email protected]>
131da177e4SLinus Torvalds  */
141da177e4SLinus Torvalds 
151da177e4SLinus Torvalds #include <linux/init.h>
161da177e4SLinus Torvalds 
171da177e4SLinus Torvalds 
181da177e4SLinus Torvalds #define LINUX_LOGO_MONO		1	/* monochrome black/white */
191da177e4SLinus Torvalds #define LINUX_LOGO_VGA16	2	/* 16 colors VGA text palette */
201da177e4SLinus Torvalds #define LINUX_LOGO_CLUT224	3	/* 224 colors */
211da177e4SLinus Torvalds #define LINUX_LOGO_GRAY256	4	/* 256 levels grayscale */
221da177e4SLinus Torvalds 
231da177e4SLinus Torvalds 
241da177e4SLinus Torvalds struct linux_logo {
251da177e4SLinus Torvalds 	int type;			/* one of LINUX_LOGO_* */
261da177e4SLinus Torvalds 	unsigned int width;
271da177e4SLinus Torvalds 	unsigned int height;
281da177e4SLinus Torvalds 	unsigned int clutsize;		/* LINUX_LOGO_CLUT224 only */
291da177e4SLinus Torvalds 	const unsigned char *clut;	/* LINUX_LOGO_CLUT224 only */
301da177e4SLinus Torvalds 	const unsigned char *data;
311da177e4SLinus Torvalds };
321da177e4SLinus Torvalds 
33ae52bb23SGeert Uytterhoeven extern const struct linux_logo logo_linux_mono;
34ae52bb23SGeert Uytterhoeven extern const struct linux_logo logo_linux_vga16;
35ae52bb23SGeert Uytterhoeven extern const struct linux_logo logo_linux_clut224;
36ae52bb23SGeert Uytterhoeven extern const struct linux_logo logo_dec_clut224;
37ae52bb23SGeert Uytterhoeven extern const struct linux_logo logo_mac_clut224;
38ae52bb23SGeert Uytterhoeven extern const struct linux_logo logo_parisc_clut224;
39ae52bb23SGeert Uytterhoeven extern const struct linux_logo logo_sgi_clut224;
40ae52bb23SGeert Uytterhoeven extern const struct linux_logo logo_sun_clut224;
41ae52bb23SGeert Uytterhoeven extern const struct linux_logo logo_superh_mono;
42ae52bb23SGeert Uytterhoeven extern const struct linux_logo logo_superh_vga16;
43ae52bb23SGeert Uytterhoeven extern const struct linux_logo logo_superh_clut224;
44ae52bb23SGeert Uytterhoeven extern const struct linux_logo logo_spe_clut224;
45ae52bb23SGeert Uytterhoeven 
461da177e4SLinus Torvalds extern const struct linux_logo *fb_find_logo(int depth);
479900abfbSGeert Uytterhoeven #ifdef CONFIG_FB_LOGO_EXTRA
489900abfbSGeert Uytterhoeven extern void fb_append_extra_logo(const struct linux_logo *logo,
499900abfbSGeert Uytterhoeven 				 unsigned int n);
509900abfbSGeert Uytterhoeven #else
fb_append_extra_logo(const struct linux_logo * logo,unsigned int n)519900abfbSGeert Uytterhoeven static inline void fb_append_extra_logo(const struct linux_logo *logo,
529900abfbSGeert Uytterhoeven 					unsigned int n)
539900abfbSGeert Uytterhoeven {}
549900abfbSGeert Uytterhoeven #endif
551da177e4SLinus Torvalds 
561da177e4SLinus Torvalds #endif /* _LINUX_LINUX_LOGO_H */
57