/* ************************************************************************* * * * Copyright 1990, 2004 Hewlett-Packard Development Company, L.P. * * * * Confidential computer software. Valid license from HP and/or * * its subsidiaries required for possession, use, or copying. * * * * Consistent with FAR 12.211 and 12.212, Commercial Computer Software, * * Computer Software Documentation, and Technical Data for Commercial * * Items are licensed to the U.S. Government under vendor's standard * * commercial license. * * * * Neither HP nor any of its subsidiaries shall be liable for technical * * or editorial errors or omissions contained herein. The information * * in this document is provided "as is" without warranty of any kind and * * is subject to change without notice. The warranties for HP products * * are set forth in the express limited warranty statements accompanying * * such products. Nothing herein should be construed as constituting an * * additional warranty. * * * ************************************************************************* */ /* * @(#)$RCSfile: cma_library.h,v $ $Revision: 1.1.26.5 $ (DEC) $Date: 2003/04/11 18:08:46 $ */ /* */ /* * FACILITY: * * DECthreads Library services * * ABSTRACT: * * External definitions for DECthreads Library services * * AUTHORS: * * Webb Scales * * CREATION DATE: * * 7 August 1990 * * MODIFIED BY: * * Webb Scales * Dave Butenhof * Peter Portante * */ #ifndef CMA_LIB_INCLUDE #define CMA_LIB_INCLUDE #include #ifdef __cplusplus extern "C" { #endif /* * The following are the portable CMA High-Level Library definitions */ /* * Operations on attributes objects */ typedef cma_t_handle cma_lib_t_attr; /* * An attributes object is created to specify the attributes of other CMA * objects that will be created. */ extern void cma_lib_attr_create _CMA_PROTOTYPE_ (( cma_lib_t_attr *new_attr, cma_lib_t_attr *attr)); /* * An attributes object can be deleted when it is no longer needed. */ extern void cma_lib_attr_delete _CMA_PROTOTYPE_ (( cma_lib_t_attr *attr)); /* * Operations on queues */ typedef cma_t_handle cma_lib_t_queue; extern void cma_lib_queue_create _CMA_PROTOTYPE_ (( cma_lib_t_queue *new_queue, cma_lib_t_attr *att)); extern void cma_lib_queue_delete _CMA_PROTOTYPE_ (( cma_lib_t_queue *queue)); extern void cma_lib_queue_dequeue _CMA_PROTOTYPE_ (( cma_lib_t_queue *queue, cma_t_address *element)); extern void cma_lib_queue_enqueue _CMA_PROTOTYPE_ (( cma_lib_t_queue *queue, cma_t_address element)); extern cma_t_boolean cma_lib_queue_try_enqueue_int _CMA_PROTOTYPE_ (( cma_lib_t_queue *queue, cma_t_address element)); extern void cma_lib_queue_requeue _CMA_PROTOTYPE_ (( cma_lib_t_queue *queue, cma_t_address element)); extern cma_t_boolean cma_lib_queue_try_dequeue _CMA_PROTOTYPE_ (( cma_lib_t_queue *queue, cma_t_address *element)); extern cma_t_boolean cma_lib_queue_try_enqueue _CMA_PROTOTYPE_ (( cma_lib_t_queue *queue, cma_t_address element)); extern cma_t_boolean cma_lib_queue_try_requeue _CMA_PROTOTYPE_ (( cma_lib_t_queue *queue, cma_t_address element)); /* * Set or obtain the default queue size */ extern void cma_lib_attr_get_queuesize _CMA_PROTOTYPE_ (( cma_lib_t_attr *attr, cma_t_natural *queuesize)); extern void cma_lib_attr_set_queuesize _CMA_PROTOTYPE_ (( cma_lib_t_attr *attr, cma_t_natural queuesize)); #ifdef __cplusplus } #endif #endif