Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-20374

VideoPortMapMemory(): Handle VIDEO_MEMORY_SPACE_IO flag

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Unresolved
    • Major
    • None
    • Win32SS
    • None

    Description

      (Noticed while looking at CORE-20298.)

      In case current code would be fine as is, add a code comment to explain why VIDEO_MEMORY_SPACE_IO can be "ignored".

      While here, add a comment, like 'Remove obsolete flag' to
      https://git.reactos.org/?p=reactos.git;a=blob;f=win32ss/drivers/videoprt/resource.c;hb=70119785be37da055ce66bc06430ee875f8051c0#l299

       299    InIoSpace &= ~VIDEO_MEMORY_SPACE_DENSE;
      

      –

      MS doc says some flags depend on VIDEO_MEMORY_SPACE_IO.

      https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/video/nf-video-videoportmapmemory

      VIDEO_MEMORY_SPACE_DENSE Obsolete.
      // ...
      VIDEO_MEMORY_SPACE_P6CACHE ... This flag is meaningful only if VIDEO_MEMORY_SPACE_IO is not set.
      VIDEO_MEMORY_SPACE_USER_MODE ... This flag is meaningful only if VIDEO_MEMORY_SPACE_IO is not set.

      –

      ROS code uses VIDEO_MEMORY_SPACE_IO on 1 call, but nowhere checks for it.

      https://git.reactos.org/?p=reactos.git&a=search&h=master&st=grep&s=VIDEO_MEMORY_SPACE_
      (Updated after 0.4.17-dev-1162-g47cbb08 (WriteCombining))

      sdk/include/ddk/video.h	
       132 #define VIDEO_MEMORY_SPACE_MEMORY         0x00
       133 #define VIDEO_MEMORY_SPACE_IO             0x01
       134 #define VIDEO_MEMORY_SPACE_USER_MODE      0x02
       135 #define VIDEO_MEMORY_SPACE_DENSE          0x04
       136 #define VIDEO_MEMORY_SPACE_P6CACHE        0x08
       
      win32ss/drivers/miniport/bochs/bochsmp.c	
       242     ULONG MemSpace = VIDEO_MEMORY_SPACE_MEMORY | VIDEO_MEMORY_SPACE_P6CACHE;
       497                                                                  ? VIDEO_MEMORY_SPACE_IO
       498                                                                  : VIDEO_MEMORY_SPACE_MEMORY);
       
      win32ss/drivers/miniport/pc98vid/ioctl.c	
       128     ULONG inIoSpace = VIDEO_MEMORY_SPACE_MEMORY;
      win32ss/drivers/miniport/pc98vid/pc98vid.c	
        63     ULONG inIoSpace = VIDEO_MEMORY_SPACE_MEMORY;
      win32ss/drivers/miniport/vbe/vbemp.c	
       776    ULONG inIoSpace = VIDEO_MEMORY_SPACE_MEMORY;
       783       inIoSpace |= VIDEO_MEMORY_SPACE_P6CACHE;
      win32ss/drivers/miniport/vga/vgamp.c	
       438   IoSpace = VIDEO_MEMORY_SPACE_MEMORY;
       603     IoSpace = VIDEO_MEMORY_SPACE_MEMORY;
      win32ss/drivers/miniport/xboxvmp/xboxvmp.c	
       102     ULONG inIoSpace = VIDEO_MEMORY_SPACE_MEMORY;
       396     ULONG inIoSpace = VIDEO_MEMORY_SPACE_MEMORY;
       
      win32ss/drivers/videoprt/resource.c	
       346    InIoSpace &= ~VIDEO_MEMORY_SPACE_DENSE;
       348    if (ProcessHandle != NULL && (InIoSpace & VIDEO_MEMORY_SPACE_USER_MODE) == 0)
       351              "VIDEO_MEMORY_SPACE_USER_MODE set! Setting "
       352              "VIDEO_MEMORY_SPACE_USER_MODE.\n",
       354       InIoSpace |= VIDEO_MEMORY_SPACE_USER_MODE;
       356    else if (ProcessHandle == NULL && (InIoSpace & VIDEO_MEMORY_SPACE_USER_MODE) != 0)
       359              "VIDEO_MEMORY_SPACE_USER_MODE set! Setting ProcessHandle "
       365    CacheType = (InIoSpace & VIDEO_MEMORY_SPACE_P6CACHE) ?
       368    if ((InIoSpace & VIDEO_MEMORY_SPACE_USER_MODE) == 0 &&
       394    AddressSpace &= ~(VIDEO_MEMORY_SPACE_USER_MODE | VIDEO_MEMORY_SPACE_P6CACHE);
       419    if ((InIoSpace & VIDEO_MEMORY_SPACE_USER_MODE) != 0)
       456       if ((InIoSpace & VIDEO_MEMORY_SPACE_USER_MODE) == 0)
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            Serge Gautherie Serge Gautherie
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: