VirtualBox

Changeset 3241 in vbox


Ignore:
Timestamp:
Jun 23, 2007 12:43:44 AM (17 years ago)
Author:
vboxsync
Message:

OS/2 basic IDC interface.

File:
1 edited

Legend:

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

    r3200 r3241  
    11931193}
    11941194
     1195
     1196#ifdef __OS2__
     1197
     1198/** OS/2 specific: IDC client connection request.
     1199 *
     1200 * This takes no input (parameter).
     1201 *
     1202 * It returns a VBOXGUESTOS2IDCCONNECT structure in the data buffer
     1203 * provided in the generic ioctl request.
     1204 *
     1205 * @remark  Duplicated in the 16-bit and assembly headers.
     1206 */
     1207#define VBOXGUEST_IOCTL_OS2_IDC_CONNECT  VBOXGUEST_IOCTL_CODE(48, sizeof(VBOXGUESTOS2IDCCONNECT))
     1208
     1209/**
     1210 * VBOXGUEST_IOCTL_OS2_IDC_CONNECT output.
     1211 */
     1212typedef struct VBOXGUESTOS2IDCCONNECT
     1213{
     1214    /** VMMDEV_VERSION. */
     1215    uint32_t u32Version;
     1216    /** Opaque session handle. */
     1217    uint32_t u32Session;
     1218
     1219    /**
     1220     * The 32-bit service entry point.
     1221     *
     1222     * @returns VBox status code.   
     1223     * @param   u32Session          The above session handle.
     1224     * @param   iFunction           The requested function.
     1225     * @param   pvData              The input/output data buffer. The caller ensures that this
     1226     *                              cannot be swapped out, or that it's acceptable to take a
     1227     *                              page in fault in the current context. If the request doesn't
     1228     *                              take input or produces output, apssing NULL is okay.
     1229     * @param   cbData              The size of the data buffer.
     1230     * @param   pcbDataReturned     Where to store the amount of data that's returned.
     1231     *                              This can be NULL if pvData is NULL.
     1232     */
     1233    DECLCALLBACKMEMBER(int, pfnServiceEP)(uint32_t u32Session, unsigned iFunction, void *pvData, size_t cbData, size_t *pcbDataReturned);
     1234
     1235    /** The 16-bit service entry point for C code (cdecl).
     1236     *
     1237     * It's the same as the 32-bit entry point, but the types has
     1238     * changed to 16-bit equivalents.
     1239     *
     1240     * @code
     1241     * int far cdecl
     1242     * VBoxGuestOs2IDCService16(uint32_t u32Session, uint16_t iFunction,
     1243     *                          void far *fpvData, uint16_t cbData, uint16_t far *pcbDataReturned);
     1244     * @endcode
     1245     */
     1246    RTFAR16 fpfnServiceEP;
     1247
     1248    /** The 16-bit service entry point for Assembly code (register).
     1249     *
     1250     * This is just a wrapper around fpfnServiceEP to simplify calls
     1251     * from 16-bit assembly code.
     1252     *
     1253     * @returns (e)ax: VBox status code; cx: The amount of data returned.
     1254     *           
     1255     * @param   u32Session          eax   - The above session handle.
     1256     * @param   iFunction           dl    - The requested function.
     1257     * @param   pvData              es:bx - The input/output data buffer.
     1258     * @param   cbData              cx    - The size of the data buffer.
     1259     */
     1260    RTFAR16 fpfnServiceAsmEP;
     1261} VBOXGUESTOS2IDCCONNECT;
     1262/** Pointer to VBOXGUESTOS2IDCCONNECT buffer. */
     1263typedef VBOXGUESTOS2IDCCONNECT *PVBOXGUESTOS2IDCCONNECT;
     1264
     1265/** OS/2 specific: IDC client disconnect request.
     1266 *
     1267 * This takes no input and it doesn't return anything. Obviously this
     1268 * is only recognized if it arrives thru the IDC service EP.
     1269 */
     1270#define VBOXGUEST_IOCTL_OS2_IDC_DISCONNECT  VBOXGUEST_IOCTL_CODE(49, sizeof(uint32_t))
     1271
     1272#endif /* __OS2__ */
     1273
    11951274/** @} */
    11961275
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