| Commit | Line | Data |
|---|---|---|
| c6289b98 AP |
1 | /* $OpenBSD: hotplug.h,v 1.5 2006/05/28 16:52:34 mk Exp $ */ |
| 2 | /* | |
| 3 | * Copyright (c) 2004 Alexander Yurchenko <grange@openbsd.org> | |
| 4 | * | |
| 5 | * Permission to use, copy, modify, and distribute this software for any | |
| 6 | * purpose with or without fee is hereby granted, provided that the above | |
| 7 | * copyright notice and this permission notice appear in all copies. | |
| 8 | * | |
| 9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
| 10 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
| 11 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
| 12 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
| 13 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
| 14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
| 15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
| 16 | */ | |
| 17 | ||
| 18 | #ifndef _SYS_HOTPLUG_H_ | |
| 19 | #define _SYS_HOTPLUG_H_ | |
| 20 | ||
| 21 | #include <sys/bus.h> | |
| 22 | ||
| 23 | /* | |
| 24 | * Minimal device structures. | |
| 25 | * Note that all ``system'' device types are listed here. | |
| 26 | */ | |
| 27 | enum obsd_devclass { | |
| 28 | DV_DULL, /* generic, no special info */ | |
| 29 | DV_CPU, /* CPU (carries resource utilization) */ | |
| 30 | DV_DISK, /* disk drive (label, etc) */ | |
| 31 | DV_IFNET, /* network interface */ | |
| 32 | DV_TAPE, /* tape device */ | |
| 33 | DV_TTY /* serial line interface (???) */ | |
| 34 | }; | |
| 35 | ||
| 36 | /* | |
| 37 | * Public interface for enqueuing and dequeueing device | |
| 38 | * attachment and detachment notifications. | |
| 39 | */ | |
| 40 | ||
| 41 | #define HOTPLUG_DEVAT 0x01 /* device attached */ | |
| 42 | #define HOTPLUG_DEVDT 0x02 /* device detached */ | |
| 43 | ||
| 44 | struct hotplug_event { | |
| 45 | int he_type; /* event type */ | |
| 46 | enum obsd_devclass he_devclass; /* device class */ | |
| 47 | char he_devname[16]; /* device name */ | |
| 48 | }; | |
| 49 | ||
| 50 | #ifdef _KERNEL | |
| e3bf5370 AP |
51 | struct hotplug_device { |
| 52 | cdev_t dev; | |
| 53 | char *name; | |
| 54 | }; | |
| c6289b98 AP |
55 | void hotplug_device_attach(device_t dev); |
| 56 | void hotplug_device_detach(device_t dev); | |
| 57 | #endif | |
| 58 | ||
| 59 | #endif /* _SYS_HOTPLUG_H_ */ |