#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: /home/cvs/cvsroot/onelan/onelan/src/mplib1/include/bpo_q_internal.h,v $ * $Author: mpoole $ * $Date: 2002/10/07 09:37:49 $ * $Revision: 1.2 $ * ******************************************************************************* * * Change History * * $Log: bpo_q_internal.h,v $ * Revision 1.2 2002/10/07 09:37:49 mpoole * Initial checkin of mplib1-3.1.0 * * Revision 1.1 2002/10/07 09:36:50 mpoole * Initial checkin of mplib1-3.1.0 * * ******************************************************************************* */ #ident "$Header: /home/cvs/cvsroot/onelan/onelan/src/mplib1/include/bpo_q_internal.h,v 1.2 2002/10/07 09:37:49 mpoole Exp $" #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; /*struct bpo_fl_lock Qh_lock;*/ bpo_List_t Qh_List; /* The following pair are for the queue id */ b_lock_t Qh_id_lock; int Qh_next_id; }; 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 -- */