XFree86 server 4.x Design (DRAFT)

The XFree86 Project, Inc

and

Updates for X11R6.7.0 by Jim Gettys

19 December 2003

NOTE: This is a DRAFT document, and the interfaces described here are subject to change without notice.

1. Preface

2. The xorg.conf 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

5. Control Flow in the Server and Mandatory Driver Functions

5.1. Parse the xorg.conf 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

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 old 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

$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml,v 1.53 2003/08/23 14:10:14 dawes Exp $