Changeset 19866 in vbox for trunk/include/VBox
- Timestamp:
- May 20, 2009 1:35:36 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/sup.h
r19454 r19866 308 308 309 309 310 /** Event semaphore handle. Ring-0 / ring-3. */ 311 typedef R0PTRTYPE(struct SUPSEMEVENTHANDLE *) SUPSEMEVENT; 312 /** Pointer to an event semaphore handle. */ 313 typedef SUPSEMEVENT *PSUPSEMEVENT; 314 /** Nil event semaphore handle. */ 315 #define NIL_SUPSEMEVENT ((SUPSEMEVENT)0) 316 317 /** 318 * Creates a single release event semaphore. 319 * 320 * @returns VBox status code. 321 * @param pSession The session handle of the caller. 322 * @param phEvent Where to return the handle to the event semaphore. 323 */ 324 SUPDECL(int) SUPSemEventCreate(PSUPDRVSESSION pSession, PSUPSEMEVENT phEvent); 325 326 /** 327 * Closes a single release event semaphore handle. 328 * 329 * @returns VBox status code. 330 * @param pSession The session handle of the caller. 331 * @param hEvent The handle. Nil is quietly ignored. 332 */ 333 SUPDECL(int) SUPSemEventClose(PSUPDRVSESSION pSession, SUPSEMEVENT hEvent); 334 335 /** 336 * Signals a single release event semaphore. 337 * 338 * @returns VBox status code. 339 * @param pSession The session handle of the caller. 340 * @param hEvent The semaphore handle. 341 */ 342 SUPDECL(int) SUPSemEventSignal(PSUPDRVSESSION pSession, SUPSEMEVENT hEvent); 343 344 #ifdef IN_RING0 345 /** 346 * Waits on a single release event semaphore, not interruptible. 347 * 348 * @returns VBox status code. 349 * @param pSession The session handle of the caller. 350 * @param hEvent The semaphore handle. 351 * @param cMillies The number of milliseconds to wait. 352 * @remarks Not available in ring-3. 353 */ 354 SUPDECL(int) SUPSemEventWait(PSUPDRVSESSION pSession, SUPSEMEVENT hEvent, uint32_t cMillies); 355 #endif 356 357 /** 358 * Waits on a single release event semaphore, interruptible. 359 * 360 * @returns VBox status code. 361 * @param pSession The session handle of the caller. 362 * @param hEvent The semaphore handle. 363 * @param cMillies The number of milliseconds to wait. 364 */ 365 SUPDECL(int) SUPSemEventWaitNoResume(PSUPDRVSESSION pSession, SUPSEMEVENT hEvent, uint32_t cMillies); 366 367 368 /** Multiple release event semaphore handle. Ring-0 / ring-3. */ 369 typedef R0PTRTYPE(struct SUPSEMEVENTMULTIHANDLE *) SUPSEMEVENTMULTI; 370 /** Pointer to an multiple release event semaphore handle. */ 371 typedef SUPSEMEVENTMULTI *PSUPSEMEVENTMULTI; 372 /** Nil multiple release event semaphore handle. */ 373 #define NIL_SUPSEMEVENTMULTI ((SUPSEMEVENTMULTI)0) 374 375 /** 376 * Creates a multiple release event semaphore. 377 * 378 * @returns VBox status code. 379 * @param pSession The session handle of the caller. 380 * @param phEventMulti Where to return the handle to the event semaphore. 381 */ 382 SUPDECL(int) SUPSemEventMultiCreate(PSUPDRVSESSION pSession, PSUPSEMEVENTMULTI phEventMulti); 383 384 /** 385 * Closes a multiple release event semaphore handle. 386 * 387 * @returns VBox status code. 388 * @param pSession The session handle of the caller. 389 * @param hEventMulti The handle. Nil is quietly ignored. 390 */ 391 SUPDECL(int) SUPSemEventMultiClose(PSUPDRVSESSION pSession, SUPSEMEVENTMULTI hEventMulti); 392 393 /** 394 * Signals a multiple release event semaphore. 395 * 396 * @returns VBox status code. 397 * @param pSession The session handle of the caller. 398 * @param hEventMulti The semaphore handle. 399 */ 400 SUPDECL(int) SUPSemEventMultiSignal(PSUPDRVSESSION pSession, SUPSEMEVENTMULTI hEventMulti); 401 402 /** 403 * Resets a multiple release event semaphore. 404 * 405 * @returns VBox status code. 406 * @param pSession The session handle of the caller. 407 * @param hEventMulti The semaphore handle. 408 */ 409 SUPDECL(int) SUPSemEventMultiReset(PSUPDRVSESSION pSession, SUPSEMEVENTMULTI hEventMulti); 410 411 #ifdef IN_RING0 412 /** 413 * Waits on a multiple release event semaphore, not interruptible. 414 * 415 * @returns VBox status code. 416 * @param pSession The session handle of the caller. 417 * @param hEventMulti The semaphore handle. 418 * @param cMillies The number of milliseconds to wait. 419 * @remarks Not available in ring-3. 420 */ 421 SUPDECL(int) SUPSemEventMultiWait(PSUPDRVSESSION pSession, SUPSEMEVENTMULTI hEventMulti, uint32_t cMillies); 422 #endif 423 424 /** 425 * Waits on a multiple release event semaphore, interruptible. 426 * 427 * @returns VBox status code. 428 * @param pSession The session handle of the caller. 429 * @param hEventMulti The semaphore handle. 430 * @param cMillies The number of milliseconds to wait. 431 */ 432 SUPDECL(int) SUPSemEventMultiWaitNoResume(PSUPDRVSESSION pSession, SUPSEMEVENTMULTI hEventMulti, uint32_t cMillies); 433 310 434 311 435 #ifdef IN_RING3 … … 858 982 /** Internal network interface. */ 859 983 SUPDRVOBJTYPE_INTERNAL_NETWORK_INTERFACE, 984 /** Single release event semaphore. */ 985 SUPDRVOBJTYPE_SEM_EVENT, 986 /** Multiple release event semaphore. */ 987 SUPDRVOBJTYPE_SEM_EVENT_MULTI, 860 988 /** The first invalid object type in this end. */ 861 989 SUPDRVOBJTYPE_END,
Note:
See TracChangeset
for help on using the changeset viewer.