[haiku-commits] haiku: hrev52314 - in src/add-ons/kernel/drivers/graphics: neomagic via skeleton ati 3dfx

  • From: waddlesplash <waddlesplash@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 6 Sep 2018 09:23:59 -0400 (EDT)

hrev52314 adds 1 changeset to branch 'master'
old head: 0e9dc76e5faa142f003ca81c33b733fc65fd9a0c
new head: a3a41a5b147a2428c90777c2c8c65bdfc0dc42c2
overview: 
https://git.haiku-os.org/haiku/log/?qt=range&q=a3a41a5b147a+%5E0e9dc76e5faa

----------------------------------------------------------------------------

a3a41a5b147a: Make areas cloned by accelerants effectively cloneable.
  
  Change-Id: I78046af6548e36571813ce516491c7fb64581967
  Reviewed-on: https://review.haiku-os.org/513
  Reviewed-by: waddlesplash <waddlesplash@xxxxxxxxx>

                                   [ Jérôme Duval <jerome.duval@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev52314
Commit:      a3a41a5b147a2428c90777c2c8c65bdfc0dc42c2
URL:         https://git.haiku-os.org/haiku/commit/?id=a3a41a5b147a
Author:      Jérôme Duval <jerome.duval@xxxxxxxxx>
Date:        Wed Sep  5 18:29:10 2018 UTC
Committer:   waddlesplash <waddlesplash@xxxxxxxxx>
Commit-Date: Thu Sep  6 13:23:55 2018 UTC

----------------------------------------------------------------------------

7 files changed, 21 insertions(+), 14 deletions(-)
src/add-ons/kernel/drivers/graphics/3dfx/driver.cpp      | 5 +++--
src/add-ons/kernel/drivers/graphics/ati/driver.cpp       | 5 +++--
src/add-ons/kernel/drivers/graphics/et6x00/driver.c      | 3 ++-
src/add-ons/kernel/drivers/graphics/intel_810/driver.cpp | 5 +++--
src/add-ons/kernel/drivers/graphics/neomagic/driver.c    | 7 ++++---
src/add-ons/kernel/drivers/graphics/skeleton/driver.c    | 5 +++--
src/add-ons/kernel/drivers/graphics/via/driver.c         | 5 +++--

----------------------------------------------------------------------------

diff --git a/src/add-ons/kernel/drivers/graphics/3dfx/driver.cpp 
b/src/add-ons/kernel/drivers/graphics/3dfx/driver.cpp
index 70ca7220bf..7b573e22fc 100644
--- a/src/add-ons/kernel/drivers/graphics/3dfx/driver.cpp
+++ b/src/add-ons/kernel/drivers/graphics/3dfx/driver.cpp
@@ -173,7 +173,7 @@ MapDevice(DeviceInfo& di)
                regsBase,
                regAreaSize,
                B_ANY_KERNEL_ADDRESS,
-               0,              // neither read nor write, to hide it from user 
space apps
+               B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA | 
B_USER_CLONEABLE_AREA,
                (void**)&di.regs);
 
        // If there was an error, delete other areas.
@@ -220,7 +220,8 @@ InitDevice(DeviceInfo& di)
                (void**) &(di.sharedInfo),
                B_ANY_KERNEL_ADDRESS,
                ROUND_TO_PAGE_SIZE(sharedSize),
-               B_FULL_LOCK, 0);
+               B_FULL_LOCK,
+               B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA | 
B_USER_CLONEABLE_AREA);
        if (di.sharedArea < 0)
                return di.sharedArea;   // return error code
 
diff --git a/src/add-ons/kernel/drivers/graphics/ati/driver.cpp 
b/src/add-ons/kernel/drivers/graphics/ati/driver.cpp
index cc302c6b04..711641f0c1 100644
--- a/src/add-ons/kernel/drivers/graphics/ati/driver.cpp
+++ b/src/add-ons/kernel/drivers/graphics/ati/driver.cpp
@@ -651,7 +651,7 @@ MapDevice(DeviceInfo& di)
                regsBase,
                regAreaSize,
                B_ANY_KERNEL_ADDRESS,
-               0,              // neither read nor write, to hide it from user 
space apps
+               B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA | 
B_USER_CLONEABLE_AREA,
                (void**)&di.regs);
 
        // If there was an error, delete other areas.
@@ -781,7 +781,8 @@ InitDevice(DeviceInfo& di)
                (void**) &(di.sharedInfo),
                B_ANY_KERNEL_ADDRESS,
                ROUND_TO_PAGE_SIZE(sharedSize + vesaModeTableSize),
-               B_FULL_LOCK, 0);
+               B_FULL_LOCK,
+               B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA | 
B_USER_CLONEABLE_AREA);
        if (di.sharedArea < 0)
                return di.sharedArea;   // return error code
 
diff --git a/src/add-ons/kernel/drivers/graphics/et6x00/driver.c 
b/src/add-ons/kernel/drivers/graphics/et6x00/driver.c
index 65157228f2..d38fa95714 100644
--- a/src/add-ons/kernel/drivers/graphics/et6x00/driver.c
+++ b/src/add-ons/kernel/drivers/graphics/et6x00/driver.c
@@ -465,7 +465,8 @@ char shared_name[B_OS_NAME_LENGTH];
         di->pcii.vendor_id, di->pcii.device_id,
         di->pcii.bus, di->pcii.device, di->pcii.function);
     /* create this area with NO user-space read or write permissions, to 
prevent accidental dammage */
-    di->sharedArea = create_area(shared_name, (void **)&(di->si), 
B_ANY_KERNEL_ADDRESS, ((sizeof(ET6000SharedInfo) + (B_PAGE_SIZE - 1)) & 
~(B_PAGE_SIZE - 1)), B_FULL_LOCK, 0);
+    di->sharedArea = create_area(shared_name, (void **)&(di->si), 
B_ANY_KERNEL_ADDRESS, ((sizeof(ET6000SharedInfo) + (B_PAGE_SIZE - 1)) & 
~(B_PAGE_SIZE - 1)), B_FULL_LOCK,
+               B_FULL_LOCK, B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA | 
B_USER_CLONEABLE_AREA);
     if (di->sharedArea < 0) {
         /* return the error */
         result = di->sharedArea;
diff --git a/src/add-ons/kernel/drivers/graphics/intel_810/driver.cpp 
b/src/add-ons/kernel/drivers/graphics/intel_810/driver.cpp
index fc71602661..cdf752a020 100644
--- a/src/add-ons/kernel/drivers/graphics/intel_810/driver.cpp
+++ b/src/add-ons/kernel/drivers/graphics/intel_810/driver.cpp
@@ -255,7 +255,8 @@ InitDevice(DeviceInfo& di)
                (void**) &(di.sharedInfo),
                B_ANY_KERNEL_ADDRESS,
                ROUND_TO_PAGE_SIZE(sharedSize),
-               B_FULL_LOCK, 0);
+               B_FULL_LOCK,
+               B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA | 
B_USER_CLONEABLE_AREA);
        if (di.sharedArea < 0)
                return di.sharedArea;   // return error code
 
@@ -285,7 +286,7 @@ InitDevice(DeviceInfo& di)
                regsBase,
                regAreaSize,
                B_ANY_KERNEL_ADDRESS,
-               B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA,
+               B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA | 
B_USER_CLONEABLE_AREA,
                (void**)&di.regs);
 
        if (si.regsArea < 0) {
diff --git a/src/add-ons/kernel/drivers/graphics/neomagic/driver.c 
b/src/add-ons/kernel/drivers/graphics/neomagic/driver.c
index 0a1618310b..c2343a3cfa 100644
--- a/src/add-ons/kernel/drivers/graphics/neomagic/driver.c
+++ b/src/add-ons/kernel/drivers/graphics/neomagic/driver.c
@@ -379,7 +379,7 @@ static status_t map_device(device_info *di)
                        di->pcii.u.h0.base_registers[registers],
                        di->pcii.u.h0.base_register_sizes[registers],
                        B_ANY_KERNEL_ADDRESS,
-                       (si->use_clone_bugfix ? B_READ_AREA|B_WRITE_AREA : 0),
+                       B_USER_CLONEABLE_AREA | (si->use_clone_bugfix ? 
B_READ_AREA|B_WRITE_AREA : 0),
                        (void **)&(di->regs));
                si->clone_bugfix_regs = (uint32 *) di->regs;
 
@@ -396,7 +396,7 @@ static status_t map_device(device_info *di)
                        di->pcii.u.h0.base_registers[registers2],
                        di->pcii.u.h0.base_register_sizes[registers2],
                        B_ANY_KERNEL_ADDRESS,
-                       (si->use_clone_bugfix ? B_READ_AREA|B_WRITE_AREA : 0),
+                       B_USER_CLONEABLE_AREA | (si->use_clone_bugfix ? 
B_READ_AREA|B_WRITE_AREA : 0),
                        (void **)&(di->regs2));
                si->clone_bugfix_regs2 = (uint32 *) di->regs2;
 
@@ -696,7 +696,8 @@ static status_t open_hook (const char* name, uint32 flags, 
void** cookie) {
                di->pcii.vendor_id, di->pcii.device_id,
                di->pcii.bus, di->pcii.device, di->pcii.function);
        /* create this area with NO user-space read or write permissions, to 
prevent accidental dammage */
-       di->shared_area = create_area(shared_name, (void **)&(di->si), 
B_ANY_KERNEL_ADDRESS, ((sizeof(shared_info) + (B_PAGE_SIZE - 1)) & 
~(B_PAGE_SIZE - 1)), B_FULL_LOCK, 0);
+       di->shared_area = create_area(shared_name, (void **)&(di->si), 
B_ANY_KERNEL_ADDRESS, ((sizeof(shared_info) + (B_PAGE_SIZE - 1)) & 
~(B_PAGE_SIZE - 1)), B_FULL_LOCK,
+               B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA | 
B_USER_CLONEABLE_AREA);
        if (di->shared_area < 0) {
                /* return the error */
                result = di->shared_area;
diff --git a/src/add-ons/kernel/drivers/graphics/skeleton/driver.c 
b/src/add-ons/kernel/drivers/graphics/skeleton/driver.c
index 1630070ee7..570858fda1 100644
--- a/src/add-ons/kernel/drivers/graphics/skeleton/driver.c
+++ b/src/add-ons/kernel/drivers/graphics/skeleton/driver.c
@@ -379,7 +379,7 @@ static status_t map_device(device_info *di)
                di->pcii.u.h0.base_registers_pci[registers],
                di->pcii.u.h0.base_register_sizes[registers],
                B_ANY_KERNEL_ADDRESS,
-               (si->use_clone_bugfix ? B_READ_AREA|B_WRITE_AREA : 0),
+               B_USER_CLONEABLE_AREA | (si->use_clone_bugfix ? 
B_READ_AREA|B_WRITE_AREA : 0),
                (void **)&(di->regs));
        si->clone_bugfix_regs = (uint32 *) di->regs;
 
@@ -648,7 +648,8 @@ static status_t open_hook (const char* name, uint32 flags, 
void** cookie) {
                di->pcii.vendor_id, di->pcii.device_id,
                di->pcii.bus, di->pcii.device, di->pcii.function);
        /* create this area with NO user-space read or write permissions, to 
prevent accidental dammage */
-       di->shared_area = create_area(shared_name, (void **)&(di->si), 
B_ANY_KERNEL_ADDRESS, ((sizeof(shared_info) + (B_PAGE_SIZE - 1)) & 
~(B_PAGE_SIZE - 1)), B_FULL_LOCK, 0);
+       di->shared_area = create_area(shared_name, (void **)&(di->si), 
B_ANY_KERNEL_ADDRESS, ((sizeof(shared_info) + (B_PAGE_SIZE - 1)) & 
~(B_PAGE_SIZE - 1)), B_FULL_LOCK,
+               B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA | 
B_USER_CLONEABLE_AREA);
        if (di->shared_area < 0) {
                /* return the error */
                result = di->shared_area;
diff --git a/src/add-ons/kernel/drivers/graphics/via/driver.c 
b/src/add-ons/kernel/drivers/graphics/via/driver.c
index 31f044e869..9b06c32afe 100644
--- a/src/add-ons/kernel/drivers/graphics/via/driver.c
+++ b/src/add-ons/kernel/drivers/graphics/via/driver.c
@@ -388,7 +388,7 @@ static status_t map_device(device_info *di)
                di->pcii.u.h0.base_registers_pci[registers],
                di->pcii.u.h0.base_register_sizes[registers],
                B_ANY_KERNEL_ADDRESS,
-               (si->use_clone_bugfix ? B_READ_AREA|B_WRITE_AREA : 0),
+               B_USER_CLONEABLE_AREA | (si->use_clone_bugfix ? 
B_READ_AREA|B_WRITE_AREA : 0),
                (void **)&(di->regs));
        si->clone_bugfix_regs = (uint32 *) di->regs;
 
@@ -657,7 +657,8 @@ static status_t open_hook (const char* name, uint32 flags, 
void** cookie) {
                di->pcii.vendor_id, di->pcii.device_id,
                di->pcii.bus, di->pcii.device, di->pcii.function);
        /* create this area with NO user-space read or write permissions, to 
prevent accidental dammage */
-       di->shared_area = create_area(shared_name, (void **)&(di->si), 
B_ANY_KERNEL_ADDRESS, ((sizeof(shared_info) + (B_PAGE_SIZE - 1)) & 
~(B_PAGE_SIZE - 1)), B_FULL_LOCK, 0);
+       di->shared_area = create_area(shared_name, (void **)&(di->si), 
B_ANY_KERNEL_ADDRESS, ((sizeof(shared_info) + (B_PAGE_SIZE - 1)) & 
~(B_PAGE_SIZE - 1)), B_FULL_LOCK,
+               B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA | 
B_USER_CLONEABLE_AREA);
        if (di->shared_area < 0) {
                /* return the error */
                result = di->shared_area;


Other related posts:

  • » [haiku-commits] haiku: hrev52314 - in src/add-ons/kernel/drivers/graphics: neomagic via skeleton ati 3dfx - waddlesplash