1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
/*
* This file and its contents are supplied under the terms of the
* Common Development and Distribution License ("CDDL"), version 1.0.
* You may only use this file in accordance with the terms of version
* 1.0 of the CDDL.
*
* A full copy of the text of the CDDL should have accompanied this
* source. A copy of the CDDL is also available via the Internet at
* http://www.illumos.org/license/CDDL.
*/
/*
* Copyright 2022 Oxide Computer Company
*/
#ifndef _GPIOADM_H
#define _GPIOADM_H
/*
* gpioadm(8) interfaces
*/
#include <sys/ccompile.h>
#include <stdio.h>
#include <libxpio.h>
#include <sys/gpio/kgpio_attr.h>
#ifdef __cplusplus
extern "C" {
#endif
#define EXIT_USAGE 2
typedef struct {
const char *gpio_progname;
xpio_t *gpio_xpio;
} gpioadm_t;
typedef struct gpioadm_cmdtab {
const char *gpct_name;
int (*gpct_func)(int, char *[]);
void (*gpct_use)(FILE *);
} gpioadm_cmdtab_t;
extern gpioadm_t gpioadm;
extern void gpioadm_warn(const char *, ...) __PRINTFLIKE(1);
extern void gpioadm_fatal(const char *, ...) __PRINTFLIKE(1) __NORETURN;
extern void gpioadm_update_fatal(xpio_gpio_update_t *, const char *,
...) __PRINTFLIKE(2) __NORETURN;
extern void gpioadm_ofmt_errx(const char *, ...) __PRINTFLIKE(1) __NORETURN;
extern void gpioadm_ctrl_gpio_init(const char *, xpio_ctrl_t **,
xpio_gpio_info_t **);
extern void gpioadm_walk_usage(const gpioadm_cmdtab_t *, FILE *);
extern int gpioadm_walk_tab(const gpioadm_cmdtab_t *, int, char *[]);
extern int gpioadm_controller(int, char *[]);
extern void gpioadm_controller_usage(FILE *);
extern int gpioadm_dpio(int, char *[]);
extern void gpioadm_dpio_usage(FILE *);
extern int gpioadm_gpio(int, char *[]);
extern void gpioadm_gpio_usage(FILE *);
#ifdef __cplusplus
}
#endif
#endif /* _GPIOADM_H */
|