diff options
Diffstat (limited to 'libs/binder/ProcessState.cpp')
-rw-r--r-- | libs/binder/ProcessState.cpp | 33 |
1 files changed, 8 insertions, 25 deletions
diff --git a/libs/binder/ProcessState.cpp b/libs/binder/ProcessState.cpp index b25cd7bf12..8b074ad16a 100644 --- a/libs/binder/ProcessState.cpp +++ b/libs/binder/ProcessState.cpp @@ -40,7 +40,7 @@ #include <sys/stat.h> #include <sys/types.h> -#define DEFAULT_BINDER_VM_SIZE ((1 * 1024 * 1024) - sysconf(_SC_PAGE_SIZE) * 2) +#define BINDER_VM_SIZE ((1 * 1024 * 1024) - sysconf(_SC_PAGE_SIZE) * 2) #define DEFAULT_MAX_BINDER_THREADS 15 #ifdef __ANDROID_VNDK__ @@ -77,13 +77,7 @@ sp<ProcessState> ProcessState::self() if (gProcess != nullptr) { return gProcess; } - gProcess = new ProcessState(kDefaultDriver, DEFAULT_BINDER_VM_SIZE); - return gProcess; -} - -sp<ProcessState> ProcessState::selfOrNull() -{ - Mutex::Autolock _l(gProcessMutex); + gProcess = new ProcessState(kDefaultDriver); return gProcess; } @@ -104,19 +98,13 @@ sp<ProcessState> ProcessState::initWithDriver(const char* driver) driver = "/dev/binder"; } - gProcess = new ProcessState(driver, DEFAULT_BINDER_VM_SIZE); + gProcess = new ProcessState(driver); return gProcess; } -sp<ProcessState> ProcessState::initWithMmapSize(size_t mmap_size) { +sp<ProcessState> ProcessState::selfOrNull() +{ Mutex::Autolock _l(gProcessMutex); - if (gProcess != nullptr) { - LOG_ALWAYS_FATAL_IF(mmap_size != gProcess->getMmapSize(), - "ProcessState already initialized with a different mmap size."); - return gProcess; - } - - gProcess = new ProcessState(kDefaultDriver, mmap_size); return gProcess; } @@ -249,10 +237,6 @@ ssize_t ProcessState::getKernelReferences(size_t buf_count, uintptr_t* buf) return count; } -size_t ProcessState::getMmapSize() { - return mMmapSize; -} - void ProcessState::setCallRestriction(CallRestriction restriction) { LOG_ALWAYS_FATAL_IF(IPCThreadState::selfOrNull(), "Call restrictions must be set before the threadpool is started."); @@ -437,7 +421,7 @@ static int open_driver(const char *driver) return fd; } -ProcessState::ProcessState(const char *driver, size_t mmap_size) +ProcessState::ProcessState(const char *driver) : mDriverName(String8(driver)) , mDriverFD(open_driver(driver)) , mVMStart(MAP_FAILED) @@ -451,12 +435,11 @@ ProcessState::ProcessState(const char *driver, size_t mmap_size) , mBinderContextUserData(nullptr) , mThreadPoolStarted(false) , mThreadPoolSeq(1) - , mMmapSize(mmap_size) , mCallRestriction(CallRestriction::NONE) { if (mDriverFD >= 0) { // mmap the binder, providing a chunk of virtual address space to receive transactions. - mVMStart = mmap(nullptr, mMmapSize, PROT_READ, MAP_PRIVATE | MAP_NORESERVE, mDriverFD, 0); + mVMStart = mmap(nullptr, BINDER_VM_SIZE, PROT_READ, MAP_PRIVATE | MAP_NORESERVE, mDriverFD, 0); if (mVMStart == MAP_FAILED) { // *sigh* ALOGE("Using %s failed: unable to mmap transaction memory.\n", mDriverName.c_str()); @@ -473,7 +456,7 @@ ProcessState::~ProcessState() { if (mDriverFD >= 0) { if (mVMStart != MAP_FAILED) { - munmap(mVMStart, mMmapSize); + munmap(mVMStart, BINDER_VM_SIZE); } close(mDriverFD); } |