#ident "$Id: frsopt.h,v 1.3 1997/09/08 18:38:34 gary Exp $"
/*****************************************************************************
 * Copyright (c) 1988-95 Digi International Inc., All Rights Reserved
 * 
 * This  software  contains  proprietary  and  confidential   information   of
 * Digi International  Inc.   By  accepting  transfer  of this copy, Recipient
 * agrees to retain this software in  confidence,  to  prevent  disclosure  to
 * others,  and  to make no  use of this software other than that for which it
 * was delivered.  This is an unpublished copyright work  Digi   International
 * Inc.    Except   as   permitted   by  federal  law,  17 USC 117, copying is
 * strictly prohibited.
 * 
 * Digi  International  Inc.  CONFIDENTIAL  -   (Digi    International    Inc.
 * Confidential  when   combined   with   the   aggregated  modules  for  this
 * product) OBJECT CODE ONLY SOURCE MATERIALS
 * 
 * (C) COPYRIGHT Digi International Inc. 1995
 * 
 * All Rights Reserved
 * 
 * US   Government   Users   Restricted   Rights   -   Use,   duplication   or
 * disclosure  restricted by GSA ADP Schedule Contract with Digi International
 * Inc.
 * 
 *****************************************************************************/

/*****************************************************************************
 *                                                                           *
 * (c) COPYRIGHT 1991, 1992 HARRIS & JEFFRIES, INC.                          *
 *                          888 WASHINGTON STREET                            *
 *                          SUITE 130                                        *
 *                          DEDHAM, MA  02026                                *
 * ALL RIGHTS RESERVED                                                       *
 *                                                                           *
 * This software is the property of Harris & Jeffries, Inc. and is furnished *
 * under license by Harris & Jeffries, Inc. and this software may be used    *
 * only in accordance with the terms of said license.  This copyright notice *
 * may not be removed, modified or obliterated without the prior written     *
 * permission of Harris & Jeffries, Inc.                                     *
 *                                                                           *
 * This software may not be copied, transmitted, provided to or otherwise    *
 * made available to any other person, company, corporation or other entiry  *
 * except as specified in the terms of said license.                         *
 *                                                                           *
 * No right, title, ownership or other interest in the software is hereby    *
 * granted or transferred.                                                   *
 *                                                                           *
 * The information contained herein is subject to change without notice and  *
 * should not be construed as a commitment by Harris & Jeffries, Inc.        *
 *                                                                           *
 *****************************************************************************

   MODULE NAME:


          @@@@@@  @@@@@    @@@@    @@@@   @@@@@   @@@@@           @    @
          @       @    @  @       @    @  @    @    @             @    @
          @@@@@   @    @   @@@@   @    @  @    @    @             @@@@@@
          @       @@@@@        @  @    @  @@@@@     @      @@@    @    @
          @       @   @   @    @  @    @  @         @      @@@    @    @
          @       @    @   @@@@    @@@@   @         @      @@@    @    @


   ORIGINAL AUTHOR:  David Jeffries
   SUBJECT MATTER 
       SPECIALIST:   Greg Bellucci

   REVISION HISTORY:

   Date     Version  Name          Description
   -------- -------  ------------  --------------------------------------------
   11-20-92 2.00E    H&J (DJ)      Original
   09-28-93 2.00H    H&J (GB)      Added options for specifying the type of
                                    memory storage used on a target machine 
                                    (USES_LITTLE_ENDIAN) - see comment below.
   
   $Log: frsopt.h,v $
   Revision 1.3  1997/09/08 18:38:34  gary
   The !USES_LITTLE_ENDIAN (vs. big endian) compiler option does not
   make much sense.  The C-compiler makes everything behave big
   endian logically (in terms of extracting bytes from a short or long, and
   so forth), so there's no need to swap things around.

   Revision 1.2  1997/08/05 21:11:18  gary
   Little/big endian issue corrected.

   Revision 1.1  1995/03/16 17:02:28  garyp
   Initial revision

 * Revision 1.5  1994/07/27  20:31:09  stavrosm
 * Release 2.2
 *
 * Revision 1.4  1993/11/02  11:14:41  stavrosm
 * Release 2.1
 *
..............................................................................

   DESCRIPTION:

   This module is an include file required by all frs modules. It contains all
   option settings for compilation. Each option should be examined to determine
   how to configure the frame rely processing behavior on the target system.
   
..............................................................................
  REF DOCUMENTS:

  (a) U.S Sprint Frame Relay Service Interface Specification Doc #: 5136.02
  (b) Frame Relay Interface Specification, Stratacom Inc., Doc #: 001-207460
  (c) Frame Relay Stack Functional Specification Rel 1.2 Harris & Jeffries Inc.
  (d) Frame Relay Stack External Specification Rel 1.2 Harris & Jeffries Inc.
  (e) MIB for Frame Relay DTEs - RFC Draft from Internet Engr Task Force (IETF).
  (f) Multiprotocol Interconnect over Frame Relay Networks - T. Bradley, C.Brown
      Wellfleet Communications, Inc. A. Malis BBN Communications Oct 14, 1991.


..............................................................................
*/
#ifndef FRSOPT_H
#define FRSOPT_H
/** Function prototypes are provided for each function in the source code.
    If you wish strict prototype checking to be done by the compiler then
    set the following option to 1.  (default = 1)
 **/
/*#define USE_PROTOTYPES             1 */

/** The frame relay base code provides typedefs for u_int, u_short, u_char
    and u_long. If the target system also uses these typedef names then
    by setting the following option to 1 the base code will expect to use
    the typedefs provided by the target system. The name of the target system 
    include file containing the typedef declarations must be entered in the
    area provided in this file (see below). (default = 0).
 **/
#define USE_TARGET_SYSTEM_TYPEDEFS 0

/** The frame relay base code supports the notion of tasks, complete with
    message queueing and event notification. To use the native tasking functions
    set the following option to 1. (default = 1).
 **/
#ifndef	STREAM_MESSAGES
#define USE_TASKING                1
#endif
/** Native asynchronous blocking and deblocking function calls are provided by 
    the base code. If the target system intends to use these functions then
    set the following option to 1. (default = (USE_TASKING))
    This option depends on USE_TASKING != 0.
 **/ 
#define USE_BLOCKED_IO             (USE_TASKING)

/** If the design of the target system requires the frame relay functionality
    to notify it (the target system) when it has received a complete frame relay
    frame on a logical link then set the following option to 1. (default = 1)
    (also see: 'sys_pll_rcvd_frame' function call in frsrx.c)
 **/
/*#define USE_RECEIVE_NOTIFY         1 */

/** The frame relay base code uses the usrbuf structure (defined in frssys.h)
    when processing upper layer protocol frames. The header portion of the
    structure contains pointers and other variables required to maintain the
    structure. The 'payload' area of the structure ultimately contains the
    user payload in a frame relay frame. The 'payload' area can be declared as
    an array of characters that is BUFSIZE in length (aka. contiguous data),
    or it can be declared as a pointer to allocated memory whose size depends on
    the value stored in gGlobalCfg.frsMaxBufSize. Set the following option
    to 1 if the target system wishes to declare the payload area as an array of
    characters that is BUFSIZE in length. (default = 0)
 **/
#define USE_CONTIGUOUS_DATA        0

/** The frame relay base code may be compiled with or without DCE (switching)
    support.  This is distinct from DCE vs. DTE polling modes of LMI on a
    UNI link.  This DCE support enables the H&J CMI remote DCE polling
    protocol and activates the API features related to CMI and switching
    via the target system "Interior Protocol" network. (default = 0)
 **/
/*#define FRS_DCE_SUPPORT            1 */

/** The frame relay protocol headers assume that octets are stored in the header
    in big endian format (msb in low address byte). PC based target systems and
    others (VAX, PDP-11, etc) store numeric values in memory in little endian 
    format. Macros are used throughout the code for ensuring that the protocol 
    headers are built in the format expected by the standards. 
    If your target system stores numeric values in memory in little endian 
    format, set the option USES_LITTLE_ENDIAN to 1; set the option to 0 (zero) 
    if your system storage is in big-endian format. (default = 1)
 **/
#ifdef SOH
#if defined(_M_ALPHA)
#define USES_LITTLE_ENDIAN         1
#else
#define USES_LITTLE_ENDIAN         1
#endif
#else
#define USES_LITTLE_ENDIAN         1
#endif

#endif /* FRSOPT_H */
