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(gralloc_module_t const& module,
     29                                DataBuffer& buffer);
     30     virtual ~TngGrallocBufferMapper();
     31 public:
     32     bool map();
     33     bool unmap();
     34     uint32_t getKHandle(int subIndex);
     35     uint32_t getFbHandle(int subIndex);
     36     void putFbHandle();
     37 private:
     38     bool gttMap(void *vaddr, uint32_t size, uint32_t gttAlign, int *offset);
     39     bool gttUnmap(void *vaddr);
     40     bool mapKhandle();
     41 
     42 private:
     43     gralloc_module_t const& mGrallocModule;
     44     void* mBufferObject;
     45     native_handle_t* mClonedHandle;
     46 };
     47 
     48 } // namespace intel
     49 } // namespace android
     50 
     51 #endif /* TNG_GRALLOC_BUFFER_MAPPER_H */
     52