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