class CrosArmGpuBrokerProcessPolicy : public CrosArmGpuProcessPolicy {
public:
- CrosArmGpuBrokerProcessPolicy() : CrosArmGpuProcessPolicy(false) {}
+ static sandbox::SandboxBPFPolicy* Create() {
+ return new CrosArmGpuBrokerProcessPolicy();
+ }
virtual ~CrosArmGpuBrokerProcessPolicy() {}
virtual ErrorCode EvaluateSyscall(SandboxBPF* sandbox_compiler,
int system_call_number) const OVERRIDE;
private:
+ CrosArmGpuBrokerProcessPolicy() : CrosArmGpuProcessPolicy(false) {}
DISALLOW_COPY_AND_ASSIGN(CrosArmGpuBrokerProcessPolicy);
};
// Add ARM-specific files to whitelist in the broker.
AddArmGpuWhitelist(&read_whitelist_extra, &write_whitelist_extra);
- InitGpuBrokerProcess(
- base::Bind(&SandboxSeccompBPF::StartSandboxWithExternalPolicy,
- base::Passed(scoped_ptr<sandbox::SandboxBPFPolicy>(
- new CrosArmGpuBrokerProcessPolicy))),
- read_whitelist_extra,
- write_whitelist_extra);
+ InitGpuBrokerProcess(CrosArmGpuBrokerProcessPolicy::Create,
+ read_whitelist_extra,
+ write_whitelist_extra);
const int dlopen_flag = RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE;
// Preload the Mali library.
dlopen("/usr/lib/libmali.so", dlopen_flag);
+ // Preload the Tegra V4L2 (video decode acceleration) library.
+ dlopen("/usr/lib/libtegrav4l2.so", dlopen_flag);
+ // Resetting errno since platform-specific libraries will fail on other
+ // platforms.
+ errno = 0;
return true;
}