最終更新:2022-08-24 (水) 13:34:24 (608d)  

usb_function
Top / usb_function

describes one function of a configuration

struct usb_function {
        const char                      *name;
        struct usb_gadget_strings       **strings;
        struct usb_descriptor_header    **fs_descriptors;
        struct usb_descriptor_header    **hs_descriptors;
        struct usb_descriptor_header    **ss_descriptors;

        struct usb_configuration        *config;

        /* REVISIT:  bind() functions can be marked __init, which
         * makes trouble for section mismatch analysis.  See if
         * we can't restructure things to avoid mismatching.
         * Related:  unbind() may kfree() but bind() won't...
         */

        /* configuration management:  bind/unbind */
        int                     (*bind)(struct usb_configuration *,
                                        struct usb_function *);
        void                    (*unbind)(struct usb_configuration *,
                                        struct usb_function *);
        void                    (*free_func)(struct usb_function *f);
        struct module           *mod;

        /* runtime state management */
        int                     (*set_alt)(struct usb_function *,
                                        unsigned interface, unsigned alt);
        int                     (*get_alt)(struct usb_function *,
                                        unsigned interface);
        void                    (*disable)(struct usb_function *);
        int                     (*setup)(struct usb_function *,
                                        const struct usb_ctrlrequest *);
        void                    (*suspend)(struct usb_function *);
        void                    (*resume)(struct usb_function *);

        /* USB 3.0 additions */
        int                     (*get_status)(struct usb_function *);
        int                     (*func_suspend)(struct usb_function *,
                                                u8 suspend_opt);
        /* private: */
        /* internals */
        struct list_head                list;
        DECLARE_BITMAP(endpoints, 32);
        const struct usb_function_instance *fi;
};

使われどころ

drivers/usb/gadget/function/f_acm.c?
drivers/usb/gadget/function/f_ecm.c?
drivers/usb/gadget/function/f_eem.c?
drivers/usb/gadget/function/f_fs.c?
drivers/usb/gadget/function/f_hid.c?
drivers/usb/gadget/function/f_loopback.c?
drivers/usb/gadget/function/f_mass_storage.c?
drivers/usb/gadget/function/f_midi.c?
drivers/usb/gadget/function/f_ncm.c?
drivers/usb/gadget/function/f_obex.c?
drivers/usb/gadget/function/f_phonet.c?
drivers/usb/gadget/function/f_printer.c?
drivers/usb/gadget/function/f_rndis.c?
drivers/usb/gadget/function/f_serial.c?
drivers/usb/gadget/function/f_sourcesink.c?
drivers/usb/gadget/function/f_subset.c?
drivers/usb/gadget/function/f_tcm.c?
drivers/usb/gadget/function/f_uac1.c
drivers/usb/gadget/function/f_uac1_legacy.c?
drivers/usb/gadget/function/f_uac2.c?
drivers/usb/gadget/function/f_uvc.c
drivers/usb/gadget/function/tcm.h?
drivers/usb/gadget/function/u_audio.h?
drivers/usb/gadget/function/u_ether.h?
drivers/usb/gadget/function/u_serial.h?
drivers/usb/gadget/function/u_uac1_legacy.h?
drivers/usb/gadget/function/uvc.h?
drivers/usb/gadget/functions.c
drivers/usb/gadget/legacy/acm_ms.c?
drivers/usb/gadget/legacy/audio.c?
drivers/usb/gadget/legacy/cdc2.c?
drivers/usb/gadget/legacy/ether.c?
drivers/usb/gadget/legacy/g_ffs.c?
drivers/usb/gadget/legacy/gmidi.c?
drivers/usb/gadget/legacy/hid.c?
drivers/usb/gadget/legacy/mass_storage.c?
drivers/usb/gadget/legacy/multi.c?
drivers/usb/gadget/legacy/ncm.c?
drivers/usb/gadget/legacy/nokia.c?
drivers/usb/gadget/legacy/printer.c?
drivers/usb/gadget/legacy/serial.c?
drivers/usb/gadget/legacy/tcm_usb_gadget.c?
drivers/usb/gadget/legacy/webcam.c?
drivers/usb/gadget/legacy/zero.c?