Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5955a9f5 authored by Narayan Kamath's avatar Narayan Kamath
Browse files

Remove reference to NOT_USING_KLIBC and cygwin.

The reference to NOT_USING_KLIBC appears to be the only one
in our codebase. This change also removes some cygwin specific
retry logic - all other supported platforms in this section
of the code should support mapping at an offset.

Note that i've reversed the sense of the check, we always sysconf
since that's recommended practice.

Change-Id: Ib985fb665193d7a07a282f7092cd77c0bc508a66
parent 29576ae8
Loading
Loading
Loading
Loading
+1 −14
Original line number Diff line number Diff line
@@ -141,20 +141,14 @@ bool FileMap::create(const char* origFileName, int fd, off64_t offset, size_t le

    // init on first use
    if (mPageSize == -1) {
#if NOT_USING_KLIBC
        mPageSize = sysconf(_SC_PAGESIZE);
        if (mPageSize == -1) {
            ALOGE("could not get _SC_PAGESIZE\n");
            return false;
        }
#else
        // this holds for Linux, Darwin, Cygwin, and doesn't pain the ARM
        mPageSize = 4096;
#endif
    }

    adjust = offset % mPageSize;
try_again:
    adjOffset = offset - adjust;
    adjLength = length + adjust;

@@ -165,13 +159,6 @@ try_again:

    ptr = mmap(NULL, adjLength, prot, flags, fd, adjOffset);
    if (ptr == MAP_FAILED) {
        // Cygwin does not seem to like file mapping files from an offset.
        // So if we fail, try again with offset zero
        if (adjOffset > 0) {
            adjust = offset;
            goto try_again;
        }

        ALOGE("mmap(%lld,%zu) failed: %s\n",
            (long long)adjOffset, adjLength, strerror(errno));
        return false;