1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * u_rndis.h 4 * 5 * Utility definitions for the subset function 6 * 7 * Copyright (c) 2013 Samsung Electronics Co., Ltd. 8 * http://www.samsung.com 9 * 10 * Author: Andrzej Pietrasiewicz <andrzejtp2010@gmail.com> 11 */ 12 13 #ifndef U_RNDIS_H 14 #define U_RNDIS_H 15 16 #include <linux/usb/composite.h> 17 18 struct f_rndis_opts { 19 struct usb_function_instance func_inst; 20 u32 vendor_id; 21 const char *manufacturer; 22 struct net_device *net; 23 bool bound; 24 bool borrowed_net; 25 26 struct config_group *rndis_interf_group; 27 struct usb_os_desc rndis_os_desc; 28 char rndis_ext_compat_id[16]; 29 30 u8 class; 31 u8 subclass; 32 u8 protocol; 33 34 /* 35 * Read/write access to configfs attributes is handled by configfs. 36 * 37 * This is to protect the data from concurrent access by read/write 38 * and create symlink/remove symlink. 39 */ 40 struct mutex lock; 41 int refcnt; 42 }; 43 44 void rndis_borrow_net(struct usb_function_instance *f, struct net_device *net); 45 46 #endif /* U_RNDIS_H */ 47