diff options
author | phk <phk@FreeBSD.org> | 2002-09-27 20:38:36 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2002-09-27 20:38:36 +0000 |
commit | 83aec680cb55261466c7d21ac999144f9985d59e (patch) | |
tree | 7b1c2e6a84e3db3c03aa2837e686fbd1569016ee /sys/geom/geom.h | |
parent | a09a7e0aa751dc58e8f65d2417ed2cbb9cb3e686 (diff) | |
download | FreeBSD-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.h | 4 |
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); |