xref: /freebsd/usr.sbin/ppp/command.h (revision a8445737e740901f5f2c8d24c12ef7fc8b00134e)
1 /*
2  *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
3  *
4  *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
5  *
6  * Redistribution and use in source and binary forms are permitted
7  * provided that the above copyright notice and this paragraph are
8  * duplicated in all such forms and that any documentation,
9  * advertising materials, and other materials related to such
10  * distribution and use acknowledge that the software was developed
11  * by the Internet Initiative Japan.  The name of the
12  * IIJ may not be used to endorse or promote products derived
13  * from this software without specific prior written permission.
14  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
15  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
16  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17  *
18  * $Id: command.h,v 1.14 1998/06/15 19:05:42 brian Exp $
19  *
20  *	TODO:
21  */
22 
23 struct cmdtab;
24 struct bundle;
25 struct datalink;
26 struct prompt;
27 
28 struct cmdargs {
29   struct cmdtab const *cmdtab;		/* The entire command table */
30   struct cmdtab const *cmd;		/* This command entry */
31   int argc;				/* Number of arguments (excluding cmd */
32   int argn;				/* Argument to start processing from */
33   char const *const *argv;		/* Arguments */
34   struct bundle *bundle;		/* Our bundle */
35   struct datalink *cx;			/* Our context */
36   struct prompt *prompt;		/* Who executed us */
37 };
38 
39 struct cmdtab {
40   const char *name;
41   const char *alias;
42   int (*func) (struct cmdargs const *);
43   u_char lauth;
44   const char *helpmes;
45   const char *syntax;
46   const void *args;
47 };
48 
49 #define NEG_ACCEPTED (1)
50 #define NEG_ENABLED (2)
51 #define IsAccepted(x) ((x) & NEG_ACCEPTED)
52 #define IsEnabled(x) ((x) & NEG_ENABLED)
53 
54 extern const char Version[];
55 extern const char VersionDate[];
56 
57 extern int command_Interpret(char *, int, char *vector[MAXARGS]);
58 extern void command_Run(struct bundle *, int, char const *const *,
59                         struct prompt *, const char *, struct datalink *);
60 extern void command_Decode(struct bundle *, char *, int, struct prompt *,
61                            const char *);
62 extern struct link *command_ChooseLink(struct cmdargs const *);
63 extern const char *command_ShowNegval(unsigned);
64