xref: /illumos-gate/usr/src/uts/intel/sys/ppt_dev.h (revision 7c8c0b8227679b4684566e408ccc96d6ef7175e9)
1*7c8c0b82SPatrick Mooney /*
2*7c8c0b82SPatrick Mooney  * This file and its contents are supplied under the terms of the
3*7c8c0b82SPatrick Mooney  * Common Development and Distribution License ("CDDL"), version 1.0.
4*7c8c0b82SPatrick Mooney  * You may only use this file in accordance with the terms of version
5*7c8c0b82SPatrick Mooney  * 1.0 of the CDDL.
6*7c8c0b82SPatrick Mooney  *
7*7c8c0b82SPatrick Mooney  * A full copy of the text of the CDDL should have accompanied this
8*7c8c0b82SPatrick Mooney  * source.  A copy of the CDDL is also available via the Internet at
9*7c8c0b82SPatrick Mooney  * http://www.illumos.org/license/CDDL.
10*7c8c0b82SPatrick Mooney  */
11*7c8c0b82SPatrick Mooney /* This file is dual-licensed; see usr/src/contrib/bhyve/LICENSE */
12*7c8c0b82SPatrick Mooney 
13*7c8c0b82SPatrick Mooney /*
14*7c8c0b82SPatrick Mooney  * Copyright 2018 Joyent, Inc
15*7c8c0b82SPatrick Mooney  */
16*7c8c0b82SPatrick Mooney 
17*7c8c0b82SPatrick Mooney #ifndef _PPT_DEV_H
18*7c8c0b82SPatrick Mooney #define	_PPT_DEV_H
19*7c8c0b82SPatrick Mooney 
20*7c8c0b82SPatrick Mooney #ifdef __cplusplus
21*7c8c0b82SPatrick Mooney extern "C" {
22*7c8c0b82SPatrick Mooney #endif
23*7c8c0b82SPatrick Mooney 
24*7c8c0b82SPatrick Mooney #define	PPT_IOC			(('P' << 16)|('T' << 8))
25*7c8c0b82SPatrick Mooney 
26*7c8c0b82SPatrick Mooney #define	PPT_CFG_READ		(PPT_IOC | 0x01)
27*7c8c0b82SPatrick Mooney #define	PPT_CFG_WRITE		(PPT_IOC | 0x02)
28*7c8c0b82SPatrick Mooney #define	PPT_BAR_QUERY		(PPT_IOC | 0x03)
29*7c8c0b82SPatrick Mooney #define	PPT_BAR_READ		(PPT_IOC | 0x04)
30*7c8c0b82SPatrick Mooney #define	PPT_BAR_WRITE		(PPT_IOC | 0x05)
31*7c8c0b82SPatrick Mooney 
32*7c8c0b82SPatrick Mooney #define	PPT_MAXNAMELEN	32
33*7c8c0b82SPatrick Mooney 
34*7c8c0b82SPatrick Mooney struct ppt_cfg_io {
35*7c8c0b82SPatrick Mooney 	uint64_t pci_off;
36*7c8c0b82SPatrick Mooney 	uint32_t pci_width;
37*7c8c0b82SPatrick Mooney 	uint32_t pci_data;
38*7c8c0b82SPatrick Mooney };
39*7c8c0b82SPatrick Mooney struct ppt_bar_io {
40*7c8c0b82SPatrick Mooney 	uint32_t pbi_bar;
41*7c8c0b82SPatrick Mooney 	uint32_t pbi_off;
42*7c8c0b82SPatrick Mooney 	uint32_t pbi_width;
43*7c8c0b82SPatrick Mooney 	uint32_t pbi_data;
44*7c8c0b82SPatrick Mooney };
45*7c8c0b82SPatrick Mooney 
46*7c8c0b82SPatrick Mooney struct ppt_bar_query {
47*7c8c0b82SPatrick Mooney 	uint32_t pbq_baridx;
48*7c8c0b82SPatrick Mooney 	uint32_t pbq_type;
49*7c8c0b82SPatrick Mooney 	uint64_t pbq_base;
50*7c8c0b82SPatrick Mooney 	uint64_t pbq_size;
51*7c8c0b82SPatrick Mooney };
52*7c8c0b82SPatrick Mooney 
53*7c8c0b82SPatrick Mooney #ifdef __cplusplus
54*7c8c0b82SPatrick Mooney }
55*7c8c0b82SPatrick Mooney #endif
56*7c8c0b82SPatrick Mooney 
57*7c8c0b82SPatrick Mooney #endif /* _PPT_DEV_H */
58