3.3 and 3.6 kernels do not make use of the UAPI headers, still they need to provide an up-to-date switch.h copy for swconfig to build. Signed-off-by: Florian Fainelli <florian@openwrt.org> SVN-Revision: 36295
		
			
				
	
	
		
			110 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- 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
 |