18c2ecf20Sopenharmony_ciFrame Buffer Library 28c2ecf20Sopenharmony_ci==================== 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ciThe frame buffer drivers depend heavily on four data structures. These 58c2ecf20Sopenharmony_cistructures are declared in include/linux/fb.h. They are fb_info, 68c2ecf20Sopenharmony_cifb_var_screeninfo, fb_fix_screeninfo and fb_monospecs. The last 78c2ecf20Sopenharmony_cithree can be made available to and from userland. 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cifb_info defines the current state of a particular video card. Inside 108c2ecf20Sopenharmony_cifb_info, there exists a fb_ops structure which is a collection of 118c2ecf20Sopenharmony_cineeded functions to make fbdev and fbcon work. fb_info is only visible 128c2ecf20Sopenharmony_cito the kernel. 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_cifb_var_screeninfo is used to describe the features of a video card 158c2ecf20Sopenharmony_cithat are user defined. With fb_var_screeninfo, things such as depth 168c2ecf20Sopenharmony_ciand the resolution may be defined. 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ciThe next structure is fb_fix_screeninfo. This defines the properties 198c2ecf20Sopenharmony_ciof a card that are created when a mode is set and can't be changed 208c2ecf20Sopenharmony_ciotherwise. A good example of this is the start of the frame buffer 218c2ecf20Sopenharmony_cimemory. This "locks" the address of the frame buffer memory, so that it 228c2ecf20Sopenharmony_cicannot be changed or moved. 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ciThe last structure is fb_monospecs. In the old API, there was little 258c2ecf20Sopenharmony_ciimportance for fb_monospecs. This allowed for forbidden things such as 268c2ecf20Sopenharmony_cisetting a mode of 800x600 on a fix frequency monitor. With the new API, 278c2ecf20Sopenharmony_cifb_monospecs prevents such things, and if used correctly, can prevent a 288c2ecf20Sopenharmony_cimonitor from being cooked. fb_monospecs will not be useful until 298c2ecf20Sopenharmony_cikernels 2.5.x. 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ciFrame Buffer Memory 328c2ecf20Sopenharmony_ci------------------- 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci.. kernel-doc:: drivers/video/fbdev/core/fbmem.c 358c2ecf20Sopenharmony_ci :export: 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ciFrame Buffer Colormap 388c2ecf20Sopenharmony_ci--------------------- 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci.. kernel-doc:: drivers/video/fbdev/core/fbcmap.c 418c2ecf20Sopenharmony_ci :export: 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ciFrame Buffer Video Mode Database 448c2ecf20Sopenharmony_ci-------------------------------- 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci.. kernel-doc:: drivers/video/fbdev/core/modedb.c 478c2ecf20Sopenharmony_ci :internal: 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ci.. kernel-doc:: drivers/video/fbdev/core/modedb.c 508c2ecf20Sopenharmony_ci :export: 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ciFrame Buffer Macintosh Video Mode Database 538c2ecf20Sopenharmony_ci------------------------------------------ 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ci.. kernel-doc:: drivers/video/fbdev/macmodes.c 568c2ecf20Sopenharmony_ci :export: 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ciFrame Buffer Fonts 598c2ecf20Sopenharmony_ci------------------ 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ciRefer to the file lib/fonts/fonts.c for more information. 628c2ecf20Sopenharmony_ci 63