Home | History | Annotate | Download | only in tangier
      1 /*
      2 // Copyright(c)2014 IntelCorporation
      3 //
      4 // LicensedundertheApacheLicense,Version2.0(the"License");
      5 // youmaynotusethisfileexceptincompliancewiththeLicense.
      6 // YoumayobtainacopyoftheLicenseat
      7 //
      8 // http://www.apache.org/licenses/LICENSE-2.0
      9 //
     10 // Unlessrequiredbyapplicablelaworagreedtoinwriting,software
     11 // distributedundertheLicenseisdistributedonan"ASIS"BASIS,
     12 // WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.
     13 // SeetheLicenseforthespecificlanguagegoverningpermissionsand
     14 // limitationsundertheLicense.
     15 */
     16 #ifndef TNG_GRALLOC_BUFFER_MAPPER_H
     17 #define TNG_GRALLOC_BUFFER_MAPPER_H
     18 
     19 #include <BufferMapper.h>
     20 #include <ips/common/GrallocBufferMapperBase.h>
     21 #include <ips/tangier/TngGrallocBuffer.h>
     22 
     23 namespace android {
     24 namespace intel {
     25 
     26 class TngGrallocBufferMapper : public GrallocBufferMapperBase {
     27 public:
     28     TngGrallocBufferMapper(const hw_device_t& gralloc, DataBuffer& buffer);
     29     virtual ~TngGrallocBufferMapper();
     30 public:
     31     bool map();
     32     bool unmap();
     33     uint32_t getKHandle(int subIndex);
     34     uint32_t getFbHandle(int subIndex);
     35     void putFbHandle();
     36 private:
     37     bool gttMap(void *vaddr, uint32_t size, uint32_t gttAlign, int *offset);
     38     bool gttUnmap(void *vaddr);
     39     bool mapKhandle();
     40 
     41 private:
     42     const hw_device_t& mGralloc;
     43     void* mBufferObject;
     44     native_handle_t* mClonedHandle;
     45 };
     46 
     47 } // namespace intel
     48 } // namespace android
     49 
     50 #endif /* TNG_GRALLOC_BUFFER_MAPPER_H */
     51