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 <hal_public.h>
     21 #include <common/GrallocBufferMapperBase.h>
     22 #include <tangier/TngGrallocBuffer.h>
     23 
     24 namespace android {
     25 namespace intel {
     26 
     27 class TngGrallocBufferMapper : public GrallocBufferMapperBase {
     28 public:
     29     TngGrallocBufferMapper(const hw_device_t& gralloc, DataBuffer& buffer);
     30     virtual ~TngGrallocBufferMapper();
     31 public:
     32     bool map();
     33     bool unmap();
     34     buffer_handle_t getKHandle(int subIndex);
     35     buffer_handle_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     const hw_device_t& mGralloc;
     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