diff options
author | Mathias Agopian <mathias@google.com> | 2009-05-19 19:08:10 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2009-05-20 12:55:03 -0700 |
commit | 0795272aa226f4e965968a03daddc53ce30b7cda (patch) | |
tree | 6b4e8ba5e57c5dcf2dd770c24e14c43eda42fdd7 /include/binder/IMemory.h | |
parent | 25ba5b6564224dceefa086b5c439ef28dad530ca (diff) | |
download | frameworks_base-0795272aa226f4e965968a03daddc53ce30b7cda.zip frameworks_base-0795272aa226f4e965968a03daddc53ce30b7cda.tar.gz frameworks_base-0795272aa226f4e965968a03daddc53ce30b7cda.tar.bz2 |
move libbinder's header files under includes/binder
Diffstat (limited to 'include/binder/IMemory.h')
-rw-r--r-- | include/binder/IMemory.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/include/binder/IMemory.h b/include/binder/IMemory.h new file mode 100644 index 0000000..182792c --- /dev/null +++ b/include/binder/IMemory.h @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2007 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ANDROID_IMEMORY_H +#define ANDROID_IMEMORY_H + +#include <stdint.h> +#include <sys/types.h> +#include <sys/mman.h> + +#include <utils/RefBase.h> +#include <utils/Errors.h> +#include <binder/IInterface.h> + +namespace android { + +// ---------------------------------------------------------------------------- + +class IMemoryHeap : public IInterface +{ +public: + DECLARE_META_INTERFACE(MemoryHeap); + + // flags returned by getFlags() + enum { + READ_ONLY = 0x00000001, + MAP_ONCE = 0x00000002 + }; + + virtual int getHeapID() const = 0; + virtual void* getBase() const = 0; + virtual size_t getSize() const = 0; + virtual uint32_t getFlags() const = 0; + + // these are there just for backward source compatibility + int32_t heapID() const { return getHeapID(); } + void* base() const { return getBase(); } + size_t virtualSize() const { return getSize(); } +}; + +class BnMemoryHeap : public BnInterface<IMemoryHeap> +{ +public: + virtual status_t onTransact( + uint32_t code, + const Parcel& data, + Parcel* reply, + uint32_t flags = 0); +}; + +// ---------------------------------------------------------------------------- + +class IMemory : public IInterface +{ +public: + DECLARE_META_INTERFACE(Memory); + + virtual sp<IMemoryHeap> getMemory(ssize_t* offset=0, size_t* size=0) const = 0; + + // helpers + void* fastPointer(const sp<IBinder>& heap, ssize_t offset) const; + void* pointer() const; + size_t size() const; + ssize_t offset() const; +}; + +class BnMemory : public BnInterface<IMemory> +{ +public: + virtual status_t onTransact( + uint32_t code, + const Parcel& data, + Parcel* reply, + uint32_t flags = 0); +}; + +// ---------------------------------------------------------------------------- + +}; // namespace android + +#endif // ANDROID_IMEMORY_H |