GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  G_POST_EVENT (9)

NAME

g_post_event, g_waitfor_event, g_cancel_event - GEOM events management

CONTENTS

Synopsis
Description
Restrictions/conditions
Return Values
Examples
Errors
See Also
Authors

SYNOPSIS


.In geom/geom.h int g_post_event g_event_t *func void *arg int flag ... int g_waitfor_event g_event_t *func void *arg int flag ... void g_cancel_event void *ref

DESCRIPTION

The GEOM framework has its own event queue to inform classes about important events. The event queue can be also used by GEOM classes themselves, for example to work around some restrictions in the I/O path, where sleeping, heavy weight tasks, etc. are not permitted.

The g_post_event function tells the GEOM framework to call function func with argument arg from the event queue. The flag argument is passed to malloc(9) for memory allocations inside of g_post_event. The only allowed flags are M_WAITOK and M_NOWAIT. The rest of the arguments are used as references to identify the event. An event can be canceled by using any of the given references as an argument to g_cancel_event. The list of references has to end with a NULL value.

The g_waitfor_event function is a blocking version of the g_post_event function. It waits until the event is finished or canceled and then returns.

The g_cancel_event function cancels all event(s) identified by ref. Cancellation is equivalent to calling the requested function with requested arguments and argument flag set to EV_CANCEL.

RESTRICTIONS/CONDITIONS

g_post_event:
The argument flag has to be M_WAITOK or M_NOWAIT.
The list of references has to end with a NULL value.

g_waitfor_event:
The argument flag has to be M_WAITOK or M_NOWAIT.
The list of references has to end with a NULL value.
The g_waitfor_event function cannot be called from an event, since doing so would result in a deadlock.

RETURN VALUES

The g_post_event and g_waitfor_event functions return 0 if successful; otherwise an error code is returned.

EXAMPLES

Example of a function called from the event queue.
void
example_event(void *arg, int flag)
{

        if (flag == EV_CANCEL) {                 printf("Event with argument %p canceled.\n", arg);                 return;         }

        printf("Event with argument %p called.\n", arg); }

ERRORS

Possible errors for the g_post_event function:
[ENOMEM]
  The flag argument was set to M_NOWAIT and there was insufficient memory.

Possible errors for the g_waitfor_event function:
[EAGAIN]
  The event was canceled.
[ENOMEM]
  The flag argument was set to M_NOWAIT and there was insufficient memory.

SEE ALSO

geom(4), DECLARE_GEOM_CLASS(9), g_access(9), g_attach(9), g_bio(9), g_consumer(9), g_data(9), g_geom(9), g_provider(9), g_provider_by_name(9), g_wither_geom(9)

AUTHORS


.An -nosplit This manual page was written by
.An Pawel Jakub Dawidek Aq pjd@FreeBSD.org .
Search for    or go to Top of page |  Section 9 |  Main Index


Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.