diff options
Diffstat (limited to 'target/linux/generic/patches-3.3/a03-swconfig-revert-UAPI-disintegration.patch')
| -rw-r--r-- | target/linux/generic/patches-3.3/a03-swconfig-revert-UAPI-disintegration.patch | 109 | 
1 files changed, 109 insertions, 0 deletions
| diff --git a/target/linux/generic/patches-3.3/a03-swconfig-revert-UAPI-disintegration.patch b/target/linux/generic/patches-3.3/a03-swconfig-revert-UAPI-disintegration.patch new file mode 100644 index 000000000..a214c1500 --- /dev/null +++ b/target/linux/generic/patches-3.3/a03-swconfig-revert-UAPI-disintegration.patch @@ -0,0 +1,109 @@ +--- a/include/linux/switch.h ++++ b/include/linux/switch.h +@@ -13,11 +13,95 @@ +  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +  * GNU General Public License for more details. +  */ +-#ifndef _LINUX_SWITCH_H +-#define _LINUX_SWITCH_H +  ++#ifndef __LINUX_SWITCH_H ++#define __LINUX_SWITCH_H ++ ++#include <linux/types.h> ++#include <linux/netdevice.h> ++#include <linux/netlink.h> ++#include <linux/genetlink.h> ++#ifndef __KERNEL__ ++#include <netlink/netlink.h> ++#include <netlink/genl/genl.h> ++#include <netlink/genl/ctrl.h> ++#else + #include <net/genetlink.h> +-#include <uapi/linux/switch.h> ++#endif ++ ++/* main attributes */ ++enum { ++	SWITCH_ATTR_UNSPEC, ++	/* global */ ++	SWITCH_ATTR_TYPE, ++	/* device */ ++	SWITCH_ATTR_ID, ++	SWITCH_ATTR_DEV_NAME, ++	SWITCH_ATTR_ALIAS, ++	SWITCH_ATTR_NAME, ++	SWITCH_ATTR_VLANS, ++	SWITCH_ATTR_PORTS, ++	SWITCH_ATTR_PORTMAP, ++	SWITCH_ATTR_CPU_PORT, ++	/* attributes */ ++	SWITCH_ATTR_OP_ID, ++	SWITCH_ATTR_OP_TYPE, ++	SWITCH_ATTR_OP_NAME, ++	SWITCH_ATTR_OP_PORT, ++	SWITCH_ATTR_OP_VLAN, ++	SWITCH_ATTR_OP_VALUE_INT, ++	SWITCH_ATTR_OP_VALUE_STR, ++	SWITCH_ATTR_OP_VALUE_PORTS, ++	SWITCH_ATTR_OP_DESCRIPTION, ++	/* port lists */ ++	SWITCH_ATTR_PORT, ++	SWITCH_ATTR_MAX ++}; ++ ++enum { ++	/* port map */ ++	SWITCH_PORTMAP_PORTS, ++	SWITCH_PORTMAP_SEGMENT, ++	SWITCH_PORTMAP_VIRT, ++	SWITCH_PORTMAP_MAX ++}; ++ ++/* commands */ ++enum { ++	SWITCH_CMD_UNSPEC, ++	SWITCH_CMD_GET_SWITCH, ++	SWITCH_CMD_NEW_ATTR, ++	SWITCH_CMD_LIST_GLOBAL, ++	SWITCH_CMD_GET_GLOBAL, ++	SWITCH_CMD_SET_GLOBAL, ++	SWITCH_CMD_LIST_PORT, ++	SWITCH_CMD_GET_PORT, ++	SWITCH_CMD_SET_PORT, ++	SWITCH_CMD_LIST_VLAN, ++	SWITCH_CMD_GET_VLAN, ++	SWITCH_CMD_SET_VLAN ++}; ++ ++/* data types */ ++enum switch_val_type { ++	SWITCH_TYPE_UNSPEC, ++	SWITCH_TYPE_INT, ++	SWITCH_TYPE_STRING, ++	SWITCH_TYPE_PORTS, ++	SWITCH_TYPE_NOVAL, ++}; ++ ++/* port nested attributes */ ++enum { ++	SWITCH_PORT_UNSPEC, ++	SWITCH_PORT_ID, ++	SWITCH_PORT_FLAG_TAGGED, ++	SWITCH_PORT_ATTR_MAX ++}; ++ ++#define SWITCH_ATTR_DEFAULTS_OFFSET	0x1000 ++ ++#ifdef __KERNEL__ +  + struct switch_dev; + struct switch_op; +@@ -164,4 +248,6 @@ struct switch_attr { + 	int max; + }; +  +-#endif /* _LINUX_SWITCH_H */ ++#endif ++ ++#endif | 
