summaryrefslogtreecommitdiffstats
path: root/sys/geom/geom.h
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2002-09-27 20:38:36 +0000
committerphk <phk@FreeBSD.org>2002-09-27 20:38:36 +0000
commit83aec680cb55261466c7d21ac999144f9985d59e (patch)
tree7b1c2e6a84e3db3c03aa2837e686fbd1569016ee /sys/geom/geom.h
parenta09a7e0aa751dc58e8f65d2417ed2cbb9cb3e686 (diff)
downloadFreeBSD-src-83aec680cb55261466c7d21ac999144f9985d59e.zip
FreeBSD-src-83aec680cb55261466c7d21ac999144f9985d59e.tar.gz
Implement g_call_me() as a way for geom methods to schedule operations
to be performed in the event-thread. To do this, we need to lock the eventlist with g_eventlock (nee g_doorlock), since g_call_me() being called from the UP/DOWN paths will not be able to aquire g_topology_lock. This also means that for now these events are not referenced on any particular consumer/provider/geom. For UP/DOWN path use, this will not become a problem since the access() function will make sure we drain any bio's before we dismantle. Sponsored by: DARPA & NAI Labs.
Diffstat (limited to 'sys/geom/geom.h')
-rw-r--r--sys/geom/geom.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/geom/geom.h b/sys/geom/geom.h
index df7ecb5..018c8f6 100644
--- a/sys/geom/geom.h
+++ b/sys/geom/geom.h
@@ -180,9 +180,11 @@ void g_trace(int level, char *, ...);
/* geom_event.c */
+typedef void g_call_me_t(void *);
+int g_call_me(g_call_me_t *func, void *arg);
void g_orphan_provider(struct g_provider *pp, int error);
-void g_waitidle(void);
void g_silence(void);
+void g_waitidle(void);
/* geom_subr.c */
int g_access_abs(struct g_consumer *cp, int read, int write, int exclusive);
OpenPOWER on IntegriCloud