| xj | b04a402 | 2021-11-25 15:01:52 +0800 | [diff] [blame] | 1 | Frame Buffer Library | 
|  | 2 | ==================== | 
|  | 3 |  | 
|  | 4 | The frame buffer drivers depend heavily on four data structures. These | 
|  | 5 | structures are declared in include/linux/fb.h. They are fb_info, | 
|  | 6 | fb_var_screeninfo, fb_fix_screeninfo and fb_monospecs. The last | 
|  | 7 | three can be made available to and from userland. | 
|  | 8 |  | 
|  | 9 | fb_info defines the current state of a particular video card. Inside | 
|  | 10 | fb_info, there exists a fb_ops structure which is a collection of | 
|  | 11 | needed functions to make fbdev and fbcon work. fb_info is only visible | 
|  | 12 | to the kernel. | 
|  | 13 |  | 
|  | 14 | fb_var_screeninfo is used to describe the features of a video card | 
|  | 15 | that are user defined. With fb_var_screeninfo, things such as depth | 
|  | 16 | and the resolution may be defined. | 
|  | 17 |  | 
|  | 18 | The next structure is fb_fix_screeninfo. This defines the properties | 
|  | 19 | of a card that are created when a mode is set and can't be changed | 
|  | 20 | otherwise. A good example of this is the start of the frame buffer | 
|  | 21 | memory. This "locks" the address of the frame buffer memory, so that it | 
|  | 22 | cannot be changed or moved. | 
|  | 23 |  | 
|  | 24 | The last structure is fb_monospecs. In the old API, there was little | 
|  | 25 | importance for fb_monospecs. This allowed for forbidden things such as | 
|  | 26 | setting a mode of 800x600 on a fix frequency monitor. With the new API, | 
|  | 27 | fb_monospecs prevents such things, and if used correctly, can prevent a | 
|  | 28 | monitor from being cooked. fb_monospecs will not be useful until | 
|  | 29 | kernels 2.5.x. | 
|  | 30 |  | 
|  | 31 | Frame Buffer Memory | 
|  | 32 | ------------------- | 
|  | 33 |  | 
|  | 34 | .. kernel-doc:: drivers/video/fbdev/core/fbmem.c | 
|  | 35 | :export: | 
|  | 36 |  | 
|  | 37 | Frame Buffer Colormap | 
|  | 38 | --------------------- | 
|  | 39 |  | 
|  | 40 | .. kernel-doc:: drivers/video/fbdev/core/fbcmap.c | 
|  | 41 | :export: | 
|  | 42 |  | 
|  | 43 | Frame Buffer Video Mode Database | 
|  | 44 | -------------------------------- | 
|  | 45 |  | 
|  | 46 | .. kernel-doc:: drivers/video/fbdev/core/modedb.c | 
|  | 47 | :internal: | 
|  | 48 |  | 
|  | 49 | .. kernel-doc:: drivers/video/fbdev/core/modedb.c | 
|  | 50 | :export: | 
|  | 51 |  | 
|  | 52 | Frame Buffer Macintosh Video Mode Database | 
|  | 53 | ------------------------------------------ | 
|  | 54 |  | 
|  | 55 | .. kernel-doc:: drivers/video/fbdev/macmodes.c | 
|  | 56 | :export: | 
|  | 57 |  | 
|  | 58 | Frame Buffer Fonts | 
|  | 59 | ------------------ | 
|  | 60 |  | 
|  | 61 | Refer to the file lib/fonts/fonts.c for more information. | 
|  | 62 |  |