Changeset 10259 in vbox for trunk/include
- Timestamp:
- Jul 4, 2008 11:31:43 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/sup.h
r9736 r10259 665 665 SUPR0DECL(int) SUPR0Printf(const char *pszFormat, ...); 666 666 667 667 668 /** 668 669 * Support driver component factory. … … 696 697 /** Pointer to a support driver factory. */ 697 698 typedef SUPDRVFACTORY *PSUPDRVFACTORY; 699 /** Pointer to a const support driver factory. */ 700 typedef SUPDRVFACTORY const *PCSUPDRVFACTORY; 698 701 699 702 /** … … 743 746 * This follows the usual high word / low word rules, i.e. high word is the 744 747 * major number and it signifies incompatible interface changes. */ 745 #define SUPDRV_IDC_VERSION 0x00010000 746 747 /** 748 * The SUPDRV IDC entry point. 749 * 750 * (IDC = Inter-Driver Communication) 751 * 752 * @returns VBox status code. 753 * 754 * @param pSession The session. (This is NULL for SUPDRV_IDC_REQ_CONNECT.) 755 * @param iReq The request number. 756 * @param pvReq Pointer to the request packet. Optional for some requests. 757 * @param cbReq The size of the request packet. 758 */ 759 typedef DECLCALLBACK(int) FNSUPDRVIDCENTRY(PSUPDRVSESSION pSession, uint32_t iReq, void *pvReq, uint32_t cbReq); 760 /** Pointer to the SUPDRV IDC entry point. */ 761 typedef FNSUPDRVIDCENTRY *PFNSUPDRVIDCENTRY; 762 763 764 /** 765 * SUPDRV IDC: Connect request. 766 * This request takes a SUPDRVIDCREQCONNECT packet. 767 */ 768 #define SUPDRV_IDC_REQ_CONNECT UINT32_C(0xc0ffee01) 769 /** A SUPDRV IDC connect request packet. */ 770 typedef union SUPDRVIDCREQCONNECT 771 { 772 /** The input. */ 773 struct SUPDRVIDCREQCONNECTIN 774 { 775 /** The magic cookie (SUPDRVIDCREQ_CONNECT_MAGIC). */ 776 uint32_t u32MagicCookie; 777 /** The desired version of the IDC interface. */ 778 uint32_t iReqVersion; 779 /** The minimum version of the IDC interface. */ 780 uint32_t iMinVersion; 781 } In; 782 783 /** The output. */ 784 struct SUPDRVIDCREQCONNECTOUT 785 { 786 /** The support driver session. (An opaque.) */ 787 PSUPDRVSESSION pSession; 788 /** The version of the IDC interface for this session. */ 789 uint32_t iVersion; 790 } Out; 791 } SUPDRVIDCREQCONNECT; 792 /** Pointer to a SUPDRV IDC connect request. */ 793 typedef SUPDRVIDCREQCONNECT *PSUPDRVIDCREQCONNECT; 794 /** Magic cookie value (SUPDRVIDCREQCONNECT::In.u32MagicCookie). ('tori') */ 795 #define SUPDRVIDCREQ_CONNECT_MAGIC_COOKIE UINT32_C(0x69726f74) 796 797 798 /** 799 * SUPDRV IDC: Disconnect request. 800 * This request does not take request packet. 801 */ 802 #define SUPDRV_IDC_REQ_DISCONNECT UINT32_C(0xc0ffee02) 803 804 805 /** 806 * SUPDRV IDC: Disconnect request. 807 * This request takes a SUPDRVFACTORY packet. 808 */ 809 #define SUPDRV_IDC_REQ_COMPONENT_REGISTER_FACTORY UINT32_C(0xc0ffee03) 810 811 812 /** 813 * SUPDRV IDC: Dergister a component factory. 814 * This request takes a SUPDRVFACTORY packet. 815 */ 816 #define SUPDRV_IDC_REQ_COMPONENT_DEREGISTER_FACTORY UINT32_C(0xc0ffee04) 748 #define SUPDRV_IDC_VERSION UINT32_C(0x00010000) 749 750 /** 751 * Inter-Driver Communcation Handle. 752 */ 753 typedef union SUPDRVIDCHANDLE 754 { 755 /** Padding for opaque usage. 756 * Must be greater or equal in size than the private struct. */ 757 void *apvPadding[4]; 758 #ifdef SUPDRVIDCHANDLEPRIVATE_DECLARED 759 /** The private view. */ 760 struct SUPDRVIDCHANDLEPRIVATE s; 761 #endif 762 } SUPDRVIDCHANDLE; 763 /** Pointer to a handle. */ 764 typedef SUPDRVIDCHANDLE *PSUPDRVIDCHANDLE; 765 766 SUPR0DECL(int) SUPR0IdcOpen(PSUPDRVIDCHANDLE pHandle, uint32_t uReqVersion, uint32_t uMinVersion, uint32_t *puVersion); 767 SUPR0DECL(int) SUPR0IdcCall(PSUPDRVIDCHANDLE pHandle, uint32_t iReq, void *pvReq, uint32_t cbReq); 768 SUPR0DECL(int) SUPR0IdcClose(PSUPDRVIDCHANDLE pHandle); 769 SUPR0DECL(PSUPDRVSESSION) SUPR0IdcGetSession(PSUPDRVIDCHANDLE pHandle); 770 SUPR0DECL(int) SUPR0IdcComponentRegisterFactory(PSUPDRVIDCHANDLE pHandle, PCSUPDRVFACTORY pFactory); 771 SUPR0DECL(int) SUPR0IdcComponentDeregisterFactory(PSUPDRVIDCHANDLE pHandle, PCSUPDRVFACTORY pFactory); 817 772 818 773 /** @} */
Note:
See TracChangeset
for help on using the changeset viewer.