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