13410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin/*
23410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * OMAP3430 support
33410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin *
43410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * Author: Michael Barabanov <michael.barabanov@windriver.com>
53410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * Author: Srini Gosangi <srini.gosangi@windriver.com>
63410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin
73410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * Licensed under the Apache License, Version 2.0 (the "License");
83410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * you may not use this file except in compliance with the License.
93410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * You may obtain a copy of the License at
103410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin *
113410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin *      http://www.apache.org/licenses/LICENSE-2.0
123410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin *
133410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * Unless required by applicable law or agreed to in writing, software
143410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * distributed under the License is distributed on an "AS IS" BASIS,
153410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
163410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * express or implied.
173410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * See the License for the specific language governing permissions
183410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin */
193410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin
203410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin/* ------------------------------------------------------------------
213410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * Copyright (C) 2008 PacketVideo
223410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin *
233410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * Licensed under the Apache License, Version 2.0 (the "License");
243410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * you may not use this file except in compliance with the License.
253410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * You may obtain a copy of the License at
263410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin *
273410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin *      http://www.apache.org/licenses/LICENSE-2.0
283410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin *
293410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * Unless required by applicable law or agreed to in writing, software
303410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * distributed under the License is distributed on an "AS IS" BASIS,
313410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
323410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * express or implied.
333410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * See the License for the specific language governing permissions
343410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * and limitations under the License.
353410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin * -------------------------------------------------------------------
363410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin */
373410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin
383410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin
393410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin#ifndef BUFFER_ALLOC_OMAP34XXH_INCLUDED
403410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin#define BUFFER_ALLOC_OMAP34XXH_INCLUDED
413410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin
423410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin#include "pv_interface.h"
433410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin
443410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin#ifndef PVMF_FIXEDSIZE_BUFFER_ALLOC_H_INCLUDED
453410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin#include "pvmf_fixedsize_buffer_alloc.h"
463410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin#endif
473410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin
483410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin/* based on test code in pvmi/media_io/pvmiofileoutput/include/pvmi_media_io_fileoutput.h */
493410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin
503410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavinclass BufferAllocOmap34xx: public PVInterface, public PVMFFixedSizeBufferAlloc
513410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin{
523410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin    public:
533410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin
543410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin        BufferAllocOmap34xx();
553410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin
563410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin        virtual ~BufferAllocOmap34xx();
573410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin
583410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin        OSCL_IMPORT_REF void addRef();
593410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin
603410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin        OSCL_IMPORT_REF void removeRef();
613410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin
623410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin        OSCL_IMPORT_REF bool queryInterface(const PVUuid& uuid, PVInterface*& aInterface) ;
633410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin
643410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin        OSCL_IMPORT_REF OsclAny* allocate();
653410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin
663410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin        OSCL_IMPORT_REF void deallocate(OsclAny* ptr) ;
673410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin
683410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin        OSCL_IMPORT_REF uint32 getBufferSize() ;
693410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin
703410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin        OSCL_IMPORT_REF uint32 getNumBuffers() ;
713410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin
723410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin    public:
733410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin        int32 refCount;
743410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin        int32 bufferSize;
753410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin        int32 maxBuffers;
763410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin        int32 numAllocated;
77221a7f397de8e84a36f8f5c93a9a5b175e9053fdBenny Wong        uint8** buffer_address;
783410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin};
793410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin
803410a0df3ef3d3f8254eea6430d999f631191e9fRebecca Schultz Zavin#endif
81