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