Skip to content

Commit

Permalink
Revert "shm: remove size hack"
Browse files Browse the repository at this point in the history
This reverts commit 662b23b.
  • Loading branch information
DHrpcs3 committed Oct 22, 2024
1 parent 1fbb7c2 commit 418780e
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 7 deletions.
15 changes: 10 additions & 5 deletions rpcsx/io-device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@

struct HostFile : orbis::File {
bool closeOnExit = true;
bool alignTruncate = false;

~HostFile() {
if (hostFd > 0 && closeOnExit) {
Expand Down Expand Up @@ -437,10 +438,12 @@ static orbis::ErrorCode host_truncate(orbis::File *file, std::uint64_t len,
return orbis::ErrorCode::ISDIR;
}

if (hostFile->alignTruncate) {
len = rx::alignUp(len, vm::kPageSize);
}

if (::ftruncate(hostFile->hostFd, len)) {
auto result = convertErrno();
ORBIS_LOG_ERROR("host_truncate", hostFile->hostFd, len);
return result;
return convertErrno();
}

return {};
Expand Down Expand Up @@ -934,11 +937,13 @@ orbis::ErrorCode HostFsDevice::rename(const char *from, const char *to,
return convertErrorCode(ec);
}

orbis::File *createHostFile(int hostFd, orbis::Ref<IoDevice> device) {
orbis::File *createHostFile(int hostFd, orbis::Ref<IoDevice> device,
bool alignTruncate) {
auto newFile = orbis::knew<HostFile>();
newFile->hostFd = hostFd;
newFile->ops = &hostOps;
newFile->device = std::move(device);
newFile->device = device;
newFile->alignTruncate = alignTruncate;
return newFile;
}

Expand Down
2 changes: 1 addition & 1 deletion rpcsx/io-device.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,5 +74,5 @@ IoDevice *createHostIoDevice(orbis::kstring hostPath, orbis::kstring virtualPath
orbis::Ref<orbis::File> wrapSocket(int hostFd, orbis::kstring name, int dom, int type, int prot);
orbis::ErrorCode createSocket(orbis::Ref<orbis::File> *file,
orbis::kstring name, int dom, int type, int prot);
orbis::File *createHostFile(int hostFd, orbis::Ref<IoDevice> device);
orbis::File *createHostFile(int hostFd, orbis::Ref<IoDevice> device, bool alignTruncate = false);
IoDevice *createFdWrapDevice(int fd);
2 changes: 1 addition & 1 deletion rpcsx/iodev/shm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ orbis::ErrorCode ShmDevice::open(orbis::Ref<orbis::File> *file,
return convertErrno();
}

auto hostFile = createHostFile(fd, this);
auto hostFile = createHostFile(fd, this, true);
*file = hostFile;
return {};
}
Expand Down

0 comments on commit 418780e

Please sign in to comment.