/* ************************************************************************* * * * Copyright 2000 Compaq Computer Corporation * * * * COMPAQ Registered in U.S. Patent and Trademark Office. * * * * Confidential computer software. Valid license from Compaq or * * authorized sublicensor 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. * * * * Compaq shall not be liable for technical or editorial errors or * * omissions contained herein. The information in this document is * * subject to change without notice. * * * ************************************************************************* */ /* * @(#)$RCSfile: cma_library.h,v $ $Revision: 1.1.19.1 $ (DEC) $Date: 2000/03/01 15:43:24 $ */ /* * 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