#ifndef MPLIB1_BPO_Q_INTERNAL #define MPLIB1_BPO_Q_INTERNAL /* ******************************************************************************* * Copyright (c) 1996 Martin Poole * ******************************************************************************* ** ** WARNING !! WARNING !! WARNING !! WARNING !! WARNING !! WARNING !! ** ** Any changes to be made to this file should first be checked with ** mplib1 source control for library integrity. ** ** mplib1 source control can be reached at mplib1@quatermass.co.uk ** * * $Source$ * $Author$ * $Date$ * $Revision$ * ******************************************************************************* * * Change History * * $Log$ * ******************************************************************************* */ #ident "$Header$" #ifdef CXREF #include #include #endif #ifndef MPLIB1_CONFIG #include #endif #ifndef MPLIB1_BPO_LOCK #include #endif #ifndef MPLIB1_BPO_LIST #include #endif #ifndef MPLIB1_BPO_INIT #include #endif #ifndef MPLIB1_BPO_ALLOC #include #endif #ifndef MPLIB1_BPO_PROC #include #endif #ifndef MPLIB1_BPO_QUEUE #include #endif /* ------------------------------------------------------------------ defines ------------------------------------------------------------------ */ /* ------------------------------------------------------------------ structures ------------------------------------------------------------------ */ struct Q_Head { off_t lno_me; bpo_List_t Qh_List; }; struct bpo_Q_pid { bpo_Node_t Q_pid_Node; pid_t Q_pid; char Q_pidstr[PID_STR_LEN]; }; struct bpo_private_pid { dl_Node_t q_Node; pid_t pid; char pid_str[PID_STR_LEN]; }; struct bpo_private_q { dl_Node_t q_Node; int Q_max_count; int Q_Count; int Q_notify; int Q_flags; pid_t Q_sole_pid; dl_List_t private_pids; unsigned long pid_ser_nbr; dl_List_t old_pids; struct bpo_Q *qp; char Q_name[1]; }; struct cache_queue_list { dl_Node_t lnk_node; char ptr_str[40]; unsigned long serial_nbr; time_t update_tm; struct Q_Head *qh; dl_List_t q_list; dl_List_t old_q_list; }; typedef int (*Validate_Queues_t)(struct bpo_private_q *pqp, void *param1 ); /* ------------------------------------------------------------------ function definitions ------------------------------------------------------------------ */ extern struct Q_Head * get_Q_resource( const void *hint ); extern struct cache_queue_list * cache_queues( struct Q_Head *qh, const char *q_name ); extern void free_q_stuff( struct bpo_Q *qp ); extern void free_this_private_q( struct bpo_private_q *pqp ); extern int Validate_Queues( const void *hint, int p_which_queues, Validate_Queues_t disp, void *param1 ); #endif /* -- End of File -- */