xref: /onnv-gate/usr/src/cmd/hal/hald/solaris/hotplug.h (revision 2916:ba92c662e4ef)
12912Sartem /***************************************************************************
22912Sartem  *
32912Sartem  * hotplug.h : definitions for HAL-internal hotplug events
42912Sartem  *
52912Sartem  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
62912Sartem  * Use is subject to license terms.
72912Sartem  *
82912Sartem  * Licensed under the Academic Free License version 2.1
92912Sartem  *
102912Sartem  **************************************************************************/
112912Sartem 
12*2916Sartem #pragma ident	"%Z%%M%	%I%	%E% SMI"
132912Sartem 
142912Sartem #ifndef HOTPLUG_H
152912Sartem #define HOTPLUG_H
162912Sartem 
172912Sartem #include <glib.h>
182912Sartem 
192912Sartem #include "../device.h"
202912Sartem #include "../util.h"
212912Sartem 
222912Sartem #include "devinfo.h"
232912Sartem 
242912Sartem typedef enum {
252912Sartem 	HOTPLUG_ACTION_ADD,
262912Sartem 	HOTPLUG_ACTION_REMOVE,
272912Sartem } HotplugActionType;
282912Sartem 
292912Sartem typedef enum {
302912Sartem 	HOTPLUG_EVENT_DEVFS       = 0,
312912Sartem } HotplugEventType;
322912Sartem 
332912Sartem /** Data structure representing a hotplug event; also used for
342912Sartem  *  coldplugging.
352912Sartem  */
362912Sartem typedef struct
372912Sartem {
382912Sartem 	HotplugActionType action;               /**< Whether the event is add or remove */
392912Sartem 	HotplugEventType type;                  /**< Type of hotplug event */
402912Sartem 
412912Sartem 	HalDevice *d;
422912Sartem 
432912Sartem 	union {
442912Sartem 		struct {
452912Sartem 			char devfs_path[HAL_PATH_MAX];
462912Sartem 			DevinfoDevHandler *handler;
472912Sartem 		} devfs;
482912Sartem 	} un;
492912Sartem 
502912Sartem } HotplugEvent;
512912Sartem 
522912Sartem void hotplug_event_enqueue (HotplugEvent *event, int front);
532912Sartem 
542912Sartem void hotplug_event_process_queue (void);
552912Sartem 
562912Sartem void hotplug_event_end (void *end_token);
572912Sartem 
582912Sartem void hotplug_queue_now_empty (void);
592912Sartem 
602912Sartem #endif /* HOTPLUG_H */
61