diff options
Diffstat (limited to 'bin/wimaxll-pl-state-get.c')
-rw-r--r-- | bin/wimaxll-pl-state-get.c | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/bin/wimaxll-pl-state-get.c b/bin/wimaxll-pl-state-get.c new file mode 100644 index 0000000..c41d7e0 --- /dev/null +++ b/bin/wimaxll-pl-state-get.c @@ -0,0 +1,96 @@ +/* + * Linux WiMax + * Swiss-army WiMAX knife + * + * + * Copyright (C) 2007-2008 Intel Corporation. All rights reserved. + * Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com> + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#define _GNU_SOURCE +#include <argp.h> +#include <error.h> +#include <wimaxll.h> +#include <wimaxll/version.h> +#include <wimaxll/cmd.h> + + +static +struct argp_option state_get_options[] = { + { 0 } +}; + +static +int state_get_parser(int key, char *arg, struct argp_state *state) +{ + return ARGP_ERR_UNKNOWN; +} + +static +int state_get_fn(struct cmd *cmd, struct wimaxll_handle *wmx, + int argc, char **argv) +{ + int result; + result = argp_parse(&cmd->argp, argc, argv, + ARGP_IN_ORDER | ARGP_PARSE_ARGV0, 0, NULL); + if (result < 0) + goto error_argp_parse; + w_cmd_need_if(wmx); + result = wimaxll_state_get(wmx); + if (result >= 0) + w_print("%s\n", wimaxll_state_to_name(result)); +error_argp_parse: + return result; +} + +static +struct cmd state_get_cmd = { + .name = "state-get", + .argp = { + .options = state_get_options, + .parser = state_get_parser, + .args_doc = "", + .doc = "Gets a WiMAX device's state\n", + }, + .fn = state_get_fn, +}; + +static +int state_get_init(void) +{ + return w_cmd_register(&state_get_cmd); +} + +static +void state_get_exit(void) +{ + w_cmd_unregister(&state_get_cmd); +} + + +PLUGIN("state_get", WIMAXLL_VERSION, state_get_init, state_get_exit); |