File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / ntp / kernel / sys / parsestreams.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:08:38 2012 UTC (12 years, 4 months ago) by misho
Branches: ntp, MAIN
CVS tags: v4_2_6p5p0, v4_2_6p5, HEAD
ntp 4.2.6p5

    1: /*
    2:  * /src/NTP/ntp4-dev/kernel/sys/parsestreams.h,v 4.5 2005/06/25 10:52:47 kardel RELEASE_20050625_A
    3:  *
    4:  * parsestreams.h,v 4.5 2005/06/25 10:52:47 kardel RELEASE_20050625_A
    5:  *
    6:  * Copyright (c) 1995-2005 by Frank Kardel <kardel <AT> ntp.org>
    7:  * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universität Erlangen-Nürnberg, Germany
    8:  *
    9:  * Redistribution and use in source and binary forms, with or without
   10:  * modification, are permitted provided that the following conditions
   11:  * are met:
   12:  * 1. Redistributions of source code must retain the above copyright
   13:  *    notice, this list of conditions and the following disclaimer.
   14:  * 2. Redistributions in binary form must reproduce the above copyright
   15:  *    notice, this list of conditions and the following disclaimer in the
   16:  *    documentation and/or other materials provided with the distribution.
   17:  * 3. Neither the name of the author nor the names of its contributors
   18:  *    may be used to endorse or promote products derived from this software
   19:  *    without specific prior written permission.
   20:  *
   21:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   22:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   23:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   24:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   25:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   26:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   27:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   28:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   29:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   30:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   31:  * SUCH DAMAGE.
   32:  */
   33: 
   34: #if	!(defined(lint) || defined(__GNUC__))
   35:   static char sysparsehrcsid[] = "parsestreams.h,v 4.5 2005/06/25 10:52:47 kardel RELEASE_20050625_A";
   36: #endif
   37: 
   38: #undef PARSEKERNEL
   39: #if defined(KERNEL) || defined(_KERNEL)
   40: #ifndef PARSESTREAM
   41: #define PARSESTREAM
   42: #endif
   43: #endif
   44: #if defined(PARSESTREAM) && defined(HAVE_SYS_STREAM_H)
   45: #define PARSEKERNEL
   46: 
   47: #ifdef HAVE_SYS_TERMIOS_H
   48: #include <sys/termios.h>
   49: #endif
   50: 
   51: #include <sys/ppsclock.h>
   52: 
   53: #ifndef NTP_NEED_BOPS
   54: #define NTP_NEED_BOPS
   55: #endif
   56: 
   57: #if defined(PARSESTREAM) && (defined(_sun) || defined(__sun)) && defined(HAVE_SYS_STREAM_H)
   58: /*
   59:  * Sorry, but in SunOS 4.x AND Solaris 2.x kernels there are no
   60:  * mem* operations. I don't want them - bcopy, bzero
   61:  * are fine in the kernel
   62:  */
   63: #undef HAVE_STRING_H	/* don't include that at kernel level - prototype mismatch in Solaris 2.6 */
   64: #include "ntp_string.h"
   65: #else
   66: #include <stdio.h>
   67: #endif
   68: 
   69: struct parsestream		/* parse module local data */
   70: {
   71:   queue_t       *parse_queue;	/* read stream for this channel */
   72:   queue_t	*parse_dqueue;	/* driver queue entry (PPS support) */
   73:   unsigned long  parse_status;  /* operation flags */
   74:   void          *parse_data;	/* local data space (PPS support) */
   75:   parse_t	 parse_io;	/* io structure */
   76:   struct ppsclockev parse_ppsclockev; /* copy of last pps event */
   77: };
   78: 
   79: typedef struct parsestream parsestream_t;
   80: 
   81: #define PARSE_ENABLE	0x0001
   82: 
   83: /*--------------- debugging support ---------------------------------*/
   84: 
   85: #define DD_OPEN    0x00000001
   86: #define DD_CLOSE   0x00000002
   87: #define DD_RPUT    0x00000004
   88: #define DD_WPUT    0x00000008
   89: #define DD_RSVC    0x00000010
   90: #define DD_PARSE   0x00000020
   91: #define DD_INSTALL 0x00000040
   92: #define DD_ISR     0x00000080
   93: #define DD_RAWDCF  0x00000100
   94: 
   95: extern int parsedebug;
   96: 
   97: #ifdef DEBUG_PARSE
   98: 
   99: #define parseprintf(X, Y) if ((X) & parsedebug) printf Y
  100: 
  101: #else
  102: 
  103: #define parseprintf(X, Y)
  104: 
  105: #endif
  106: #endif
  107: 
  108: /*
  109:  * History:
  110:  *
  111:  * parsestreams.h,v
  112:  * Revision 4.5  2005/06/25 10:52:47  kardel
  113:  * fix version id / add version log
  114:  *
  115:  * Revision 4.4  1998/06/14 21:09:32  kardel
  116:  * Sun acc cleanup
  117:  *
  118:  * Revision 4.3  1998/06/13 18:14:32  kardel
  119:  * make mem*() to b*() mapping magic work on Solaris too
  120:  *
  121:  * Revision 4.2  1998/06/13 15:16:22  kardel
  122:  * fix mem*() to b*() function macro emulation
  123:  *
  124:  * Revision 4.1  1998/06/13 11:50:37  kardel
  125:  * STREAM macro gone in favor of HAVE_SYS_STREAM_H
  126:  *
  127:  * Revision 4.0  1998/04/10 19:51:30  kardel
  128:  * Start 4.0 release version numbering
  129:  *
  130:  * Revision 1.2  1998/04/10 19:27:42  kardel
  131:  * initial NTP VERSION 4 integration of PARSE with GPS166 binary support
  132:  *
  133:  */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>