xref: /linux/include/linux/device-id/tb.h (revision d2c9a99135da931377240942d44f3dea104cedb8)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef LINUX_DEVICE_ID_TB_H
3 #define LINUX_DEVICE_ID_TB_H
4 
5 #ifdef __KERNEL__
6 #include <linux/types.h>
7 typedef unsigned long kernel_ulong_t;
8 #endif
9 
10 #define TBSVC_MATCH_PROTOCOL_KEY	0x0001
11 #define TBSVC_MATCH_PROTOCOL_ID		0x0002
12 #define TBSVC_MATCH_PROTOCOL_VERSION	0x0004
13 #define TBSVC_MATCH_PROTOCOL_REVISION	0x0008
14 
15 /**
16  * struct tb_service_id - Thunderbolt service identifiers
17  * @match_flags: Flags used to match the structure
18  * @protocol_key: Protocol key the service supports
19  * @protocol_id: Protocol id the service supports
20  * @protocol_version: Version of the protocol
21  * @protocol_revision: Revision of the protocol software
22  * @driver_data: Driver specific data
23  *
24  * Thunderbolt XDomain services are exposed as devices where each device
25  * carries the protocol information the service supports. Thunderbolt
26  * XDomain service drivers match against that information.
27  */
28 struct tb_service_id {
29 	__u32 match_flags;
30 	char protocol_key[8 + 1];
31 	__u32 protocol_id;
32 	__u32 protocol_version;
33 	__u32 protocol_revision;
34 	kernel_ulong_t driver_data;
35 };
36 
37 #endif /* ifndef LINUX_DEVICE_ID_TB_H */
38