/* cmdline.h */

/* File autogenerated by gengetopt version 2.8  */

#ifndef _cmdline_h
#define _cmdline_h

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/* Don't define PACKAGE and VERSION if we use automake.  */
#ifndef PACKAGE
#define PACKAGE ""
#endif

#ifndef VERSION
#define VERSION ""
#endif

struct gengetopt_args_info
{
  int fg_flag;	/* Run in foreground (default=off).  */
  int debug_flag;	/* Run in debug mode (default=off).  */
  char * conf_arg;	/* Read configuration file.  */
  char * pidfile_arg;	/* Filename of process id file (default='./sgsnemu.pid').  */
  char * statedir_arg;	/* Directory of nonvolatile data (default='./').  */
  char * dns_arg;	/* DNS Server to use.  */
  char * listen_arg;	/* Local interface.  */
  char * remote_arg;	/* Remote host.  */
  char * net_arg;	/* Network (default='192.168.0.0').  */
  char * mask_arg;	/* Network mask (default='255.255.255.0').  */
  int contexts_arg;	/* Number of contexts (default='1').  */
  int static_flag;	/* Allocate static tun ifterface (default=off).  */
  int timelimit_arg;	/* Exit after timelimit seconds (default='0').  */
  char * apn_arg;	/* Access point name (default='internet').  */
  char * imsi_arg;	/* IMSI (default='240010123456789').  */
  char * msisdn_arg;	/* Mobile Station ISDN number (default='46702123456').  */
  int qos_arg;	/* Requested quality of service (default='0x0b921f').  */
  char * uid_arg;	/* Login user ID (default='mig').  */
  char * pwd_arg;	/* Login password (default='hemmelig').  */

  int help_given ;	/* Whether help was given.  */
  int version_given ;	/* Whether version was given.  */
  int fg_given ;	/* Whether fg was given.  */
  int debug_given ;	/* Whether debug was given.  */
  int conf_given ;	/* Whether conf was given.  */
  int pidfile_given ;	/* Whether pidfile was given.  */
  int statedir_given ;	/* Whether statedir was given.  */
  int dns_given ;	/* Whether dns was given.  */
  int listen_given ;	/* Whether listen was given.  */
  int remote_given ;	/* Whether remote was given.  */
  int net_given ;	/* Whether net was given.  */
  int mask_given ;	/* Whether mask was given.  */
  int contexts_given ;	/* Whether contexts was given.  */
  int static_given ;	/* Whether static was given.  */
  int timelimit_given ;	/* Whether timelimit was given.  */
  int apn_given ;	/* Whether apn was given.  */
  int imsi_given ;	/* Whether imsi was given.  */
  int msisdn_given ;	/* Whether msisdn was given.  */
  int qos_given ;	/* Whether qos was given.  */
  int uid_given ;	/* Whether uid was given.  */
  int pwd_given ;	/* Whether pwd was given.  */

} ;

int cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info);

void cmdline_parser_print_help(void);
void cmdline_parser_print_version(void);

int cmdline_parser_configfile (char * const filename, struct gengetopt_args_info *args_info, int override);

#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* _cmdline_h */
