/* 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 */