VirtualBox

Changeset 6030 in vbox for trunk/include


Ignore:
Timestamp:
Dec 9, 2007 9:51:54 PM (17 years ago)
Author:
vboxsync
Message:

The iprt/time.h blocker is _iprt_time_h now.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/VBoxGuest.h

    r6020 r6030  
    114114 * additions_major == vmmdev_current && additions_minor <= vmmdev_current.
    115115 * Additions version is reported to host (VMMDev) by VMMDevReq_ReportGuestInfo.
    116  * 
     116 *
    117117 * @remark  These defines also live in the 16-bit and assembly versions of this header.
    118118 */
     
    476476    uint32_t            eventAck;
    477477} VMMDevGetStatisticsChangeRequest;
    478  
     478
    479479/** display change request structure */
    480480typedef struct
     
    895895/**
    896896 * VBoxGuest IOCTL codes and structures.
    897  * 
     897 *
    898898 * The range 0..15 is for basic driver communication.
    899899 * The range 16..31 is for HGCM communcation.
     
    901901 * The range 48..63 is for OS specific communcation.
    902902 * The 7th bit is reserved for future hacks.
    903  * The 8th bit is reserved for distinguishing between 32-bit and 64-bit 
    904  * processes in future 64-bit guest additions. 
    905  * 
    906  * While windows IOCTL function number has to start at 2048 and stop at 4096 there 
    907  * never was any need to do this for everyone. A simple ((Function) | 0x800) would 
    908  * have sufficed. On Linux we're now intruding upon the type field. Fortunately 
    909  * this hasn't caused any trouble because the FILE_DEVICE_UNKNOWN value was set 
    910  * to 0x22 (if it were 0x2C it would not have worked soo smoothly). The situation 
    911  * would've been the same for *BSD and Darwin since they seems to share common 
     903 * The 8th bit is reserved for distinguishing between 32-bit and 64-bit
     904 * processes in future 64-bit guest additions.
     905 *
     906 * While windows IOCTL function number has to start at 2048 and stop at 4096 there
     907 * never was any need to do this for everyone. A simple ((Function) | 0x800) would
     908 * have sufficed. On Linux we're now intruding upon the type field. Fortunately
     909 * this hasn't caused any trouble because the FILE_DEVICE_UNKNOWN value was set
     910 * to 0x22 (if it were 0x2C it would not have worked soo smoothly). The situation
     911 * would've been the same for *BSD and Darwin since they seems to share common
    912912 * _IOC() heritage.
    913  * 
    914  * However, on good old OS/2 we only have 8-bit handy for the function number. The 
     913 *
     914 * However, on good old OS/2 we only have 8-bit handy for the function number. The
    915915 * result from using the old IOCTL function numbers her would've been overlapping
    916  * between the two ranges. 
    917  * 
    918  * To fix this problem and get rid of all the unnecessary windowsy crap that I 
    919  * bet was copied from my SUPDRVIOC.h once upon a time (although the concept of 
    920  * prefixing macros with the purpose of avoid clashes with system stuff and 
    921  * to indicate exactly how owns them seems to have been lost somewhere along 
     916 * between the two ranges.
     917 *
     918 * To fix this problem and get rid of all the unnecessary windowsy crap that I
     919 * bet was copied from my SUPDRVIOC.h once upon a time (although the concept of
     920 * prefixing macros with the purpose of avoid clashes with system stuff and
     921 * to indicate exactly how owns them seems to have been lost somewhere along
    922922 * the way), I've introduced a VBOXGUEST_IOCTL_CODE for defining generic IN/OUT
    923923 * IOCtls on new ports of the additions.
     
    925925 * @remarks When creating new IOCtl interfaces keep in mind that not all OSes supports
    926926 *          reporting back the output size. (This got messed up a little bit in VBoxDrv.)
    927  * 
     927 *
    928928 *          The request size is also a little bit tricky as it's passed as part of the
    929929 *          request code on unix. The size field is 14 bits on Linux, 12 bits on *BSD,
    930  *          13 bits Darwin, and 8-bits on Solaris. All the BSDs and Darwin kernels 
     930 *          13 bits Darwin, and 8-bits on Solaris. All the BSDs and Darwin kernels
    931931 *          will make use of the size field, while Linux and Solaris will not. We're of
    932  *          course using the size to validate and/or map/lock the request, so it has 
     932 *          course using the size to validate and/or map/lock the request, so it has
    933933 *          to be valid.
    934  * 
    935  *          For Solaris we will have to do something special though, 255 isn't 
    936  *          sufficent for all we need. A 4KB restriction (BSD) is probably not 
     934 *
     935 *          For Solaris we will have to do something special though, 255 isn't
     936 *          sufficent for all we need. A 4KB restriction (BSD) is probably not
    937937 *          too problematic (yet) as a general one.
    938  * 
     938 *
    939939 *          More info can be found in SUPDRVIOC.h and related sources.
    940940 *
     
    990990#else
    991991# define IOCTL_VBOXGUEST_GETVMMDEVPORT IOCTL_CODE(FILE_DEVICE_UNKNOWN, 2048, METHOD_BUFFERED, FILE_WRITE_ACCESS, sizeof(VBoxGuestPortInfo))
    992 #endif 
     992#endif
    993993
    994994#pragma pack(4)
     
    10121012                                        IOCTL_CODE(FILE_DEVICE_UNKNOWN, 2051, METHOD_BUFFERED, \
    10131013                                        FILE_WRITE_ACCESS, 0)
    1014 #endif 
     1014#endif
    10151015
    10161016/**
     
    10491049#else
    10501050# define IOCTL_VBOXGUEST_VMMREQUEST IOCTL_CODE(FILE_DEVICE_UNKNOWN, 2050, METHOD_BUFFERED, FILE_WRITE_ACCESS, sizeof(VMMDevRequestHeader))
    1051 #endif 
     1051#endif
    10521052
    10531053/** Input and output buffer layout of the IOCTL_VBOXGUEST_CTL_FILTER_MASK. */
     
    10651065#else
    10661066# define IOCTL_VBOXGUEST_CTL_FILTER_MASK IOCTL_CODE(FILE_DEVICE_UNKNOWN, 2051, METHOD_BUFFERED, FILE_WRITE_ACCESS, sizeof (VBoxGuestFilterMaskInfo))
    1067 #endif 
     1067#endif
    10681068
    10691069/** IOCTL to VBoxGuest to check memory ballooning */
     
    10731073#else
    10741074# define IOCTL_VBOXGUEST_CTL_CHECK_BALLOON          IOCTL_CODE(FILE_DEVICE_UNKNOWN, 2052, METHOD_BUFFERED, FILE_WRITE_ACCESS, 0)
    1075 #endif 
     1075#endif
    10761076
    10771077#ifdef VBOX_HGCM
     
    11171117# define IOCTL_VBOXGUEST_HGCM_CALL         IOCTL_CODE(FILE_DEVICE_UNKNOWN, 3074, METHOD_BUFFERED, FILE_WRITE_ACCESS, sizeof(VBoxGuestHGCMCallInfo))
    11181118# define IOCTL_VBOXGUEST_CLIPBOARD_CONNECT IOCTL_CODE(FILE_DEVICE_UNKNOWN, 3075, METHOD_BUFFERED, FILE_WRITE_ACCESS, sizeof(uint32_t))
    1119 #endif 
     1119#endif
    11201120
    11211121#define VBOXGUEST_HGCM_CALL_PARMS(a) ((HGCMFunctionParameter *)((uint8_t *)(a) + sizeof (VBoxGuestHGCMCallInfo)))
     
    12621262#ifdef RT_OS_OS2
    12631263
    1264 /** 
     1264/**
    12651265 * The data buffer layout for the IDC entry point (AttachDD).
    1266  * 
    1267  * @remark  This is defined in multiple 16-bit headers / sources. 
     1266 *
     1267 * @remark  This is defined in multiple 16-bit headers / sources.
    12681268 *          Some places it's called VBGOS2IDC to short things a bit.
    12691269 */
     
    12771277    /**
    12781278     * The 32-bit service entry point.
    1279      * 
    1280      * @returns VBox status code.   
     1279     *
     1280     * @returns VBox status code.
    12811281     * @param   u32Session          The above session handle.
    12821282     * @param   iFunction           The requested function.
     
    12911291    DECLCALLBACKMEMBER(int, pfnServiceEP)(uint32_t u32Session, unsigned iFunction, void *pvData, size_t cbData, size_t *pcbDataReturned);
    12921292
    1293     /** The 16-bit service entry point for C code (cdecl). 
    1294      * 
    1295      * It's the same as the 32-bit entry point, but the types has 
     1293    /** The 16-bit service entry point for C code (cdecl).
     1294     *
     1295     * It's the same as the 32-bit entry point, but the types has
    12961296     * changed to 16-bit equivalents.
    1297      * 
     1297     *
    12981298     * @code
    1299      * int far cdecl 
    1300      * VBoxGuestOs2IDCService16(uint32_t u32Session, uint16_t iFunction, 
     1299     * int far cdecl
     1300     * VBoxGuestOs2IDCService16(uint32_t u32Session, uint16_t iFunction,
    13011301     *                          void far *fpvData, uint16_t cbData, uint16_t far *pcbDataReturned);
    13021302     * @endcode
     
    13041304    RTFAR16 fpfnServiceEP;
    13051305
    1306     /** The 16-bit service entry point for Assembly code (register). 
    1307      * 
     1306    /** The 16-bit service entry point for Assembly code (register).
     1307     *
    13081308     * This is just a wrapper around fpfnServiceEP to simplify calls
    13091309     * from 16-bit assembly code.
    13101310     *
    13111311     * @returns (e)ax: VBox status code; cx: The amount of data returned.
    1312      *           
     1312     *
    13131313     * @param   u32Session          eax   - The above session handle.
    13141314     * @param   iFunction           dl    - The requested function.
     
    13221322
    13231323/** OS/2 specific: IDC client disconnect request.
    1324  * 
    1325  * This takes no input and it doesn't return anything. Obviously this 
    1326  * is only recognized if it arrives thru the IDC service EP. 
     1324 *
     1325 * This takes no input and it doesn't return anything. Obviously this
     1326 * is only recognized if it arrives thru the IDC service EP.
    13271327 */
    13281328#define VBOXGUEST_IOCTL_OS2_IDC_DISCONNECT  VBOXGUEST_IOCTL_CODE(48, sizeof(uint32_t))
     
    13501350VBGLR3DECL(int)     VbglR3GRPerform(VMMDevRequestHeader *pReq);
    13511351VBGLR3DECL(void)    VbglR3GRFree(VMMDevRequestHeader *pReq);
    1352 # ifdef __iprt_time_h__
     1352# ifdef ___iprt_time_h
    13531353VBGLR3DECL(int)     VbglR3GetHostTime(PRTTIMESPEC pTime);
    1354 # endif 
     1354# endif
    13551355VBGLR3DECL(int)     VbglR3InterruptEventWaits(void);
    13561356
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette