XFree86® server 4.x Design (DRAFT) 
- 1. Preface 
- 2. The XF86Config File 
- 2.1. Device section 
- 2.2. Screen section 
- 2.3. InputDevice section 
- 2.4. ServerLayout section 
- 2.5. Options 
 
- 3. Driver Interface 
- 4. Resource Access Control Introduction 
- 4.1. Terms and Definitions 
- 4.1.1. Bus 
- 4.1.2. Entity 
- 4.1.3. Resource 
- 4.1.4. Server States 
 
 
- 5. Control Flow in the Server and Mandatory Driver Functions 
- 5.1. Parse the XF86Config file 
- 5.2. Initial processing of parsed information and command line options 
- 5.3. Enable port I/O access 
- 5.4. General bus probe 
- 5.5. Load initial set of modules 
- 5.6. Register Video and Input Drivers 
- 5.7. Initialise Access Control 
- 5.8. Video Driver Probe
- 5.9. Matching Screens 
- 5.10. Allocate non-conflicting resources 
- 5.11. Sort the Screens and pre-check Monitor Information 
- 5.12. PreInit 
- 5.13. Cleaning up Unused Drivers 
- 5.14. Consistency Checks 
- 5.15. Check if Resource Control is Needed 
- 5.16. AddScreen (ScreenInit) 
- 5.17. Finalising RAC Initialisation 
- 5.18. Finishing InitOutput() 
- 5.19. Mode Switching 
- 5.20. Changing Viewport 
- 5.21. VT Switching 
- 5.22. End of server generation 
 
- 6. Optional Driver Functions 
- 6.1. Mode Validation 
- 6.2. Free screen data 
 
- 7. Recommended driver functions 
- 7.1. Save 
- 7.2. Restore 
- 7.3. Initialise Mode 
 
- 8. Data and Data Structures 
- 8.1. Command line data 
- 8.2. Data handling 
- 8.3. Accessing global data 
- 8.4. Allocating private data 
 
- 9. Keeping Track of Bus Resources
- 9.1. Theory of Operation 
- 9.2. Resource Types 
- 9.3. Available Functions
- 9.3.1. Probe Phase 
- 9.3.2. PreInit Phase 
- 9.3.3. ScreenInit Phase 
 
 
- 10. Config file ``Option'' entries
- 11. Modules, Drivers, Include Files and Interface Issues 
- 11.1. Include files 
 
- 12. Offscreen Memory Manager 
- 13. Colormap Handling
- 14. DPMS Extension 
- 15. DGA Extension 
- 16. The XFree86 X Video Extension (Xv) Device Dependent Layer 
- 17. The Loader 
- 17.1. Loader Overview 
- 17.2. Semi-private Loader Interface 
- 17.3. Module Requirements 
- 17.4. Public Loader Interface 
- 17.5. Special Registration Functions 
 
- 18. Helper Functions 
- 18.1. Functions for printing messages 
- 18.2. Functions for setting values based on command line and config file 
- 18.3. Primary Mode functions 
- 18.4. Secondary Mode functions 
- 18.5. Functions for handling strings and tokens 
- 18.6. Functions for finding which config file entries to use 
- 18.7. Probing discrete clocks on older hardware 
- 18.8. Other helper functions 
 
- 19. The vgahw module 
- 19.1. Data Structures 
- 19.2. General vgahw Functions 
- 19.3. VGA Colormap Functions 
- 19.4. VGA Register Access Functions 
 
- 20. Some notes about writing a driver
- 20.1. Include files 
- 20.2. Data structures and initialisation 
- 20.3. Functions 
- 20.3.1. SetupProc 
- 20.3.2. GetRec, FreeRec 
- 20.3.3. Identify 
- 20.3.4. Probe 
- 20.3.5. AvailableOptions 
- 20.3.6. PreInit 
- 20.3.7. MapMem, UnmapMem 
- 20.3.8. Save, Restore 
- 20.3.9. ModeInit 
- 20.3.10. ScreenInit 
- 20.3.11. SwitchMode 
- 20.3.12. AdjustFrame 
- 20.3.13. EnterVT, LeaveVT 
- 20.3.14. CloseScreen 
- 20.3.15. SaveScreen 
- 20.3.16. FreeScreen