github.com/jlmucb/cloudproxy@v0.0.0-20170830161738-b5aa0b619bc4/cpvmm/vmm/include/pool_api.h (about)

     1  /*
     2   * Copyright (c) 2013 Intel Corporation
     3   *
     4   * Licensed under the Apache License, Version 2.0 (the "License");
     5   * you may not use this file except in compliance with the License.
     6   * You may obtain a copy of the License at
     7   *     http://www.apache.org/licenses/LICENSE-2.0
     8   * Unless required by applicable law or agreed to in writing, software
     9   * distributed under the License is distributed on an "AS IS" BASIS,
    10   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    11   * See the License for the specific language governing permissions and
    12   * limitations under the License.
    13   */
    14  
    15  #ifndef _POOL_API_H_
    16  #define _POOL_API_H_
    17  
    18  #include <vmm_defs.h>
    19  #include <heap.h>
    20  
    21  typedef void* POOL_HANDLE;
    22  #define POOL_INVALID_HANDLE ((POOL_HANDLE)NULL)
    23  
    24  #ifdef INCLUDE_UNUSED_CODE
    25  POOL_HANDLE pool_create(UINT32 size_of_single_element);
    26  
    27  void pool_print(POOL_HANDLE pool_handle);
    28  #endif
    29  
    30  POOL_HANDLE assync_pool_create(UINT32 size_of_single_element);
    31  
    32  void pool_destroy(POOL_HANDLE pool_handle);
    33  
    34  void* pool_allocate(POOL_HANDLE pool_handle);
    35  
    36  void pool_free(POOL_HANDLE pool_handle, void* data);
    37  
    38  #ifdef ENABLE_VTLB
    39  void* pool_allocate_must_succeed(POOL_HANDLE pool_handle, HEAP_ALLOC_HANDLE must_succeed_handle);
    40  
    41  void pool_release_all_free_pages(POOL_HANDLE pool_handle);
    42  #endif
    43  
    44  #endif // _POOL_API_H_