Writing Video Card Drivers In BeOS

A Thesis By:

Rudolf Cornelissen
part-time student
06 June 2003

Table Of Contents

  1. Introduction
    1. Problem Description
    2. Thesis
    3. About The Author
    4. About BeOS
    5. About Video Card Drivers
  2. BeOS API Classes For Video Card Drivers
    1. BScreen (Interface Kit)
    2. BWindowsScreen (Game Kit)
    3. BDirectWindows (Game Kit)
    4. Classes For Hardware Overlay: BBitmap (Interface Kit)
    5. Classes For Hardware Overlay: BView (Interface Kit)
    6. Conclusion
  3. Kernel Driver
    1. Interface To The OS
      1. init_hardware()
      2. init_driver()
      3. publish_devices()
      4. uninit_driver()
      5. find_device()
    2. Interface To The User
      1. open_hook()
      2. close_hook()
      3. free_hook()
      4. control_hook()
      5. read_hook()
      6. write_hook()
    3. Conclusion
  4. Accelerant
    1. The Hooks Of The Accelerant
      1. INIT_ACCELERANT
      2. CLONE_ACCELERANT
      3. UNINIT_ACCELERANT
      4. ACCELERANT_RETRACE_SEMAPHORE
      5. ACCELERANT_MODE_COUNT & GET_MODE_LIST
      6. PROPOSE_DISPLAY_MODE
      7. SET_DISPLAY_MODE
      8. GET_FRAME_BUFFER_CONFIG
      9. GET_PIXEL_CLOCK_LIMITS
      10. MOVE_DISPLAY
      11. SET_INDEXED_COLOR
      12. GET_TIMING_CONSTRAINTS
      13. SET_CURSOR_SHAPE
      14. MOVE_CURSOR
      15. 2D Accelerant Functions
      16. Hardware Overlay Functions
    2. Conclusion
  5. Flags
    1. Flags For User Overlay
      1. B_BITMAP_WILL_OVERLAY
      2. B_BITMAP_RESERVE_OVERLAY_CHANNEL
      3. B_OVERLAY_TRANSFER_CHANNEL
      4. B_OVERLAY_MIRROR
      5. B_OVERLAY_FILTER_HORIZONTAL
      6. B_OVERLAY_FILTER_VERTICAL
    2. Flags For Mode Setup: Mode Flags
      1. B_SUPPORTS_OVERLAYS
      2. B_HARDWARE_CURSOR
      3. B_IO_FB_NA
      4. B_PARALLEL_ACCESS
      5. B_8_BIT_DAC
      6. B_DPMS
      7. B_SCROLL
    3. Flags For Mode Setup: Mode Timing Flags
      1. B_BLANK_PEDESTAL
      2. B_TIMING_INTERLACED
      3. B_SYNC_ON_GREEN
      4. B_POSITIVE_HSYNC & B_POSITIVE_VSYNC
    4. Conclusion
  6. Writing The Driver
    1. Action Plan
      1. Preparations
      2. Step 1: VBE2 (Vesa Mode) Activation
      3. Step 2: Non-Active Driver Installation
      4. Step 3: Hardware Cursor Building
      5. Step 4: Setting The Frame Buffer Start Address
      6. Step 5: Setting The Frame Buffer Pitch
      7. Step 6: Setting The Color Depth
      8. Step 7: Setting The Color Pallete
      9. Step 8: DPMS Building
      10. Step 9: Setting The Refresh Rate
      11. Step 10: Setting The Monitor Timing
      12. Step 11: Switching On 'Enhanced Mode'
      13. Step 12: Setting The Acceleration
      14. Step 13: Building Hardware Overlay
      15. Step 14: Cold Start Of The Video Card
    2. Testing The Driver
      1. Kernel Driver
      2. Accelerant
    3. Stability
    4. Conclusion
  7. Conclusion

Appendix

  1. Sources Of Information
    1. The Manufacturer
    2. Linux
    3. The Internet
    4. Testing For Specifications
    5. Reverse Engineering
  2. Glossary
  3. References