diff options
author | Christian Pointner <equinox@spreadspace.org> | 2015-07-26 17:13:42 (GMT) |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2015-07-26 17:13:42 (GMT) |
commit | 1324242685b63a511be3b3625f78e1ebf2dafc76 (patch) | |
tree | b83d4947415757fba945b7a91a25230c9d044144 /src/options.h | |
parent | c6bbdfbdde366bfbb37858e7dc9e0fc351595023 (diff) |
moved sources to src/
Diffstat (limited to 'src/options.h')
-rw-r--r-- | src/options.h | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/src/options.h b/src/options.h new file mode 100644 index 0000000..450c8f2 --- /dev/null +++ b/src/options.h @@ -0,0 +1,87 @@ +/* + * rhctl + * + * Copyright (C) 2009-2014 Christian Pointner <equinox@helsinki.at> + * + * This file is part of rhctl. + * + * rhctl is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * rhctl is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rhctl. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef RHCTL_options_h_INCLUDED +#define RHCTL_options_h_INCLUDED + +#include <lua.h> + +#include "string_list.h" +#include "key_value_storage.h" +#include <termios.h> + +enum mode_enum { MODE_MASTER, MODE_STANDBY }; +typedef enum mode_enum switchctl_mode_t; + +enum channel_enum { CHAN_MAIN, CHAN_MUSIC }; +typedef enum channel_enum switchctl_channel_t; + +struct options_struct { +/* common */ + char* progname_; + int daemonize_; + char* username_; + char* groupname_; + char* chroot_dir_; + char* pid_file_; + string_list_t log_targets_; + + char* command_sock_; + speed_t baudrate_; + +/* switchctl */ + switchctl_mode_t mode_; + switchctl_channel_t channel_master_; + switchctl_channel_t channel_standby_; + char* conf_file_; + char* switch_dev_; + key_value_storage_t alias_table_; + +/* serialclient and heartbeatclient */ + char* serial_dev_; + +/* serialclient only */ + char* type_; + +/* heartbeatclient only */ + u_int32_t timeout_; + char* led_filename_; + +/* luaclient only */ + char* lua_file_; +}; +typedef struct options_struct options_t; + +int options_parse_hex_string(const char* hex, buffer_t* buffer); + +int options_parse(options_t* opt, int argc, char* argv[]); +int options_parse_post(options_t* opt); +void options_default(options_t* opt); +void options_lua_push_string(lua_State* L, const int tidx, const char* key, const char* value); +void options_lua_push_int(lua_State* L, const int tidx, const char* key, const u_int32_t value); +void options_lua_push_boolean(lua_State* L, const int tidx, const char* key, const u_int32_t value); +void options_lua_push_string_list(lua_State* L, const int tidx, string_list_t* lst); +void options_lua_push(options_t* opt, lua_State* L); +void options_clear(options_t* opt); +void options_print_usage(); +void options_print(options_t* opt); + +#endif |