| /* SPDX-License-Identifier: GPL-2.0 */ | |
| /* | |
| * u_ncm.h | |
| * | |
| * Utility definitions for the ncm function | |
| * | |
| * Copyright (c) 2013 Samsung Electronics Co., Ltd. | |
| * http://www.samsung.com | |
| * | |
| * Author: Andrzej Pietrasiewicz <andrzejtp2010@gmail.com> | |
| */ | |
| #ifndef U_NCM_H | |
| #define U_NCM_H | |
| #include <linux/usb/composite.h> | |
| /** | |
| * struct f_ncm_opts - NCM function options | |
| * @func_inst: USB function instance. | |
| * @net: The net_device associated with the NCM function. | |
| * @bind_count: Tracks the number of configurations the NCM function is | |
| * bound to, preventing double-registration of the @net device. | |
| * @ncm_interf_group: ConfigFS group for NCM interface. | |
| * @ncm_os_desc: USB OS descriptor for NCM. | |
| * @ncm_ext_compat_id: Extended compatibility ID. | |
| * @lock: Protects the data from concurrent access by configfs read/write | |
| * and create symlink/remove symlink operations. | |
| * @refcnt: Reference counter for the function instance. | |
| * @max_segment_size: Maximum segment size. | |
| */ | |
| struct f_ncm_opts { | |
| struct usb_function_instance func_inst; | |
| struct net_device *net; | |
| int bind_count; | |
| struct config_group *ncm_interf_group; | |
| struct usb_os_desc ncm_os_desc; | |
| char ncm_ext_compat_id[16]; | |
| struct mutex lock; | |
| int refcnt; | |
| u16 max_segment_size; | |
| }; | |
| #endif /* U_NCM_H */ |