13079100878a2595be644d866e67c12a9de620fd5Martijn Coenen/* 23079100878a2595be644d866e67c12a9de620fd5Martijn Coenen * Copyright (C) 2016 The Android Open Source Project 33079100878a2595be644d866e67c12a9de620fd5Martijn Coenen * 43079100878a2595be644d866e67c12a9de620fd5Martijn Coenen * Licensed under the Apache License, Version 2.0 (the "License"); 53079100878a2595be644d866e67c12a9de620fd5Martijn Coenen * you may not use this file except in compliance with the License. 63079100878a2595be644d866e67c12a9de620fd5Martijn Coenen * You may obtain a copy of the License at 73079100878a2595be644d866e67c12a9de620fd5Martijn Coenen * 83079100878a2595be644d866e67c12a9de620fd5Martijn Coenen * http://www.apache.org/licenses/LICENSE-2.0 93079100878a2595be644d866e67c12a9de620fd5Martijn Coenen * 103079100878a2595be644d866e67c12a9de620fd5Martijn Coenen * Unless required by applicable law or agreed to in writing, software 113079100878a2595be644d866e67c12a9de620fd5Martijn Coenen * distributed under the License is distributed on an "AS IS" BASIS, 123079100878a2595be644d866e67c12a9de620fd5Martijn Coenen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133079100878a2595be644d866e67c12a9de620fd5Martijn Coenen * See the License for the specific language governing permissions and 143079100878a2595be644d866e67c12a9de620fd5Martijn Coenen * limitations under the License. 153079100878a2595be644d866e67c12a9de620fd5Martijn Coenen */ 163079100878a2595be644d866e67c12a9de620fd5Martijn Coenen 1723bb9993014e064f9c720d889269764f4d4ec7a5Steven Morelandpackage android.hidl.allocator@1.0; 183079100878a2595be644d866e67c12a9de620fd5Martijn Coenen 193079100878a2595be644d866e67c12a9de620fd5Martijn Coenen/** 203079100878a2595be644d866e67c12a9de620fd5Martijn Coenen * Interface which allocates the required memory. 213079100878a2595be644d866e67c12a9de620fd5Martijn Coenen */ 223079100878a2595be644d866e67c12a9de620fd5Martijn Coeneninterface IAllocator { 233079100878a2595be644d866e67c12a9de620fd5Martijn Coenen 243079100878a2595be644d866e67c12a9de620fd5Martijn Coenen /** 253079100878a2595be644d866e67c12a9de620fd5Martijn Coenen * Return memory must have instance name corresponding to this type of memory. 263079100878a2595be644d866e67c12a9de620fd5Martijn Coenen * 273079100878a2595be644d866e67c12a9de620fd5Martijn Coenen * @param size Size of memory to allocate in bytes. 283079100878a2595be644d866e67c12a9de620fd5Martijn Coenen * @return success Whether allocation succeeded. 293079100878a2595be644d866e67c12a9de620fd5Martijn Coenen * @return memory Unmapped memory object. 303079100878a2595be644d866e67c12a9de620fd5Martijn Coenen */ 313079100878a2595be644d866e67c12a9de620fd5Martijn Coenen allocate(uint64_t size) generates (bool success, memory mem); 32eca68d224d97a549e34598237649a0b743dced7dSteven Moreland 33eca68d224d97a549e34598237649a0b743dced7dSteven Moreland /** 34eca68d224d97a549e34598237649a0b743dced7dSteven Moreland * Return memory must have instance name corresponding to this type of memory. 35eca68d224d97a549e34598237649a0b743dced7dSteven Moreland * 36eca68d224d97a549e34598237649a0b743dced7dSteven Moreland * @param size Size of memory to allocate in bytes. 37eca68d224d97a549e34598237649a0b743dced7dSteven Moreland * @param count Number of memory instances to allocate. 38eca68d224d97a549e34598237649a0b743dced7dSteven Moreland * @return success Whether allocation succeeded (returns false if any allocation failed). 39eca68d224d97a549e34598237649a0b743dced7dSteven Moreland * @return batch Unmapped memory objects. 40eca68d224d97a549e34598237649a0b743dced7dSteven Moreland */ 41eca68d224d97a549e34598237649a0b743dced7dSteven Moreland batchAllocate(uint64_t size, uint64_t count) generates (bool success, vec<memory> batch); 423079100878a2595be644d866e67c12a9de620fd5Martijn Coenen};