VirtualBox

Changeset 4027 in vbox for trunk/include


Ignore:
Timestamp:
Aug 3, 2007 7:53:12 PM (18 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
23458
Message:

Direct draw heap and miniport heap memory reservation for Windows guest additions.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/VBoxVideo.h

    r3633 r4027  
    3232 * etc. This is used exclusively by the corresponding instance of a display driver.
    3333 *
     34 * The VRAM layout:
     35 *     Last 4096 bytes - Adapter information area.
     36 *     4096 bytes aligned miniport heap (value specified in the config rouded up).
     37 *     Slack - what left after dividing the VRAM.
     38 *     4096 bytes aligned framebuffers:
     39 *       last 4096 bytes of each framebuffer is the display information area.
     40 *
    3441 * The Virtual Graphics Adapter information in the guest VRAM is stored by the
    3542 * guest video driver using structures prepended by VBOXVIDEOINFOHDR.
    3643 *
    37  * When the guest driver writes dword 0 to the VBE_DISPI_INDEX_CMONITORS,
     44 * When the guest driver writes dword 0 to the VBE_DISPI_INDEX_VBOX_VIDEO
    3845 * the host starts to process the info. The first element at the start of
    3946 * the 4096 bytes region should be normally be a LINK that points to
     
    4855 * But other VRAM can be used by host until the mode is disabled.
    4956 *
    50  * The guest driver writes dword 0xffffffff to the VBE_DISPI_INDEX_CMONITORS
     57 * The guest driver writes dword 0xffffffff to the VBE_DISPI_INDEX_VBOX_VIDEO
    5158 * to disable the mode.
    5259 *
     60 * VBE_DISPI_INDEX_VBOX_VIDEO is used to read the configuration information
     61 * from the host and issue commands to the host.
     62 *
     63 * The guest writes the VBE_DISPI_INDEX_VBOX_VIDEO index register, the the
     64 * following operations with the VBE data register can be performed:
     65 *
     66 * Operation            Result
     67 * write 16 bit value   NOP
     68 * read 16 bit value    count of monitors
     69 * write 32 bit value   sets the vbox command value and the command processed by the host
     70 * read 32 bit value    result of the last vbox command is returned
    5371 */
    5472
     
    5674#define VBOX_VIDEO_NO_SCREEN ~0
    5775
     76#define VBOX_VIDEO_MAX_SCREENS 64
    5877
    5978/* The size of the information. */
     
    7291 */
    7392#define VBOX_VIDEO_INTERPRET_DISPLAY_MEMORY_BASE 0x00010000
     93
     94/* The value for port IO to read the number of monitors.
     95 */
     96#define VBOX_VIDEO_QUERY_MONITOR_COUNT           0x00020000
     97
     98/* The value for port IO to read the offscreen heap size value.
     99 */
     100#define VBOX_VIDEO_QUERY_OFFSCREEN_HEAP_SIZE     0x00020001
    74101
    75102/* The end of the information. */
     
    83110/* Information about host notifications for the driver. */
    84111#define VBOX_VIDEO_INFO_TYPE_HOST_EVENTS  4
     112/* Information about non-volatile guest VRAM heap. */
     113#define VBOX_VIDEO_INFO_TYPE_NV_HEAP      5
    85114
    86115
     
    161190    uint32_t fu32Events;
    162191} VBOXVIDEOINFOHOSTEVENTS;
     192
     193/* Resides in adapter info memory. Describes the non-volatile VRAM heap. */
     194typedef struct _VBOXVIDEOINFONVHEAP
     195{
     196    /* Absolute offset in VRAM of the start of the heap. */
     197    uint32_t u32HeapOffset;
     198
     199    /* The size of the heap. */
     200    uint32_t u32HeapSize;
     201
     202} VBOXVIDEOINFONVHEAP;
    163203#pragma pack()
    164204
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette