Merge "Move C2HandleIon and C2AllocationIon to internal dir"

gugelfrei
TreeHugger Robot 4 years ago committed by Android (Google) Code Review
commit 87bb9262ee

@ -28,6 +28,7 @@
#include <C2Buffer.h>
#include <C2Debug.h>
#include <C2ErrnoUtils.h>
#include <C2HandleIonInternal.h>
namespace android {
@ -64,43 +65,6 @@ constexpr inline size_t ints2size(int intLo, int intHi) {
* This handle will not capture mapped fd-s as updating that would require a global mutex.
*/
struct C2HandleIon : public C2Handle {
// ion handle owns ionFd(!) and bufferFd
C2HandleIon(int bufferFd, size_t size)
: C2Handle(cHeader),
mFds{ bufferFd },
mInts{ int(size & 0xFFFFFFFF), int((uint64_t(size) >> 32) & 0xFFFFFFFF), kMagic } { }
static bool isValid(const C2Handle * const o);
int bufferFd() const { return mFds.mBuffer; }
size_t size() const {
return size_t(unsigned(mInts.mSizeLo))
| size_t(uint64_t(unsigned(mInts.mSizeHi)) << 32);
}
protected:
struct {
int mBuffer; // shared ion buffer
} mFds;
struct {
int mSizeLo; // low 32-bits of size
int mSizeHi; // high 32-bits of size
int mMagic;
} mInts;
private:
typedef C2HandleIon _type;
enum {
kMagic = '\xc2io\x00',
numFds = sizeof(mFds) / sizeof(int),
numInts = sizeof(mInts) / sizeof(int),
version = sizeof(C2Handle)
};
//constexpr static C2Handle cHeader = { version, numFds, numInts, {} };
const static C2Handle cHeader;
};
const C2Handle C2HandleIon::cHeader = {
C2HandleIon::version,
C2HandleIon::numFds,

@ -0,0 +1,62 @@
/*
* Copyright (C) 2020 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 STAGEFRIGHT_CODEC2_ALLOCATION_ION_H_
#define STAGEFRIGHT_CODEC2_ALLOCATION_ION_H_
#include <C2Buffer.h>
namespace android {
struct C2HandleIon : public C2Handle {
// ion handle owns ionFd(!) and bufferFd
C2HandleIon(int bufferFd, size_t size)
: C2Handle(cHeader),
mFds{ bufferFd },
mInts{ int(size & 0xFFFFFFFF), int((uint64_t(size) >> 32) & 0xFFFFFFFF), kMagic } { }
static bool isValid(const C2Handle * const o);
int bufferFd() const { return mFds.mBuffer; }
size_t size() const {
return size_t(unsigned(mInts.mSizeLo))
| size_t(uint64_t(unsigned(mInts.mSizeHi)) << 32);
}
protected:
struct {
int mBuffer; // shared ion buffer
} mFds;
struct {
int mSizeLo; // low 32-bits of size
int mSizeHi; // high 32-bits of size
int mMagic;
} mInts;
private:
typedef C2HandleIon _type;
enum {
kMagic = '\xc2io\x00',
numFds = sizeof(mFds) / sizeof(int),
numInts = sizeof(mInts) / sizeof(int),
version = sizeof(C2Handle)
};
//constexpr static C2Handle cHeader = { version, numFds, numInts, {} };
const static C2Handle cHeader;
};
} // namespace android
#endif // STAGEFRIGHT_CODEC2_ALLOCATION_ION_H_
Loading…
Cancel
Save