forked from Imagelibrary/rtems
The output of the modules.html is much improved. Most filesystem and POSIX API related groups are properly nested. Some formatting issues were addressed as were multiple inconsistencies.
105 lines
3.1 KiB
C
105 lines
3.1 KiB
C
/**
|
|
* @file rtems/fb.h
|
|
*
|
|
* @brief Frame Buffer Device Driver
|
|
*
|
|
* This file defines the interface to a frame buffer device driver.
|
|
*/
|
|
|
|
/*
|
|
* Copyright (c) 2000 - Rosimildo da Silva
|
|
*
|
|
* MODULE DESCRIPTION:
|
|
* Micro FrameBuffer interface for Embedded Systems.
|
|
*/
|
|
|
|
#ifndef _MW_FB_H
|
|
#define _MW_FB_H
|
|
|
|
#include <stdint.h>
|
|
|
|
/**
|
|
* @defgroup libmisc_fb Frame Buffer Device Driver Interface
|
|
*
|
|
* @ingroup Device Drivers and Frameworks
|
|
*/
|
|
/**@{*/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* ioctls
|
|
0x46 is 'F' */
|
|
#define FBIOGET_VSCREENINFO 0x4600
|
|
#define FBIOPUT_VSCREENINFO 0x4601
|
|
#define FBIOGET_FSCREENINFO 0x4602
|
|
#define FBIOGETCMAP 0x4604
|
|
#define FBIOPUTCMAP 0x4605
|
|
#define FB_EXEC_FUNCTION 0x4606
|
|
#define FBIOSWAPBUFFERS 0x4607
|
|
#define FBIOSETBUFFERMODE 0x4608
|
|
#define FBIOSETVIDEOMODE 0x4609
|
|
|
|
#define FB_SINGLE_BUFFERED 0
|
|
#define FB_TRIPLE_BUFFERED 1
|
|
|
|
#define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */
|
|
#define FB_TYPE_PLANES 1 /* Non interleaved planes */
|
|
#define FB_TYPE_INTERLEAVED_PLANES 2 /* Interleaved planes */
|
|
#define FB_TYPE_TEXT 3 /* Text/attributes */
|
|
#define FB_TYPE_VGA_PLANES 4 /* EGA/VGA planes */
|
|
#define FB_TYPE_VIRTUAL_BUFFER 5 /* Virtual Buffer */
|
|
|
|
|
|
#define FB_VISUAL_MONO01 0 /* Monochr. 1=Black 0=White */
|
|
#define FB_VISUAL_MONO10 1 /* Monochr. 1=White 0=Black */
|
|
#define FB_VISUAL_TRUECOLOR 2 /* True color */
|
|
#define FB_VISUAL_PSEUDOCOLOR 3 /* Pseudo color (like atari) */
|
|
#define FB_VISUAL_DIRECTCOLOR 4 /* Direct color */
|
|
#define FB_VISUAL_STATIC_PSEUDOCOLOR 5 /* Pseudo color readonly */
|
|
|
|
#define FB_ACCEL_NONE 0 /* no hardware accelerator */
|
|
|
|
struct fb_bitfield {
|
|
uint32_t offset; /* beginning of bitfield */
|
|
uint32_t length; /* length of bitfield */
|
|
uint32_t msb_right; /* != 0 : Most significant bit is */
|
|
/* right */
|
|
};
|
|
|
|
struct fb_var_screeninfo {
|
|
uint32_t xres; /* visible resolution */
|
|
uint32_t yres;
|
|
uint32_t bits_per_pixel; /* guess what */
|
|
struct fb_bitfield red; /* bitfield in fb mem if true color, */
|
|
struct fb_bitfield green; /* else only length is significant */
|
|
struct fb_bitfield blue;
|
|
struct fb_bitfield transp; /* transparency */
|
|
};
|
|
|
|
struct fb_fix_screeninfo {
|
|
volatile char *smem_start; /* Start of frame buffer mem */
|
|
/* (physical address) */
|
|
uint32_t smem_len; /* Length of frame buffer mem */
|
|
uint32_t type; /* see FB_TYPE_* */
|
|
uint32_t visual; /* see FB_VISUAL_* */
|
|
uint32_t line_length; /* number of chars per line */
|
|
};
|
|
|
|
struct fb_cmap {
|
|
uint32_t start; /* First entry */
|
|
uint32_t len; /* Number of entries */
|
|
uint16_t *red; /* Red values */
|
|
uint16_t *green;
|
|
uint16_t *blue;
|
|
uint16_t *transp; /* transparency, can be NULL */
|
|
};
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
/**@}*/
|
|
|
|
#endif /* _MW_FB_H */
|