404

[ Avaa Bypassed ]




Upload:

Command:

botdev@18.217.69.43: ~ $
// SPDX-License-Identifier: GPL-2.0
/*
 * Wireless USB - Cable Based Association
 *
 * Copyright (C) 2006 Intel Corporation
 * Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License version
 * 2 as published by the Free Software Foundation.
 *
 */
#ifndef __LINUX_USB_ASSOCIATION_H
#define __LINUX_USB_ASSOCIATION_H


/*
 * Association attributes
 *
 * Association Models Supplement to WUSB 1.0 T[3-1]
 *
 * Each field in the structures has it's ID, it's length and then the
 * value. This is the actual definition of the field's ID and its
 * length.
 */
struct wusb_am_attr {
	__u8 id;
	__u8 len;
};

/* Different fields defined by the spec */
#define WUSB_AR_AssociationTypeId	{ .id = cpu_to_le16(0x0000), .len = cpu_to_le16(2) }
#define WUSB_AR_AssociationSubTypeId	{ .id = cpu_to_le16(0x0001), .len = cpu_to_le16(2) }
#define WUSB_AR_Length			{ .id = cpu_to_le16(0x0002), .len = cpu_to_le16(4) }
#define WUSB_AR_AssociationStatus	{ .id = cpu_to_le16(0x0004), .len = cpu_to_le16(4) }
#define WUSB_AR_LangID			{ .id = cpu_to_le16(0x0008), .len = cpu_to_le16(2) }
#define WUSB_AR_DeviceFriendlyName	{ .id = cpu_to_le16(0x000b), .len = cpu_to_le16(64) } /* max */
#define WUSB_AR_HostFriendlyName	{ .id = cpu_to_le16(0x000c), .len = cpu_to_le16(64) } /* max */
#define WUSB_AR_CHID			{ .id = cpu_to_le16(0x1000), .len = cpu_to_le16(16) }
#define WUSB_AR_CDID			{ .id = cpu_to_le16(0x1001), .len = cpu_to_le16(16) }
#define WUSB_AR_ConnectionContext	{ .id = cpu_to_le16(0x1002), .len = cpu_to_le16(48) }
#define WUSB_AR_BandGroups		{ .id = cpu_to_le16(0x1004), .len = cpu_to_le16(2) }

/* CBAF Control Requests (AMS1.0[T4-1] */
enum {
	CBAF_REQ_GET_ASSOCIATION_INFORMATION = 0x01,
	CBAF_REQ_GET_ASSOCIATION_REQUEST,
	CBAF_REQ_SET_ASSOCIATION_RESPONSE
};

/*
 * CBAF USB-interface defitions
 *
 * No altsettings, one optional interrupt endpoint.
 */
enum {
	CBAF_IFACECLASS    = 0xef,
	CBAF_IFACESUBCLASS = 0x03,
	CBAF_IFACEPROTOCOL = 0x01,
};

/* Association Information (AMS1.0[T4-3]) */
struct wusb_cbaf_assoc_info {
	__le16 Length;
	__u8 NumAssociationRequests;
	__le16 Flags;
	__u8 AssociationRequestsArray[];
} __attribute__((packed));

/* Association Request (AMS1.0[T4-4]) */
struct wusb_cbaf_assoc_request {
	__u8 AssociationDataIndex;
	__u8 Reserved;
	__le16 AssociationTypeId;
	__le16 AssociationSubTypeId;
	__le32 AssociationTypeInfoSize;
} __attribute__((packed));

enum {
	AR_TYPE_WUSB                    = 0x0001,
	AR_TYPE_WUSB_RETRIEVE_HOST_INFO = 0x0000,
	AR_TYPE_WUSB_ASSOCIATE          = 0x0001,
};

/* Association Attribute header (AMS1.0[3.8]) */
struct wusb_cbaf_attr_hdr {
	__le16 id;
	__le16 len;
} __attribute__((packed));

/* Host Info (AMS1.0[T4-7]) (yeah, more headers and fields...) */
struct wusb_cbaf_host_info {
	struct wusb_cbaf_attr_hdr AssociationTypeId_hdr;
	__le16 AssociationTypeId;
	struct wusb_cbaf_attr_hdr AssociationSubTypeId_hdr;
	__le16 AssociationSubTypeId;
	struct wusb_cbaf_attr_hdr CHID_hdr;
	struct wusb_ckhdid CHID;
	struct wusb_cbaf_attr_hdr LangID_hdr;
	__le16 LangID;
	struct wusb_cbaf_attr_hdr HostFriendlyName_hdr;
	__u8 HostFriendlyName[];
} __attribute__((packed));

/* Device Info (AMS1.0[T4-8])
 *
 * I still don't get this tag'n'header stuff for each goddamn
 * field...
 */
struct wusb_cbaf_device_info {
	struct wusb_cbaf_attr_hdr Length_hdr;
	__le32 Length;
	struct wusb_cbaf_attr_hdr CDID_hdr;
	struct wusb_ckhdid CDID;
	struct wusb_cbaf_attr_hdr BandGroups_hdr;
	__le16 BandGroups;
	struct wusb_cbaf_attr_hdr LangID_hdr;
	__le16 LangID;
	struct wusb_cbaf_attr_hdr DeviceFriendlyName_hdr;
	__u8 DeviceFriendlyName[];
} __attribute__((packed));

/* Connection Context; CC_DATA - Success case (AMS1.0[T4-9]) */
struct wusb_cbaf_cc_data {
	struct wusb_cbaf_attr_hdr AssociationTypeId_hdr;
	__le16 AssociationTypeId;
	struct wusb_cbaf_attr_hdr AssociationSubTypeId_hdr;
	__le16 AssociationSubTypeId;
	struct wusb_cbaf_attr_hdr Length_hdr;
	__le32 Length;
	struct wusb_cbaf_attr_hdr ConnectionContext_hdr;
	struct wusb_ckhdid CHID;
	struct wusb_ckhdid CDID;
	struct wusb_ckhdid CK;
	struct wusb_cbaf_attr_hdr BandGroups_hdr;
	__le16 BandGroups;
} __attribute__((packed));

/* CC_DATA - Failure case (AMS1.0[T4-10]) */
struct wusb_cbaf_cc_data_fail {
	struct wusb_cbaf_attr_hdr AssociationTypeId_hdr;
	__le16 AssociationTypeId;
	struct wusb_cbaf_attr_hdr AssociationSubTypeId_hdr;
	__le16 AssociationSubTypeId;
	struct wusb_cbaf_attr_hdr Length_hdr;
	__le16 Length;
	struct wusb_cbaf_attr_hdr AssociationStatus_hdr;
	__u32 AssociationStatus;
} __attribute__((packed));

#endif	/* __LINUX_USB_ASSOCIATION_H */

Filemanager

Name Type Size Permission Actions
association.h File 4.59 KB 0644
atmel_usba_udc.h File 421 B 0644
audio-v2.h File 13.17 KB 0644
audio.h File 1.23 KB 0644
c67x00.h File 1.82 KB 0644
cdc-wdm.h File 651 B 0644
cdc.h File 1.48 KB 0644
cdc_ncm.h File 5.56 KB 0644
ch9.h File 2.5 KB 0644
chipidea.h File 2.77 KB 0644
composite.h File 25.17 KB 0644
ehci-dbgp.h File 2.05 KB 0644
ehci_def.h File 7.89 KB 0644
ehci_pdriver.h File 2.31 KB 0644
ezusb.h File 286 B 0644
functionfs.h File 151 B 0644
g_hid.h File 1.13 KB 0644
gadget.h File 32.65 KB 0644
gadget_configfs.h File 2.94 KB 0644
gpio_vbus.h File 1.13 KB 0644
hcd.h File 25.93 KB 0644
input.h File 716 B 0644
iowarrior.h File 1.34 KB 0644
irda.h File 3.76 KB 0644
isp116x.h File 1.13 KB 0644
isp1301.h File 2.38 KB 0644
isp1362.h File 1.59 KB 0644
isp1760.h File 633 B 0644
m66592.h File 1.41 KB 0644
musb-ux500.h File 899 B 0644
musb.h File 4.59 KB 0644
net2280.h File 23.55 KB 0644
of.h File 1.46 KB 0644
ohci_pdriver.h File 1.71 KB 0644
otg-fsm.h File 8.61 KB 0644
otg.h File 3.01 KB 0644
pd.h File 8.98 KB 0644
pd_bdo.h File 1011 B 0644
pd_vdo.h File 7.58 KB 0644
phy.h File 9.25 KB 0644
phy_companion.h File 1.17 KB 0644
quirks.h File 2.34 KB 0644
r8a66597.h File 17.65 KB 0644
renesas_usbhs.h File 4.76 KB 0644
rndis_host.h File 5.94 KB 0644
samsung_usb_phy.h File 530 B 0644
serial.h File 17.12 KB 0644
sl811.h File 838 B 0644
storage.h File 2.58 KB 0644
tcpm.h File 6.46 KB 0644
tegra_usb_phy.h File 2.38 KB 0644
tilegx.h File 983 B 0644
typec.h File 7.04 KB 0644
uas.h File 2.07 KB 0644
ulpi.h File 1.99 KB 0644
usb338x.h File 7.63 KB 0644
usb_phy_generic.h File 892 B 0644
usbnet.h File 10.01 KB 0644
wusb-wa.h File 7.5 KB 0644
wusb.h File 9.92 KB 0644
xhci-dbgp.h File 825 B 0644