126947304SEvan Yan /* 226947304SEvan Yan * CDDL HEADER START 326947304SEvan Yan * 426947304SEvan Yan * The contents of this file are subject to the terms of the 526947304SEvan Yan * Common Development and Distribution License (the "License"). 626947304SEvan Yan * You may not use this file except in compliance with the License. 726947304SEvan Yan * 826947304SEvan Yan * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 926947304SEvan Yan * or http://www.opensolaris.org/os/licensing. 1026947304SEvan Yan * See the License for the specific language governing permissions 1126947304SEvan Yan * and limitations under the License. 1226947304SEvan Yan * 1326947304SEvan Yan * When distributing Covered Code, include this CDDL HEADER in each 1426947304SEvan Yan * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1526947304SEvan Yan * If applicable, add the following below this CDDL HEADER, with the 1626947304SEvan Yan * fields enclosed by brackets "[]" replaced with your own identifying 1726947304SEvan Yan * information: Portions Copyright [yyyy] [name of copyright owner] 1826947304SEvan Yan * 1926947304SEvan Yan * CDDL HEADER END 2026947304SEvan Yan */ 2126947304SEvan Yan 2226947304SEvan Yan /* 2326947304SEvan Yan * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 2426947304SEvan Yan * Use is subject to license terms. 2526947304SEvan Yan */ 2626947304SEvan Yan 2726947304SEvan Yan #ifndef _LIBHOTPLUG_IMPL_H 2826947304SEvan Yan #define _LIBHOTPLUG_IMPL_H 2926947304SEvan Yan 3026947304SEvan Yan #ifdef __cplusplus 3126947304SEvan Yan extern "C" { 3226947304SEvan Yan #endif 3326947304SEvan Yan 3426947304SEvan Yan #include <sys/param.h> 3526947304SEvan Yan #include <libhotplug.h> 3626947304SEvan Yan 3726947304SEvan Yan /* 3826947304SEvan Yan * Definition of a node in a hotplug information snapshot. 3926947304SEvan Yan */ 4026947304SEvan Yan struct hp_node { 4126947304SEvan Yan int hp_type; 4226947304SEvan Yan char *hp_name; 4326947304SEvan Yan char *hp_usage; 4426947304SEvan Yan char *hp_description; 4526947304SEvan Yan char *hp_basepath; 4626947304SEvan Yan int hp_state; 4726947304SEvan Yan time_t hp_last_change; 4826947304SEvan Yan hp_node_t hp_parent; 4926947304SEvan Yan hp_node_t hp_child; 5026947304SEvan Yan hp_node_t hp_sibling; 5126947304SEvan Yan }; 5226947304SEvan Yan 5326947304SEvan Yan /* 5426947304SEvan Yan * Definitions used for packing/unpacking snapshots. 5526947304SEvan Yan */ 5626947304SEvan Yan #define HP_INFO_BASE "hp_info.basepath" 5726947304SEvan Yan #define HP_INFO_NODE "hp_info.node" 5826947304SEvan Yan #define HP_INFO_BRANCH "hp_info.branch" 5926947304SEvan Yan #define HP_INFO_TYPE "hp_info.type" 6026947304SEvan Yan #define HP_INFO_NAME "hp_info.name" 6126947304SEvan Yan #define HP_INFO_USAGE "hp_info.usage" 6226947304SEvan Yan #define HP_INFO_STATE "hp_info.state" 6326947304SEvan Yan #define HP_INFO_DESC "hp_info.description" 6426947304SEvan Yan #define HP_INFO_TIME "hp_info.last_change" 6526947304SEvan Yan 6626947304SEvan Yan /* 67*bbf21555SRichard Lowe * Definitions for the door interface to hotplugd(8). 6826947304SEvan Yan */ 6926947304SEvan Yan #define HOTPLUGD_PID "/var/run/hotplugd.pid" 7026947304SEvan Yan #define HOTPLUGD_DOOR "/var/run/hotplugd_door" 7126947304SEvan Yan 7226947304SEvan Yan typedef enum { 7326947304SEvan Yan HP_CMD_NONE = 0, 7426947304SEvan Yan HP_CMD_GETINFO, 7526947304SEvan Yan HP_CMD_CHANGESTATE, 7626947304SEvan Yan HP_CMD_SETPRIVATE, 7726947304SEvan Yan HP_CMD_GETPRIVATE 7826947304SEvan Yan } hp_cmd_t; 7926947304SEvan Yan 8026947304SEvan Yan #define HPD_CMD "hp_door.cmd" 8126947304SEvan Yan #define HPD_PATH "hp_door.path" 8226947304SEvan Yan #define HPD_CONNECTION "hp_door.connection" 8326947304SEvan Yan #define HPD_FLAGS "hp_door.flags" 8426947304SEvan Yan #define HPD_STATE "hp_door.state" 8526947304SEvan Yan #define HPD_OPTIONS "hp_door.options" 8626947304SEvan Yan #define HPD_INFO "hp_door.info" 8726947304SEvan Yan #define HPD_STATUS "hp_door.status" 8826947304SEvan Yan #define HPD_SEQNUM "hp_door.seqnum" 8926947304SEvan Yan 9026947304SEvan Yan /* 9126947304SEvan Yan * Definition of macros to validate flags. 9226947304SEvan Yan */ 9326947304SEvan Yan #define HP_INIT_FLAGS_VALID(f) ((f & ~(HPINFOUSAGE)) == 0) 9426947304SEvan Yan #define HP_SET_STATE_FLAGS_VALID(f) ((f & ~(HPFORCE | HPQUERY)) == 0) 9526947304SEvan Yan 9626947304SEvan Yan /* 9726947304SEvan Yan * Definition of global flag to enable debug. 9826947304SEvan Yan */ 9926947304SEvan Yan extern int libhotplug_debug; 10026947304SEvan Yan 10126947304SEvan Yan #ifdef __cplusplus 10226947304SEvan Yan } 10326947304SEvan Yan #endif 10426947304SEvan Yan 10526947304SEvan Yan #endif /* _LIBHOTPLUG_IMPL_H */ 106