diff options
author | fishsoupisgood <github@madingley.org> | 2019-04-29 01:17:54 +0100 |
---|---|---|
committer | fishsoupisgood <github@madingley.org> | 2019-05-27 03:43:43 +0100 |
commit | 3f2546b2ef55b661fd8dd69682b38992225e86f6 (patch) | |
tree | 65ca85f13617aee1dce474596800950f266a456c /roms/ipxe/src/include/hci | |
download | qemu-master.tar.gz qemu-master.tar.bz2 qemu-master.zip |
Diffstat (limited to 'roms/ipxe/src/include/hci')
-rw-r--r-- | roms/ipxe/src/include/hci/ifmgmt_cmd.h | 72 | ||||
-rw-r--r-- | roms/ipxe/src/include/hci/linux_args.h | 31 |
2 files changed, 103 insertions, 0 deletions
diff --git a/roms/ipxe/src/include/hci/ifmgmt_cmd.h b/roms/ipxe/src/include/hci/ifmgmt_cmd.h new file mode 100644 index 00000000..913b911d --- /dev/null +++ b/roms/ipxe/src/include/hci/ifmgmt_cmd.h @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2007 Michael Brown <mbrown@fensystems.co.uk>. + * + * This program 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 2 of the + * License, or any later version. + * + * This program 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 this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301, USA. + */ + +#ifndef _IFMGMT_CMD_H +#define _IFMGMT_CMD_H + +FILE_LICENCE ( GPL2_OR_LATER ); + +#include <ipxe/parseopt.h> + +struct net_device; + +/** An "if<xxx>" command descriptor */ +struct ifcommon_command_descriptor { + /** Command descriptor */ + struct command_descriptor cmd; + /** Payload + * + * @v netdev Network device + * @v opts Command options + * @ret rc Return status code + */ + int ( * payload ) ( struct net_device *netdev, void *opts ); + /** Stop on first success */ + int stop_on_first_success; +}; + +/** + * Construct "if<xxx>" command descriptor + * + * @v _struct Options structure type + * @v _options Option descriptor array + * @v _check_args Remaining argument checker + * @v _usage Command usage + * @ret _command Command descriptor + */ +#define IFCOMMON_COMMAND_DESC( _struct, _options, _min_args, \ + _max_args, _usage, _payload, \ + _stop_on_first_success ) \ + { \ + .cmd = COMMAND_DESC ( _struct, _options, _min_args, \ + _max_args, _usage ), \ + .payload = ( ( int ( * ) ( struct net_device *netdev, \ + void *opts ) ) \ + ( ( ( ( int ( * ) ( struct net_device *, \ + _struct * ) ) NULL ) \ + == ( typeof ( _payload ) * ) NULL ) \ + ? _payload : _payload ) ), \ + .stop_on_first_success = _stop_on_first_success, \ + } + +extern int ifcommon_exec ( int argc, char **argv, + struct ifcommon_command_descriptor *cmd ); +extern int ifconf_exec ( int argc, char **argv ); + +#endif /* _IFMGMT_CMD_H */ diff --git a/roms/ipxe/src/include/hci/linux_args.h b/roms/ipxe/src/include/hci/linux_args.h new file mode 100644 index 00000000..ae1ed052 --- /dev/null +++ b/roms/ipxe/src/include/hci/linux_args.h @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2010 Piotr JaroszyĆski <p.jaroszynski@gmail.com> + * + * This program 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 2 of the + * License, or any later version. + * + * This program 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 this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _HCI_LINUX_ARGS_H +#define _HCI_LINUX_ARGS_H + +FILE_LICENCE(GPL2_OR_LATER); + +/** + * Save argc and argv for later access. + * + * To be called by linuxprefix + */ +extern __asmcall void save_args(int argc, char **argv); + +#endif /* _HCI_LINUX_ARGS_H */ |