g_post_event man page on FreeBSD

Printed from http://www.polarhome.com/service/man/?qf=g_post_event&af=0&tf=2&of=FreeBSD

G_EVENT(9)		 BSD Kernel Developer's Manual		    G_EVENT(9)

NAME
     g_post_event, g_waitfor_event, g_cancel_event — GEOM events management

SYNOPSIS
     #include <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 impor‐
     tant events.  The event queue can be also used by GEOM classes them‐
     selves, 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 can‐
     celed 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 success‐
     ful; 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
     This manual page was written by Pawel Jakub Dawidek ⟨pjd@FreeBSD.org⟩.

BSD			       January 16, 2004				   BSD
[top]

List of man pages available for FreeBSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net