From 9ab360fd018d267fe174713d7e14454408b26043 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 17 Dec 2022 10:33:01 -0800
Subject: [PATCH] Replace lfs64 functions and defines

AC_SYS_LARGEFILE is already in use in configure.ac which detects
enabling lfs64 functions as needed, it will define _FILE_OFFSET_BITS=64
which should make lseek same as lseek64 since off_t is 64bit on most of
current 32bit linux platforms

Upstream-Status: Submitted [https://github.com/stressapptest/stressapptest/pull/100]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 src/os.cc     | 18 ++++++------------
 src/worker.cc |  6 +++---
 2 files changed, 9 insertions(+), 15 deletions(-)

diff --git a/src/os.cc b/src/os.cc
index 1928e0a..faa6068 100644
--- a/src/os.cc
+++ b/src/os.cc
@@ -142,7 +142,7 @@ int OsLayer::AddressMode() {
 uint64 OsLayer::VirtualToPhysical(void *vaddr) {
   uint64 frame, paddr, pfnmask, pagemask;
   int pagesize = sysconf(_SC_PAGESIZE);
-  off64_t off = ((uintptr_t)vaddr) / pagesize * 8;
+  off_t off = ((uintptr_t)vaddr) / pagesize * 8;
   int fd = open(kPagemapPath, O_RDONLY);
 
   /*
@@ -154,7 +154,7 @@ uint64 OsLayer::VirtualToPhysical(void *vaddr) {
   if (fd < 0)
     return 0;
 
-  if (lseek64(fd, off, SEEK_SET) != off || read(fd, &frame, 8) != 8) {
+  if (lseek(fd, off, SEEK_SET) != off || read(fd, &frame, 8) != 8) {
     int err = errno;
     string errtxt = ErrorString(err);
     logprintf(0, "Process Error: failed to access %s with errno %d (%s)\n",
@@ -607,9 +607,9 @@ bool OsLayer::AllocateTestMem(int64 length, uint64 paddr_base) {
         dynamic_mapped_shmem_ = true;
       } else {
         // Do a full mapping here otherwise.
-        shmaddr = mmap64(NULL, length, PROT_READ | PROT_WRITE,
-                         MAP_SHARED | MAP_NORESERVE | MAP_LOCKED | MAP_POPULATE,
-                         shm_object, 0);
+        shmaddr = mmap(NULL, length, PROT_READ | PROT_WRITE,
+                       MAP_SHARED | MAP_NORESERVE | MAP_LOCKED | MAP_POPULATE,
+                       shm_object, 0);
         if (shmaddr == reinterpret_cast<void*>(-1)) {
           int err = errno;
           string errtxt = ErrorString(err);
@@ -704,18 +704,12 @@ void *OsLayer::PrepareTestMem(uint64 offset, uint64 length) {
   if (dynamic_mapped_shmem_) {
     // TODO(nsanders): Check if we can support MAP_NONBLOCK,
     // and evaluate performance hit from not using it.
-#ifdef HAVE_MMAP64
-    void * mapping = mmap64(NULL, length, PROT_READ | PROT_WRITE,
-                     MAP_SHARED | MAP_NORESERVE | MAP_LOCKED | MAP_POPULATE,
-                     shmid_, offset);
-#else
     void * mapping = mmap(NULL, length, PROT_READ | PROT_WRITE,
                      MAP_SHARED | MAP_NORESERVE | MAP_LOCKED | MAP_POPULATE,
                      shmid_, offset);
-#endif
     if (mapping == MAP_FAILED) {
       string errtxt = ErrorString(errno);
-      logprintf(0, "Process Error: PrepareTestMem mmap64(%llx, %llx) failed. "
+      logprintf(0, "Process Error: PrepareTestMem mmap(%llx, %llx) failed. "
                    "error: %s.\n",
                 offset, length, errtxt.c_str());
       sat_assert(0);
diff --git a/src/worker.cc b/src/worker.cc
index 745a816..41e93a0 100644
--- a/src/worker.cc
+++ b/src/worker.cc
@@ -1705,7 +1705,7 @@ bool FileThread::WritePages(int fd) {
   int strict = sat_->strict();
 
   // Start fresh at beginning of file for each batch of pages.
-  lseek64(fd, 0, SEEK_SET);
+  lseek(fd, 0, SEEK_SET);
   for (int i = 0; i < sat_->disk_pages(); i++) {
     struct page_entry src;
     if (!GetValidPage(&src))
@@ -1943,7 +1943,7 @@ bool FileThread::ReadPages(int fd) {
   bool result = true;
 
   // Read our data back out of the file, into it's new location.
-  lseek64(fd, 0, SEEK_SET);
+  lseek(fd, 0, SEEK_SET);
   for (int i = 0; i < sat_->disk_pages(); i++) {
     struct page_entry dst;
     if (!GetEmptyPage(&dst))
@@ -3153,7 +3153,7 @@ bool DiskThread::ValidateBlockOnDisk(int fd, BlockData *block) {
 
   // Read block from disk and time the read.  If it takes longer than the
   // threshold, complain.
-  if (lseek64(fd, address * kSectorSize, SEEK_SET) == -1) {
+  if (lseek(fd, address * kSectorSize, SEEK_SET) == -1) {
     logprintf(0, "Process Error: Unable to seek to sector %lld in "
               "DiskThread::ValidateSectorsOnDisk on disk %s "
               "(thread %d).\n", address, device_name_.c_str(), thread_num_);
