Subversion Repositories Kolibri OS

Rev

Rev 3120 | Rev 4279 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3120 Rev 4065
Line 31... Line 31...
31
	__u32 match_flags;
31
	__u32 match_flags;
32
	__u32 vendor_id;
32
	__u32 vendor_id;
33
	__u32 model_id;
33
	__u32 model_id;
34
	__u32 specifier_id;
34
	__u32 specifier_id;
35
	__u32 version;
35
	__u32 version;
36
	kernel_ulong_t driver_data
36
	kernel_ulong_t driver_data;
37
		__attribute__((aligned(sizeof(kernel_ulong_t))));
-
 
38
};
37
};
Line 39... Line 38...
39
 
38
 
40
 
39
 
Line 145... Line 144...
145
struct hid_device_id {
144
struct hid_device_id {
146
	__u16 bus;
145
	__u16 bus;
147
	__u16 group;
146
	__u16 group;
148
	__u32 vendor;
147
	__u32 vendor;
149
	__u32 product;
148
	__u32 product;
150
	kernel_ulong_t driver_data
149
	kernel_ulong_t driver_data;
151
		__attribute__((aligned(sizeof(kernel_ulong_t))));
-
 
152
};
150
};
Line 153... Line 151...
153
 
151
 
154
/* s390 CCW devices */
152
/* s390 CCW devices */
155
struct ccw_device_id {
153
struct ccw_device_id {
Line 170... Line 168...
170
 
168
 
171
/* s390 AP bus devices */
169
/* s390 AP bus devices */
172
struct ap_device_id {
170
struct ap_device_id {
173
	__u16 match_flags;	/* which fields to match against */
171
	__u16 match_flags;	/* which fields to match against */
174
	__u8 dev_type;		/* device type */
-
 
175
	__u8 pad1;
-
 
176
	__u32 pad2;
172
	__u8 dev_type;		/* device type */
177
	kernel_ulong_t driver_info;
173
	kernel_ulong_t driver_info;
Line 178... Line 174...
178
};
174
};
Line 179... Line 175...
179
 
175
 
180
#define AP_DEVICE_ID_MATCH_DEVICE_TYPE		0x01
176
#define AP_DEVICE_ID_MATCH_DEVICE_TYPE		0x01
181
 
177
 
182
/* s390 css bus devices (subchannels) */
178
/* s390 css bus devices (subchannels) */
183
struct css_device_id {
-
 
184
	__u8 match_flags;
-
 
185
	__u8 type; /* subchannel type */
179
struct css_device_id {
186
	__u16 pad2;
180
	__u8 match_flags;
Line 187... Line 181...
187
	__u32 pad3;
181
	__u8 type; /* subchannel type */
188
	kernel_ulong_t driver_data;
-
 
Line 189... Line 182...
189
};
182
	kernel_ulong_t driver_data;
190
 
183
};
191
#define ACPI_ID_LEN	16 /* only 9 bytes needed here, 16 bytes are used */
184
 
192
			   /* to workaround crosscompile issues */
185
#define ACPI_ID_LEN	9
Line 228... Line 221...
228
struct of_device_id
221
struct of_device_id
229
{
222
{
230
	char	name[32];
223
	char	name[32];
231
	char	type[32];
224
	char	type[32];
232
	char	compatible[128];
225
	char	compatible[128];
233
#ifdef __KERNEL__
-
 
234
	const void *data;
226
	const void *data;
235
#else
-
 
236
	kernel_ulong_t data;
-
 
237
#endif
-
 
238
};
227
};
Line 239... Line 228...
239
 
228
 
240
/* VIO */
229
/* VIO */
241
struct vio_device_id {
230
struct vio_device_id {
Line 257... Line 246...
257
	__u8  		function;
246
	__u8  		function;
Line 258... Line 247...
258
 
247
 
259
	/* for pseudo multi-function devices */
248
	/* for pseudo multi-function devices */
Line 260... Line 249...
260
	__u8  		device_no;
249
	__u8  		device_no;
261
 
-
 
Line 262... Line 250...
262
	__u32 		prod_id_hash[4]
250
 
263
		__attribute__((aligned(sizeof(__u32))));
-
 
264
 
251
	__u32 		prod_id_hash[4];
265
	/* not matched against in kernelspace*/
-
 
266
#ifdef __KERNEL__
-
 
267
	const char *	prod_id[4];
-
 
268
#else
-
 
Line 269... Line 252...
269
	kernel_ulong_t	prod_id[4]
252
 
270
		__attribute__((aligned(sizeof(kernel_ulong_t))));
253
	/* not matched against in kernelspace*/
271
#endif
-
 
272
 
254
	const char *	prod_id[4];
273
	/* not matched against */
-
 
274
	kernel_ulong_t	driver_info;
-
 
275
#ifdef __KERNEL__
-
 
276
	char *		cisfile;
255
 
Line 277... Line 256...
277
#else
256
	/* not matched against */
278
	kernel_ulong_t	cisfile;
257
	kernel_ulong_t	driver_info;
279
#endif
258
	char *		cisfile;
Line 370... Line 349...
370
 
349
 
371
struct sdio_device_id {
350
struct sdio_device_id {
372
	__u8	class;			/* Standard interface or SDIO_ANY_ID */
351
	__u8	class;			/* Standard interface or SDIO_ANY_ID */
373
	__u16	vendor;			/* Vendor or SDIO_ANY_ID */
352
	__u16	vendor;			/* Vendor or SDIO_ANY_ID */
374
	__u16	device;			/* Device ID or SDIO_ANY_ID */
353
	__u16	device;			/* Device ID or SDIO_ANY_ID */
375
	kernel_ulong_t driver_data	/* Data private to the driver */
-
 
376
		__attribute__((aligned(sizeof(kernel_ulong_t))));
354
	kernel_ulong_t driver_data;	/* Data private to the driver */
Line 377... Line 355...
377
};
355
};
378
 
356
 
379
/* SSB core, see drivers/ssb/ */
357
/* SSB core, see drivers/ssb/ */
380
struct ssb_device_id {
358
struct ssb_device_id {
381
	__u16	vendor;
359
	__u16	vendor;
382
	__u16	coreid;
360
	__u16	coreid;
-
 
361
	__u8	revision;
383
	__u8	revision;
362
	__u8	__pad;
384
};
363
} __attribute__((packed, aligned(2)));
385
#define SSB_DEVICE(_vendor, _coreid, _revision)  \
364
#define SSB_DEVICE(_vendor, _coreid, _revision)  \
386
	{ .vendor = _vendor, .coreid = _coreid, .revision = _revision, }
365
	{ .vendor = _vendor, .coreid = _coreid, .revision = _revision, }
Line 395... Line 374...
395
struct bcma_device_id {
374
struct bcma_device_id {
396
	__u16	manuf;
375
	__u16	manuf;
397
	__u16	id;
376
	__u16	id;
398
	__u8	rev;
377
	__u8	rev;
399
	__u8	class;
378
	__u8	class;
400
};
-
 
-
 
379
} __attribute__((packed,aligned(2)));
401
#define BCMA_CORE(_manuf, _id, _rev, _class)  \
380
#define BCMA_CORE(_manuf, _id, _rev, _class)  \
402
	{ .manuf = _manuf, .id = _id, .rev = _rev, .class = _class, }
381
	{ .manuf = _manuf, .id = _id, .rev = _rev, .class = _class, }
403
#define BCMA_CORETABLE_END  \
382
#define BCMA_CORETABLE_END  \
404
	{ 0, },
383
	{ 0, },
Line 412... Line 391...
412
	__u32 device;
391
	__u32 device;
413
	__u32 vendor;
392
	__u32 vendor;
414
};
393
};
415
#define VIRTIO_DEV_ANY_ID	0xffffffff
394
#define VIRTIO_DEV_ANY_ID	0xffffffff
Line -... Line 395...
-
 
395
 
-
 
396
/*
-
 
397
 * For Hyper-V devices we use the device guid as the id.
-
 
398
 */
-
 
399
struct hv_vmbus_device_id {
-
 
400
	__u8 guid[16];
-
 
401
	kernel_ulong_t driver_data;	/* Data private to the driver */
-
 
402
};
-
 
403
 
-
 
404
/* rpmsg */
-
 
405
 
-
 
406
#define RPMSG_NAME_SIZE			32
-
 
407
#define RPMSG_DEVICE_MODALIAS_FMT	"rpmsg:%s"
-
 
408
 
-
 
409
struct rpmsg_device_id {
-
 
410
	char name[RPMSG_NAME_SIZE];
-
 
411
};
416
 
412
 
Line 417... Line 413...
417
/* i2c */
413
/* i2c */
418
 
414
 
Line 419... Line 415...
419
#define I2C_NAME_SIZE	20
415
#define I2C_NAME_SIZE	20
420
#define I2C_MODULE_PREFIX "i2c:"
416
#define I2C_MODULE_PREFIX "i2c:"
421
 
417
 
422
struct i2c_device_id {
-
 
423
	char name[I2C_NAME_SIZE];
418
struct i2c_device_id {
Line 424... Line 419...
424
	kernel_ulong_t driver_data	/* Data private to the driver */
419
	char name[I2C_NAME_SIZE];
Line 425... Line 420...
425
			__attribute__((aligned(sizeof(kernel_ulong_t))));
420
	kernel_ulong_t driver_data;	/* Data private to the driver */
426
};
421
};
Line 427... Line 422...
427
 
422
 
428
/* spi */
423
/* spi */
429
 
424
 
430
#define SPI_NAME_SIZE	32
-
 
431
#define SPI_MODULE_PREFIX "spi:"
425
#define SPI_NAME_SIZE	32
Line 432... Line 426...
432
 
426
#define SPI_MODULE_PREFIX "spi:"
433
struct spi_device_id {
427
 
434
	char name[SPI_NAME_SIZE];
428
struct spi_device_id {
Line 459... Line 453...
459
	DMI_CHASSIS_ASSET_TAG,
453
	DMI_CHASSIS_ASSET_TAG,
460
	DMI_STRING_MAX,
454
	DMI_STRING_MAX,
461
};
455
};
Line 462... Line 456...
462
 
456
 
463
struct dmi_strmatch {
457
struct dmi_strmatch {
-
 
458
	unsigned char slot:7;
464
	unsigned char slot;
459
	unsigned char exact_match:1;
465
	char substr[79];
460
	char substr[79];
Line 466... Line -...
466
};
-
 
467
 
-
 
468
#ifndef __KERNEL__
-
 
469
struct dmi_system_id {
-
 
470
	kernel_ulong_t callback;
-
 
471
	kernel_ulong_t ident;
-
 
472
	struct dmi_strmatch matches[4];
-
 
473
	kernel_ulong_t driver_data
-
 
474
			__attribute__((aligned(sizeof(kernel_ulong_t))));
-
 
475
};
461
};
476
#else
462
 
477
struct dmi_system_id {
463
struct dmi_system_id {
478
	int (*callback)(const struct dmi_system_id *);
464
	int (*callback)(const struct dmi_system_id *);
479
	const char *ident;
465
	const char *ident;
Line 485... Line 471...
485
 * "MODULE_DEVICE_TABLE(dmi, x)". Compiler doesn't look inside it
471
 * "MODULE_DEVICE_TABLE(dmi, x)". Compiler doesn't look inside it
486
 * but this is enough for gcc 3.4.6 to error out:
472
 * but this is enough for gcc 3.4.6 to error out:
487
 *	error: storage size of '__mod_dmi_device_table' isn't known
473
 *	error: storage size of '__mod_dmi_device_table' isn't known
488
 */
474
 */
489
#define dmi_device_id dmi_system_id
475
#define dmi_device_id dmi_system_id
490
#endif
-
 
Line 491... Line 476...
491
 
476
 
-
 
477
#define DMI_MATCH(a, b)	{ .slot = a, .substr = b }
Line 492... Line 478...
492
#define DMI_MATCH(a, b)	{ a, b }
478
#define DMI_EXACT_MATCH(a, b)	{ .slot = a, .substr = b, .exact_match = 1 }
493
 
479
 
Line 494... Line 480...
494
#define PLATFORM_NAME_SIZE	20
480
#define PLATFORM_NAME_SIZE	20
495
#define PLATFORM_MODULE_PREFIX	"platform:"
481
#define PLATFORM_MODULE_PREFIX	"platform:"
496
 
482
 
497
struct platform_device_id {
-
 
498
	char name[PLATFORM_NAME_SIZE];
483
struct platform_device_id {
Line 499... Line 484...
499
	kernel_ulong_t driver_data
484
	char name[PLATFORM_NAME_SIZE];
Line 500... Line 485...
500
			__attribute__((aligned(sizeof(kernel_ulong_t))));
485
	kernel_ulong_t driver_data;
Line 540... Line 525...
540
	unsigned short card_vendor, card_device;
525
	unsigned short card_vendor, card_device;
541
	unsigned short vendor, function;
526
	unsigned short vendor, function;
542
	kernel_ulong_t driver_data;	/* data private to the driver */
527
	kernel_ulong_t driver_data;	/* data private to the driver */
543
};
528
};
Line -... Line 529...
-
 
529
 
-
 
530
/**
-
 
531
 * struct amba_id - identifies a device on an AMBA bus
-
 
532
 * @id: The significant bits if the hardware device ID
-
 
533
 * @mask: Bitmask specifying which bits of the id field are significant when
-
 
534
 *	matching.  A driver binds to a device when ((hardware device ID) & mask)
-
 
535
 *	== id.
-
 
536
 * @data: Private data used by the driver.
-
 
537
 */
-
 
538
struct amba_id {
-
 
539
	unsigned int		id;
-
 
540
	unsigned int		mask;
-
 
541
	void			*data;
-
 
542
};
-
 
543
 
-
 
544
/*
-
 
545
 * Match x86 CPUs for CPU specific drivers.
-
 
546
 * See documentation of "x86_match_cpu" for details.
-
 
547
 */
-
 
548
 
-
 
549
struct x86_cpu_id {
-
 
550
	__u16 vendor;
-
 
551
	__u16 family;
-
 
552
	__u16 model;
-
 
553
	__u16 feature;	/* bit index */
-
 
554
	kernel_ulong_t driver_data;
-
 
555
};
-
 
556
 
-
 
557
#define X86_FEATURE_MATCH(x) \
-
 
558
	{ X86_VENDOR_ANY, X86_FAMILY_ANY, X86_MODEL_ANY, x }
-
 
559
 
-
 
560
#define X86_VENDOR_ANY 0xffff
-
 
561
#define X86_FAMILY_ANY 0
-
 
562
#define X86_MODEL_ANY  0
-
 
563
#define X86_FEATURE_ANY 0	/* Same as FPU, you can't test for that */
-
 
564
 
-
 
565
#define IPACK_ANY_FORMAT 0xff
-
 
566
#define IPACK_ANY_ID (~0)
-
 
567
struct ipack_device_id {
-
 
568
	__u8  format;			/* Format version or IPACK_ANY_ID */
-
 
569
	__u32 vendor;			/* Vendor ID or IPACK_ANY_ID */
-
 
570
	__u32 device;			/* Device ID or IPACK_ANY_ID */
-
 
571
};
-
 
572
 
-
 
573
#define MEI_CL_MODULE_PREFIX "mei:"
-
 
574
#define MEI_CL_NAME_SIZE 32
-
 
575
 
-
 
576
struct mei_cl_device_id {
-
 
577
	char name[MEI_CL_NAME_SIZE];
-
 
578
	kernel_ulong_t driver_info;
-
 
579
};
-
 
580
 
-
 
581
/* RapidIO */
-
 
582
 
-
 
583
#define RIO_ANY_ID	0xffff
-
 
584
 
-
 
585
/**
-
 
586
 * struct rio_device_id - RIO device identifier
-
 
587
 * @did: RapidIO device ID
-
 
588
 * @vid: RapidIO vendor ID
-
 
589
 * @asm_did: RapidIO assembly device ID
-
 
590
 * @asm_vid: RapidIO assembly vendor ID
-
 
591
 *
-
 
592
 * Identifies a RapidIO device based on both the device/vendor IDs and
-
 
593
 * the assembly device/vendor IDs.
-
 
594
 */
-
 
595
struct rio_device_id {
-
 
596
	__u16 did, vid;
-
 
597
	__u16 asm_did, asm_vid;
-
 
598
};
544
 
599