Xenomai  3.0-rc3
init.h
1 /*
2  * Copyright (C) 2008 Philippe Gerum <rpm@xenomai.org>.
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13 
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
17  */
18 
19 #ifndef _COPPERPLATE_INIT_H
20 #define _COPPERPLATE_INIT_H
21 
22 #include <stdarg.h>
23 #include <sched.h>
24 #include <boilerplate/trace.h>
25 #include <boilerplate/list.h>
26 #include <boilerplate/ancillaries.h>
27 
28 struct option;
29 
30 struct copperskin {
31  const char *name;
32  int (*init)(void);
33  const struct option *options;
34  int (*parse_option)(int optnum, const char *optarg);
35  void (*help)(void);
36  struct {
37  int opt_start;
38  int opt_end;
39  struct pvholder next;
40  } __reserved; /* Don't init, reserved to Copperplate. */
41 };
42 
43 #ifdef __cplusplus
44 extern "C" {
45 #endif
46 
47 int copperplate_main(int argc, char *const argv[]);
48 
49 void copperplate_init(int *argcp, char *const **argvp);
50 
51 void copperplate_register_skin(struct copperskin *p);
52 
53 #ifdef __cplusplus
54 }
55 #endif
56 
57 #endif /* _COPPERPLATE_INIT_H */