/*****************************************************************************

 @(#) lmi_ioctl.h,v 0.7.8.1 2001/12/11 13:16:05 brian Exp

 -----------------------------------------------------------------------------

     Copyright (C) 1997-2001 OpenSS7 Corporation.  All Rights Reserved.


                                  PUBLIC LICENSE

     This license is provided without fee, provided that the above copy-
     right notice and this public license must be retained on all copies,
     extracts, compilations and derivative works.  Use or distribution of
     this work in a manner that restricts its use except as provided here
     will render this license void.

     The author(s) hereby waive any and all other restrictions in respect
     of their copyright in this software and its associated documentation.
     The authors(s) of this software place in the public domain any novel
     methods or processes which are embodied in this software.

     The author(s) undertook to write it for the sake of the advancement
     of the Arts and Sciences, but it is provided as is, and the author(s)
     will not take any responsibility in it.

 -----------------------------------------------------------------------------

 U.S. GOVERNMENT RESTRICTED RIGHTS.  If you are licensing this Software on
 behalf of the U.S. Government ("Government"), the following provisions apply
 to you.  If the Software is supplied by the Department of Defense ("DoD"), it
 is classified as "Commercial Computer Software" under paragraph 252.227-7014
 of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any
 successor regulations) and the Government is acquiring only the license rights
 granted herein (the license rights customarily provided to non-Government
 users).  If the Software is supplied to any unit or agency of the Government
 other than DoD, it is classified as "Restricted Computer Software" and the
 Government's rights in the Software are defined in paragraph 52.227-19 of the
 Federal Acquisition Regulations ("FAR") (or any success regulations) or, in
 the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR
 (or any successor regulations).

 -----------------------------------------------------------------------------

 Last Modified 2001/12/11 13:16:05 by brian

 *****************************************************************************/

#ifndef __LMI_IOCTL_H__
#define __LMI_IOCTL_H__

#ident "@(#) SS7AlphaRelease(0.7.8.1) Copyright (c) 1997-2001 OpenSS7 Corporation."

/*
 *  COMMON IOCTL NUMBERS
 */

#define LMI_IOCGOPTIONS   0
#define LMI_IOCSOPTIONS   1
#define LMI_IOCGCONFIG    2
#define LMI_IOCSCONFIG    3
#define LMI_IOCTCONFIG    4
#define LMI_IOCCCONFIG    5
#define LMI_IOCGSTATEM    6
#define LMI_IOCCMRESET    7
#define LMI_IOCGSTATSP    8
#define LMI_IOCSSTATSP    9
#define LMI_IOCGSTATS    10
#define LMI_IOCCSTATS    11
#define LMI_IOCGNOTIFY   12
#define LMI_IOCSNOTIFY   13
#define LMI_IOCCNOTIFY   14
#define LMI_IOC_FIRST     0
#define LMI_IOC_LAST     14
#define LMI_IOC_PRIVATE  32

/*
 *  PROTOCOL VARIANT AND OPTIONS 
 */

typedef struct lmi_option {
    lmi_ulong   pvar;
    lmi_ulong   popt;
} lmi_option_t;

enum {
    SS7_PVAR_ITUT_88,  /* ITU-T protocol variant */
    SS7_PVAR_ITUT_93,  /* ITU-T protocol variant */
    SS7_PVAR_ITUT_96,  /* ITU-T protocol variant */
    SS7_PVAR_ITUT_00,  /* ITU-T protocol variant */
    SS7_PVAR_ANSI_88,  /* ANSI  protocol variant */
    SS7_PVAR_ANSI_92,  /* ANSI  protocol variant */
    SS7_PVAR_ANSI_96,  /* ANSI  protocol variant */
    SS7_PVAR_ANSI_00,  /* ANSI  protocol variant */
    SS7_PVAR_ETSI_88,  /* ETSI  protocol variant */
    SS7_PVAR_ETSI_93,  /* ETSI  protocol variant */
    SS7_PVAR_ETSI_96,  /* ETSI  protocol variant */
    SS7_PVAR_ETSI_00,  /* ETSI  protocol variant */
    SS7_PVAR_JTTC_94,  /* JTTC  protocol variant */
    SS7_PVAR_MAX = SS7_PVAR_JTTC_94
};

enum {
    SS7_POPT_MPLEV  = 0x00000001,   /* multiple priority/congestion levels  */
    SS7_POPT_PCR    = 0x00000002,   /* preventative cyclic retranlmission   */
    SS7_POPT_HSL    = 0x00000004,   /* high speed links                     */
    SS7_POPT_XSN    = 0x00000008,   /* extended sequence numbers            */
    SS7_POPT_ALL    = 0x0000000f    /* all options                          */
};

/*
 *  STATISTICS
 */

typedef struct lmi_sta {
    lmi_ulong   object_id;  /* object id for stats      */
    lmi_ulong   colperiod;  /* collection period        */
    lmi_ulong   timestamp;  /* timestamp end of period  */
} lmi_sta_t;

#endif  __LMI_IOCTL_H__
