[haiku-commits] Change in haiku[master]: openfirmware: fix of_seek for 64bit systems

  • From: Gerrit <review@xxxxxxxxxxxxxxxxxxx>
  • To: waddlesplash <waddlesplash@xxxxxxxxx>, haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 14 Mar 2020 19:23:25 +0000

From Adrien Destugues <pulkomandy@xxxxxxxxx>:

Adrien Destugues has uploaded this change for review. ( 
https://review.haiku-os.org/c/haiku/+/2351 ;)


Change subject: openfirmware: fix of_seek for 64bit systems
......................................................................

openfirmware: fix of_seek for 64bit systems

The position is on 2 cells even on 64bit systems.
---
M src/system/kernel/platform/openfirmware/openfirmware.cpp
1 file changed, 7 insertions(+), 2 deletions(-)



  git pull ssh://git.haiku-os.org:22/haiku refs/changes/51/2351/1

diff --git a/src/system/kernel/platform/openfirmware/openfirmware.cpp 
b/src/system/kernel/platform/openfirmware/openfirmware.cpp
index 43e508d..a803a20 100644
--- a/src/system/kernel/platform/openfirmware/openfirmware.cpp
+++ b/src/system/kernel/platform/openfirmware/openfirmware.cpp
@@ -472,14 +472,19 @@
 intptr_t
 of_seek(intptr_t handle, off_t pos)
 {
+       intptr_t pos_hi = 0;
+       if (sizeof(off_t) > sizeof(intptr_t))
+               pos_hi = pos >> ((sizeof(off_t) - sizeof(intptr_t)) * CHAR_BIT);
+
        struct {
                const char      *name;
                intptr_t        num_args;
                intptr_t        num_returns;
                intptr_t        handle;
-               int64           pos;
+               intptr_t        pos_hi;
+               intptr_t        pos;
                intptr_t        status;
-       } args = {"seek", 3, 1, handle, pos, 0};
+       } args = {"seek", 3, 1, handle, pos_hi, pos, 0};

        if (gCallOpenFirmware(&args) == OF_FAILED)
                return OF_FAILED;

--
To view, visit https://review.haiku-os.org/c/haiku/+/2351
To unsubscribe, or for help writing mail filters, visit 
https://review.haiku-os.org/settings

Gerrit-Project: haiku
Gerrit-Branch: master
Gerrit-Change-Id: I97f4e3fc02734c548ed23445a917a894ff548379
Gerrit-Change-Number: 2351
Gerrit-PatchSet: 1
Gerrit-Owner: Adrien Destugues <pulkomandy@xxxxxxxxx>
Gerrit-MessageType: newchange

Other related posts:

  • » [haiku-commits] Change in haiku[master]: openfirmware: fix of_seek for 64bit systems - Gerrit