skqueue.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:4k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /******************************************************************************
  2.  *
  3.  * Name: skqueue.h
  4.  * Project: Genesis, PCI Gigabit Ethernet Adapter
  5.  * Version: $Revision: 1.12 $
  6.  * Date: $Date: 1998/09/08 08:48:01 $
  7.  * Purpose: Defines for the Event queue
  8.  *
  9.  ******************************************************************************/
  10. /******************************************************************************
  11.  *
  12.  * (C)Copyright 1989-1998 SysKonnect,
  13.  * a business unit of Schneider & Koch & Co. Datensysteme GmbH.
  14.  * All Rights Reserved
  15.  *
  16.  * THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF SYSKONNECT
  17.  * The copyright notice above does not evidence any
  18.  * actual or intended publication of such source code.
  19.  *
  20.  * This Module contains Proprietary Information of SysKonnect
  21.  * and should be treated as Confidential.
  22.  *
  23.  * The information in this file is provided for the exclusive use of
  24.  * the licensees of SysKonnect.
  25.  * Such users have the right to use, modify, and incorporate this code
  26.  * into products for purposes authorized by the license agreement
  27.  * provided they include this notice and the associated copyright notice
  28.  * with any such product.
  29.  * The information in this file is provided "AS IS" without warranty.
  30.  *
  31.  ******************************************************************************/
  32. /******************************************************************************
  33.  *
  34.  * History:
  35.  *
  36.  * $Log: skqueue.h,v $
  37.  * Revision 1.12  1998/09/08 08:48:01  gklug
  38.  * add: init level handling
  39.  *
  40.  * Revision 1.11  1998/09/03 14:15:11  gklug
  41.  * add: CSUM and HWAC Eventclass and function.
  42.  * fix: pParaPtr according to CCC
  43.  *
  44.  * Revision 1.10  1998/08/20 12:43:03  gklug
  45.  * add: typedef SK_QUEUE
  46.  *
  47.  * Revision 1.9  1998/08/19 09:50:59  gklug
  48.  * fix: remove struct keyword from c-code (see CCC) add typedefs
  49.  *
  50.  * Revision 1.8  1998/08/18 07:00:01  gklug
  51.  * fix: SK_PTR not defined use void * instead.
  52.  *
  53.  * Revision 1.7  1998/08/17 13:43:19  gklug
  54.  * chg: Parameter will be union of 64bit para, 2 times SK_U32 or SK_PTR
  55.  *
  56.  * Revision 1.6  1998/08/14 07:09:30  gklug
  57.  * fix: chg pAc -> pAC
  58.  *
  59.  * Revision 1.5  1998/08/11 14:26:44  gklug
  60.  * chg: Event Dispatcher returns now int.
  61.  *
  62.  * Revision 1.4  1998/08/11 12:15:21  gklug
  63.  * add: Error numbers of skqueue module
  64.  *
  65.  * Revision 1.3  1998/08/07 12:54:23  gklug
  66.  * fix: first compiled version
  67.  *
  68.  * Revision 1.2  1998/08/07 09:34:00  gklug
  69.  * adapt structure defs to CCC
  70.  * add: prototypes for functions
  71.  *
  72.  * Revision 1.1  1998/07/30 14:52:12  gklug
  73.  * Initial version.
  74.  * Defines Event Classes, Event structs and queue management variables.
  75.  *
  76.  *
  77.  *
  78.  ******************************************************************************/
  79. /*
  80.  * SKQUEUE.H contains all defines and types for the event queue
  81.  */
  82. #ifndef _SKQUEUE_H_
  83. #define _SKQUEUE_H_
  84. /*
  85.  * define the event classes to be served
  86.  */
  87. #define SKGE_DRV 1 /* Driver Event Class */
  88. #define SKGE_RLMT 2 /* RLMT Event Class */
  89. #define SKGE_I2C 3 /* i2C Event Class */
  90. #define SKGE_PNMI 4 /* PNMI Event Class */
  91. #define SKGE_CSUM 5 /* Checksum Event Class */
  92. #define SKGE_HWAC 6 /* Hardware Access Event Class */
  93. /*
  94.  * define event queue as circular buffer
  95.  */
  96. #define SK_MAX_EVENT 64
  97. /*
  98.  * Parameter union for the Para stuff
  99.  */
  100. typedef union u_EvPara {
  101. void *pParaPtr; /* Parameter Pointer */
  102. SK_U64 Para64; /* Parameter 64bit version */
  103. SK_U32 Para32[2]; /* Parameter Array of 32bit parameters */
  104. } SK_EVPARA;
  105. /*
  106.  * Event Queue
  107.  * skqueue.c
  108.  * events are class/value pairs
  109.  * class is addressee, e.g. RMT, PCM etc.
  110.  * value is command, e.g. line state change, ring op change etc.
  111.  */
  112. typedef struct s_EventElem {
  113. SK_U32 Class ; /* Event class */
  114. SK_U32 Event ; /* Event value */
  115. SK_EVPARA Para ; /* Event parameter */
  116. } SK_EVENTELEM;
  117. typedef struct s_Queue {
  118. SK_EVENTELEM EvQueue[SK_MAX_EVENT];
  119. SK_EVENTELEM *EvPut ;
  120. SK_EVENTELEM *EvGet ;
  121. } SK_QUEUE;
  122. extern void SkEventInit(SK_AC *pAC, SK_IOC Ioc, int Level);
  123. extern void SkEventQueue(SK_AC *pAC, SK_U32 Class, SK_U32 Event,
  124. SK_EVPARA Para);
  125. extern int SkEventDispatcher(SK_AC *pAC,SK_IOC Ioc);
  126. /* Define Error Numbers and messages */
  127. #define SKERR_Q_E001 (SK_ERRBASE_QUEUE+0)
  128. #define SKERR_Q_E001MSG "Event queue overflow"
  129. #define SKERR_Q_E002 (SKERR_Q_E001+1)
  130. #define SKERR_Q_E002MSG "Undefined event class"
  131. #endif /* _SKQUEUE_H_ */