[haiku-commits] haiku: hrev52032 - src/add-ons/kernel/drivers/graphics/intel_extreme 3rdparty/qtcreator

  • From: waddlesplash <waddlesplash@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 24 Jun 2018 23:52:48 -0400 (EDT)

hrev52032 adds 3 changesets to branch 'master'
old head: 32b50a8831a959ba74c0df7555301d7a92c381db
new head: abb59d7351c7ddb50c63c40430a82d94fa61917a
overview: 
https://git.haiku-os.org/haiku/log/?qt=range&q=abb59d7351c7+%5E32b50a8831a9

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

b31cb92f29fe: 3rdparty/qtcreator: Support for multiple directories in one 
project.

14ec6c8b23a5: intel_extreme: Remove some non-Haiku cases from device_ioctl.

abb59d7351c7: intel_extreme: Fix instances of user memory creation and access.
  
  You still cannot boot to desktop under SMAP on intel_extreme, however,
  as the agp_gart bus has not been patched properly. Doing so breaks the
  intel_extreme accelerant, so more investigation is needed.

                              [ Augustin Cavalier <waddlesplash@xxxxxxxxx> ]

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

3 files changed, 29 insertions(+), 36 deletions(-)
3rdparty/qtcreator/create_project_file.sh        | 21 ++++++++----
.../drivers/graphics/intel_extreme/device.cpp    | 36 ++++++--------------
.../graphics/intel_extreme/intel_extreme.cpp     |  8 ++---

############################################################################

Commit:      b31cb92f29fe89eaca84d173d0f70d38bf0c6a3d
URL:         https://git.haiku-os.org/haiku/commit/?id=b31cb92f29fe
Author:      Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date:        Mon Jun 25 03:13:09 2018 UTC

3rdparty/qtcreator: Support for multiple directories in one project.

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

diff --git a/3rdparty/qtcreator/create_project_file.sh 
b/3rdparty/qtcreator/create_project_file.sh
index ce9fb8a857..53f1b5d4ab 100755
--- a/3rdparty/qtcreator/create_project_file.sh
+++ b/3rdparty/qtcreator/create_project_file.sh
@@ -1,27 +1,34 @@
 #!/bin/sh
 
-if [ "$#" -ne 2 ]; then
+if [ "$#" -lt 2 ]; then
        echo "This script creates project files for Qt Creator to develop Haiku 
with."
        echo "It should only be used on a per-project basis, as Qt Creator is 
too slow"
        echo "when used on all of Haiku at once."
        echo ""
        echo "THIS SCRIPT *MUST* BE RUN FROM THE REPOSITORY ROOT."
        echo ""
-       echo "Usage: <script> <project name> <path to project root>"
-       echo "e.g: create_project_file.sh Tracker src/kits/tracker/"
+       echo "Usage: <script> <project name> <path 1> <path 2> ..."
+       echo "e.g: create_project_file.sh Tracker src/kits/tracker/ 
src/apps/tracker/"
        exit 1
 fi
 
 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 NAME=$1
-ROOTDIR=$2
+ROOTDIRS=${@:2}
 
 printf "// Add predefined macros for your project here. For example:\n// 
#define THE_ANSWER 42\n" \
        >$DIR/$NAME.config
 printf "[General]\n" >$DIR/$NAME.creator
 
-# Build lists of files
-find $ROOTDIR -type f | sed "s@^@../../@" >$DIR/$NAME.files
-find $ROOTDIR -type d | sed "s@^@../../@" >$DIR/$NAME.includes
+# Clear the old file lists
+echo >$DIR/$NAME.files
+echo >$DIR/$NAME.includes
+
+# Build file lists
+for rootdir in $ROOTDIRS; do
+       find $rootdir -type f | sed "s@^@../../@" >>$DIR/$NAME.files
+       find $rootdir -type d | sed "s@^@../../@" >>$DIR/$NAME.includes
+done
 find headers -type d | sed "s@^@../../@" >>$DIR/$NAME.includes
+
 echo "Done. Project file: $DIR/$NAME.creator"

############################################################################

Commit:      14ec6c8b23a5a955bab0e60589fff7d316e94d53
URL:         https://git.haiku-os.org/haiku/commit/?id=14ec6c8b23a5
Author:      Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date:        Mon Jun 25 03:14:06 2018 UTC

intel_extreme: Remove some non-Haiku cases from device_ioctl.

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

diff --git a/src/add-ons/kernel/drivers/graphics/intel_extreme/device.cpp 
b/src/add-ons/kernel/drivers/graphics/intel_extreme/device.cpp
index 12c6ef8849..fa60cff07e 100644
--- a/src/add-ons/kernel/drivers/graphics/intel_extreme/device.cpp
+++ b/src/add-ons/kernel/drivers/graphics/intel_extreme/device.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright 2006-2009, Haiku, Inc. All Rights Reserved.
+ * Copyright 2006-2018, Haiku, Inc. All Rights Reserved.
  * Distributed under the terms of the MIT License.
  *
  * Authors:
@@ -204,28 +204,18 @@ device_ioctl(void* data, uint32 op, void* buffer, size_t 
bufferLength)
 
                // needed for cloning
                case INTEL_GET_DEVICE_NAME:
-#ifdef __HAIKU__
                        if (user_strlcpy((char* )buffer, gDeviceNames[info->id],
                                        B_PATH_NAME_LENGTH) < B_OK)
                                return B_BAD_ADDRESS;
-#else
-                       strncpy((char* )buffer, gDeviceNames[info->id], 
B_PATH_NAME_LENGTH);
-                       ((char* )buffer)[B_PATH_NAME_LENGTH - 1] = '\0';
-#endif
                        return B_OK;
 
                // graphics mem manager
                case INTEL_ALLOCATE_GRAPHICS_MEMORY:
                {
                        intel_allocate_graphics_memory allocMemory;
-#ifdef __HAIKU__
                        if (user_memcpy(&allocMemory, buffer,
                                        sizeof(intel_allocate_graphics_memory)) 
< B_OK)
                                return B_BAD_ADDRESS;
-#else
-                       memcpy(&allocMemory, buffer,
-                               sizeof(intel_allocate_graphics_memory));
-#endif
 
                        if (allocMemory.magic != INTEL_PRIVATE_DATA_MAGIC)
                                return B_BAD_VALUE;
@@ -235,14 +225,9 @@ device_ioctl(void* data, uint32 op, void* buffer, size_t 
bufferLength)
                                &allocMemory.buffer_base);
                        if (status == B_OK) {
                                // copy result
-#ifdef __HAIKU__
                                if (user_memcpy(buffer, &allocMemory,
                                                
sizeof(intel_allocate_graphics_memory)) < B_OK)
                                        return B_BAD_ADDRESS;
-#else
-                               memcpy(buffer, &allocMemory,
-                                       sizeof(intel_allocate_graphics_memory));
-#endif
                        }
                        return status;
                }
@@ -250,13 +235,9 @@ device_ioctl(void* data, uint32 op, void* buffer, size_t 
bufferLength)
                case INTEL_FREE_GRAPHICS_MEMORY:
                {
                        intel_free_graphics_memory freeMemory;
-#ifdef __HAIKU__
                        if (user_memcpy(&freeMemory, buffer,
                                        sizeof(intel_free_graphics_memory)) < 
B_OK)
                                return B_BAD_ADDRESS;
-#else
-                       memcpy(&freeMemory, buffer, 
sizeof(intel_free_graphics_memory));
-#endif
 
                        if (freeMemory.magic == INTEL_PRIVATE_DATA_MAGIC)
                                return intel_free_memory(*info, 
freeMemory.buffer_base);

############################################################################

Revision:    hrev52032
Commit:      abb59d7351c7ddb50c63c40430a82d94fa61917a
URL:         https://git.haiku-os.org/haiku/commit/?id=abb59d7351c7
Author:      Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date:        Mon Jun 25 03:33:32 2018 UTC

intel_extreme: Fix instances of user memory creation and access.

You still cannot boot to desktop under SMAP on intel_extreme, however,
as the agp_gart bus has not been patched properly. Doing so breaks the
intel_extreme accelerant, so more investigation is needed.

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

diff --git a/src/add-ons/kernel/drivers/graphics/intel_extreme/device.cpp 
b/src/add-ons/kernel/drivers/graphics/intel_extreme/device.cpp
index fa60cff07e..6a6fd701a0 100644
--- a/src/add-ons/kernel/drivers/graphics/intel_extreme/device.cpp
+++ b/src/add-ons/kernel/drivers/graphics/intel_extreme/device.cpp
@@ -186,18 +186,23 @@ device_ioctl(void* data, uint32 op, void* buffer, size_t 
bufferLength)
 
        switch (op) {
                case B_GET_ACCELERANT_SIGNATURE:
-                       strcpy((char*)buffer, INTEL_ACCELERANT_NAME);
                        TRACE("accelerant: %s\n", INTEL_ACCELERANT_NAME);
+                       if (user_strlcpy((char*)buffer, INTEL_ACCELERANT_NAME,
+                                       B_FILE_NAME_LENGTH) < B_OK)
+                               return B_BAD_ADDRESS;
                        return B_OK;
 
                // needed to share data between kernel and accelerant
                case INTEL_GET_PRIVATE_DATA:
                {
-                       intel_get_private_data* data = (intel_get_private_data* 
)buffer;
+                       intel_get_private_data data;
+                       if (user_memcpy(&data, buffer, 
sizeof(intel_get_private_data)) < B_OK)
+                               return B_BAD_ADDRESS;
 
-                       if (data->magic == INTEL_PRIVATE_DATA_MAGIC) {
-                               data->shared_info_area = info->shared_area;
-                               return B_OK;
+                       if (data.magic == INTEL_PRIVATE_DATA_MAGIC) {
+                               data.shared_info_area = info->shared_area;
+                               return user_memcpy(buffer, &data,
+                                       sizeof(intel_get_private_data));
                        }
                        break;
                }
diff --git 
a/src/add-ons/kernel/drivers/graphics/intel_extreme/intel_extreme.cpp 
b/src/add-ons/kernel/drivers/graphics/intel_extreme/intel_extreme.cpp
index 3ff213d82e..cb4159a8dc 100644
--- a/src/add-ons/kernel/drivers/graphics/intel_extreme/intel_extreme.cpp
+++ b/src/add-ons/kernel/drivers/graphics/intel_extreme/intel_extreme.cpp
@@ -212,8 +212,8 @@ init_interrupt_handler(intel_info &info)
 
        // Find the right interrupt vector, using MSIs if available.
        info.irq = 0xff;
-       info.use_msi = false;   
-       if (info.pci->u.h0.interrupt_pin != 0x00)       
+       info.use_msi = false;
+       if (info.pci->u.h0.interrupt_pin != 0x00)
                info.irq = info.pci->u.h0.interrupt_line;
        if (gPCIx86Module != NULL && gPCIx86Module->get_msi_count(info.pci->bus,
                        info.pci->device, info.pci->function) >= 1) {
@@ -316,7 +316,7 @@ intel_extreme_init(intel_info &info)
        info.shared_area = sharedCreator.Create("intel extreme shared info",
                (void**)&info.shared_info, B_ANY_KERNEL_ADDRESS,
                ROUND_TO_PAGE_SIZE(sizeof(intel_shared_info)) + 3 * B_PAGE_SIZE,
-               B_FULL_LOCK, 0);
+               B_FULL_LOCK, B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA | 
B_USER_CLONEABLE_AREA);
        if (info.shared_area < B_OK) {
                ERROR("error: could not create shared area!\n");
                gGART->unmap_aperture(info.aperture);
@@ -484,7 +484,7 @@ intel_extreme_init(intel_info &info)
        status_t status = intel_allocate_memory(info, B_PAGE_SIZE, 0,
                intel_uses_physical_overlay(*info.shared_info)
                                ? B_APERTURE_NEED_PHYSICAL : 0,
-               (addr_t*)&info.overlay_registers, 
+               (addr_t*)&info.overlay_registers,
                &info.shared_info->physical_overlay_registers);
        if (status == B_OK) {
                info.shared_info->overlay_offset = 
(addr_t)info.overlay_registers


Other related posts:

  • » [haiku-commits] haiku: hrev52032 - src/add-ons/kernel/drivers/graphics/intel_extreme 3rdparty/qtcreator - waddlesplash