Changeset 5819 in vbox
- Timestamp:
- Nov 22, 2007 6:08:26 PM (17 years ago)
- svn:sync-xref-src-repo-rev:
- 26248
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/VBoxGuest.h
r5605 r5819 1064 1064 /** VRDP status changed. */ 1065 1065 #define VMMDEV_EVENT_VRDP RT_BIT(8) 1066 1067 1066 1068 1067 /** @} */ … … 1114 1113 * needs to be created so the most efficient IOCtl data buffering method can be 1115 1114 * used. 1115 * 1116 * @remark On Linux (at least), things are not as grim as portrayed above. The IOCtl 1117 * numbering system is pure convention designed in order to simplify error checking. 1118 * The numbers only have meaning to the driver which implements the IOCtl, and are 1119 * completely ignored by the system. In fact, the oldest IOCtls still in use today 1120 * predate the current numbering system, and several of the ones implemented since 1121 * then implement it wrongly. See 'man ioctl_list' for more information. 1122 * -Michael 1116 1123 * 1117 1124 * @{ … … 1136 1143 1137 1144 #elif defined(RT_OS_LINUX) 1138 # define IOCTL_CODE(DeviceType, Function, Method_ignored, Access_ignored, DataSize) \ 1139 ( (3 << 30) | ((DeviceType) << 8) | (Function) | ((DataSize) << 16) ) 1140 # define METHOD_BUFFERED 0 1141 # define FILE_WRITE_ACCESS 0x0002 1142 # define FILE_DEVICE_UNKNOWN 0x00000022 1145 /* Note that we can't use the Linux header IOCtl macros directly, as they expect a "type" 1146 argument, whereas we provide "sizeof(type)". */ 1147 /* VBOXGUEST_IOCTL_CODE(Function, sizeof(type)) == _IOWR('V', (Function) | VBOXGUEST_IOCTL_FLAG, (type)) */ 1148 # define VBOXGUEST_IOCTL_CODE(Function, Size) ( (3 << 30) | ('V' << 8) | (Function) | VBOXGUEST_IOCTL_FLAG | (Size << 16) ) 1149 /* VBOXGUEST_IOCTL_CODE_FAST(Function) == _IO( 'V', (Function) | VBOXGUEST_IOCTL_FLAG) */ 1150 # define VBOXGUEST_IOCTL_CODE_FAST(Function) ( 'V' << 8 | (Function) | VBOXGUEST_IOCTL_FLAG) 1143 1151 1144 1152 #elif 0 /* BSD style - needs some adjusting _IORW takes a type and not a size. */ … … 1170 1178 # define VBOXGUEST_IOCTL_WAITEVENT VBOXGUEST_IOCTL_CODE(2, sizeof(VBoxGuestWaitEventInfo)) 1171 1179 # define IOCTL_VBOXGUEST_WAITEVENT VBOXGUEST_IOCTL_WAITEVENT 1180 # define VBOXGUEST_IOCTL_WAITEVENT_INTERRUPT_ALL \ 1181 VBOXGUEST_IOCTL_CODE(5, 0) 1182 # define IOCTL_VBOXGUEST_WAITEVENT_INTERRUPT_ALL \ 1183 VBOXGUEST_IOCTL_WAITEVENT_INTERRUPT_ALL 1172 1184 #else 1173 1185 # define IOCTL_VBOXGUEST_WAITEVENT IOCTL_CODE(FILE_DEVICE_UNKNOWN, 2049, METHOD_BUFFERED, FILE_WRITE_ACCESS, sizeof(VBoxGuestWaitEventInfo)) 1186 # define IOCTL_VBOXGUEST_WAITEVENT_INTERRUPT_ALL \ 1187 IOCTL_CODE(FILE_DEVICE_UNKNOWN, 2051, METHOD_BUFFERED, \ 1188 FILE_WRITE_ACCESS, 0) 1174 1189 #endif 1175 1190 … … 1506 1521 VBGLR3DECL(int) VbglR3Init(void); 1507 1522 VBGLR3DECL(void) VbglR3Term(void); 1523 VBGLR3DECL(int) VbglR3GRAlloc(VMMDevRequestHeader **ppReq, uint32_t cbSize, 1524 VMMDevRequestType reqType); 1508 1525 VBGLR3DECL(int) VbglR3GRPerform(VMMDevRequestHeader *pReq); 1526 VBGLR3DECL(void) VbglR3GRFree(VMMDevRequestHeader *pReq); 1509 1527 # ifdef __iprt_time_h__ 1510 1528 VBGLR3DECL(int) VbglR3GetHostTime(PRTTIMESPEC pTime);
Note:
See TracChangeset
for help on using the changeset viewer.