Changeset 90488 in vbox
- Timestamp:
- Aug 3, 2021 9:17:59 AM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 146092
- Location:
- trunk
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/mangling.h
r90416 r90488 1946 1946 # define RTSemEventDestroy RT_MANGLER(RTSemEventDestroy) 1947 1947 # define RTSemEventGetResolution RT_MANGLER(RTSemEventGetResolution) /* r0drv */ 1948 # define RTSemEventIsSignalSafe RT_MANGLER(RTSemEventIsSignalSafe) /* r0drv */ 1948 1949 # define RTSemEventMultiAddSignaller RT_MANGLER(RTSemEventMultiAddSignaller) 1949 1950 # define RTSemEventMultiCreate RT_MANGLER(RTSemEventMultiCreate) … … 1951 1952 # define RTSemEventMultiDestroy RT_MANGLER(RTSemEventMultiDestroy) 1952 1953 # define RTSemEventMultiGetResolution RT_MANGLER(RTSemEventMultiGetResolution) /* r0drv */ 1954 # define RTSemEventMultiIsSignalSafe RT_MANGLER(RTSemEventMultiIsSignalSafe) /* r0drv */ 1953 1955 # define RTSemEventMultiRemoveSignaller RT_MANGLER(RTSemEventMultiRemoveSignaller) 1954 1956 # define RTSemEventMultiReset RT_MANGLER(RTSemEventMultiReset) -
trunk/include/iprt/semaphore.h
r82968 r90488 175 175 176 176 /** 177 * Whether RTSemEventSignal can be safely called w/o risk of preemption. 178 * 179 * Checks whether the caller can safely signal a single release semaphore 180 * without any risk of getting preempted on locks or similar while doing so. 181 * This also checks whether the context is suitable in general. 182 * 183 * @returns true if safe, false if not. 184 * @remarks Only ring-0. 185 */ 186 RTR0DECL(bool) RTSemEventIsSignalSafe(void); 187 188 /** 177 189 * Wait for the event semaphore to be signaled, resume on interruption. 178 190 * … … 338 350 */ 339 351 RTDECL(int) RTSemEventMultiSignal(RTSEMEVENTMULTI hEventMultiSem); 352 353 /** 354 * Whether RTSemEventMultiSignal can be safely called w/o risk of preemption. 355 * 356 * Checks whether the caller can safely signal a multiple release semaphore 357 * without any risk of getting preempted on locks or similar while doing so. 358 * This also checks whether the context is suitable in general. 359 * 360 * @returns true if safe, false if not. 361 * @remarks Only ring-0. 362 */ 363 RTR0DECL(bool) RTSemEventMultiIsSignalSafe(void); 340 364 341 365 /** -
trunk/src/VBox/Runtime/r0drv/darwin/semevent-r0drv-darwin.cpp
r82968 r90488 426 426 } 427 427 428 429 RTR0DECL(bool) RTSemEventIsSignalSafe(void) 430 { 431 /** @todo check the code... */ 432 return false; 433 } 434 RT_EXPORT_SYMBOL(RTSemEventIsSignalSafe); 435 -
trunk/src/VBox/Runtime/r0drv/darwin/semeventmulti-r0drv-darwin.cpp
r83098 r90488 449 449 } 450 450 451 452 RTR0DECL(bool) RTSemEventMultiIsSignalSafe(void) 453 { 454 /** @todo check the code... */ 455 return false; 456 } 457 -
trunk/src/VBox/Runtime/r0drv/freebsd/semevent-r0drv-freebsd.c
r82968 r90488 279 279 } 280 280 281 282 RTR0DECL(bool) RTSemEventIsSignalSafe(void) 283 { 284 /** @todo check the code... */ 285 return false; 286 } 287 -
trunk/src/VBox/Runtime/r0drv/freebsd/semeventmulti-r0drv-freebsd.c
r82968 r90488 343 343 RT_EXPORT_SYMBOL(RTSemEventMultiGetResolution); 344 344 345 346 RTR0DECL(bool) RTSemEventMultiIsSignalSafe(void) 347 { 348 /** @todo check the code... */ 349 return false; 350 } 351 RT_EXPORT_SYMBOL(RTSemEventMultiIsSignalSafe); 352 -
trunk/src/VBox/Runtime/r0drv/haiku/semevent-r0drv-haiku.c
r82968 r90488 263 263 } 264 264 265 266 RTR0DECL(bool) RTSemEventIsSignalSafe(void) 267 { 268 /** @todo check the code... */ 269 return false; 270 } 271 RT_EXPORT_SYMBOL(RTSemEventIsSignalSafe); 272 -
trunk/src/VBox/Runtime/r0drv/haiku/semeventmulti-r0drv-haiku.c
r82968 r90488 291 291 RT_EXPORT_SYMBOL(RTSemEventMultiGetResolution); 292 292 293 294 RTR0DECL(bool) RTSemEventMultiIsSignalSafe(void) 295 { 296 /** @todo check the code... */ 297 return false; 298 } 299 RT_EXPORT_SYMBOL(RTSemEventMultiIsSignalSafe); 300 -
trunk/src/VBox/Runtime/r0drv/linux/semevent-r0drv-linux.c
r82968 r90488 278 278 RT_EXPORT_SYMBOL(RTSemEventGetResolution); 279 279 280 281 RTR0DECL(bool) RTSemEventIsSignalSafe(void) 282 { 283 return true; 284 } 285 RT_EXPORT_SYMBOL(RTSemEventIsSignalSafe); 286 -
trunk/src/VBox/Runtime/r0drv/linux/semeventmulti-r0drv-linux.c
r82968 r90488 343 343 RT_EXPORT_SYMBOL(RTSemEventMultiGetResolution); 344 344 345 346 RTR0DECL(bool) RTSemEventMultiIsSignalSafe(void) 347 { 348 return true; 349 } 350 RT_EXPORT_SYMBOL(RTSemEventMultiIsSignalSafe); 351 -
trunk/src/VBox/Runtime/r0drv/netbsd/semevent-r0drv-netbsd.c
r82968 r90488 276 276 return 1000000000 / hz; 277 277 } 278 279 RTR0DECL(bool) RTSemEventIsSignalSafe(void) 280 { 281 /** @todo check the code... */ 282 return false; 283 } 284 -
trunk/src/VBox/Runtime/r0drv/netbsd/semeventmulti-r0drv-netbsd.c
r82968 r90488 340 340 } 341 341 RT_EXPORT_SYMBOL(RTSemEventMultiGetResolution); 342 343 344 RTR0DECL(bool) RTSemEventMultiIsSignalSafe(void) 345 { 346 /** @todo check the code... */ 347 return false; 348 } 349 RT_EXPORT_SYMBOL(RTSemEventMultiIsSignalSafe); 350 -
trunk/src/VBox/Runtime/r0drv/nt/semevent-r0drv-nt.cpp
r90459 r90488 276 276 } 277 277 278 279 RTR0DECL(bool) RTSemEventIsSignalSafe(void) 280 { 281 return KeGetCurrentIrql() <= DISPATCH_LEVEL; 282 } 283 -
trunk/src/VBox/Runtime/r0drv/nt/semeventmulti-r0drv-nt.cpp
r82968 r90488 299 299 } 300 300 301 302 RTR0DECL(bool) RTSemEventMultiIsSignalSafe(void) 303 { 304 return KeGetCurrentIrql() <= DISPATCH_LEVEL; 305 } 306 -
trunk/src/VBox/Runtime/r0drv/os2/semevent-r0drv-os2.cpp
r82968 r90488 294 294 } 295 295 296 297 RTR0DECL(bool) RTSemEventIsSignalSafe(void) 298 { 299 return true; 300 } 301 -
trunk/src/VBox/Runtime/r0drv/os2/semeventmulti-r0drv-os2.cpp
r82968 r90488 304 304 } 305 305 306 307 RTR0DECL(bool) RTSemEventMultiIsSignalSafe(void) 308 { 309 return true; 310 } 311 -
trunk/src/VBox/Runtime/r0drv/solaris/semevent-r0drv-solaris.c
r82968 r90488 346 346 } 347 347 348 349 RTR0DECL(bool) RTSemEventIsSignalSafe(void) 350 { 351 /* I don't trust Solaris not to preempt us. */ 352 return false; 353 } 354 -
trunk/src/VBox/Runtime/r0drv/solaris/semeventmulti-r0drv-solaris.c
r82968 r90488 354 354 } 355 355 356 357 RTR0DECL(bool) RTSemEventMultiIsSignalSafe(void) 358 { 359 /* Don't trust solaris not to preempt us. */ 360 return false; 361 } 362
Note:
See TracChangeset
for help on using the changeset viewer.