hotplug.h revision 2912:85ea316d9c18
1/*************************************************************************** 2 * 3 * hotplug.h : definitions for HAL-internal hotplug events 4 * 5 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 6 * Use is subject to license terms. 7 * 8 * Licensed under the Academic Free License version 2.1 9 * 10 **************************************************************************/ 11 12#pragma ident "%Z%%M% %I% %E% SMI" 13 14#ifndef HOTPLUG_H 15#define HOTPLUG_H 16 17#include <glib.h> 18 19#include "../device.h" 20#include "../util.h" 21 22#include "devinfo.h" 23 24typedef enum { 25 HOTPLUG_ACTION_ADD, 26 HOTPLUG_ACTION_REMOVE, 27} HotplugActionType; 28 29typedef enum { 30 HOTPLUG_EVENT_DEVFS = 0, 31} HotplugEventType; 32 33/** Data structure representing a hotplug event; also used for 34 * coldplugging. 35 */ 36typedef struct 37{ 38 HotplugActionType action; /**< Whether the event is add or remove */ 39 HotplugEventType type; /**< Type of hotplug event */ 40 41 HalDevice *d; 42 43 union { 44 struct { 45 char devfs_path[HAL_PATH_MAX]; 46 DevinfoDevHandler *handler; 47 } devfs; 48 } un; 49 50} HotplugEvent; 51 52void hotplug_event_enqueue (HotplugEvent *event, int front); 53 54void hotplug_event_process_queue (void); 55 56void hotplug_event_end (void *end_token); 57 58void hotplug_queue_now_empty (void); 59 60#endif /* HOTPLUG_H */ 61