devinfo_misc.c revision 7b840e52d558c34b70cbcde044d8d79852d169d2
18c2aff776a775d34a4c9893a4c72e0434d68e36artem/***************************************************************************
18c2aff776a775d34a4c9893a4c72e0434d68e36artem * devinfo_misc : misc devices
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
18c2aff776a775d34a4c9893a4c72e0434d68e36artem * Use is subject to license terms.
18c2aff776a775d34a4c9893a4c72e0434d68e36artem * Licensed under the Academic Free License version 2.1
18c2aff776a775d34a4c9893a4c72e0434d68e36artem **************************************************************************/
92f381329ebf1c2209df9608670666b32b291e05artem#pragma ident "%Z%%M% %I% %E% SMI"
18c2aff776a775d34a4c9893a4c72e0434d68e36artem#include "../osspec.h"
18c2aff776a775d34a4c9893a4c72e0434d68e36artem#include "../logger.h"
18c2aff776a775d34a4c9893a4c72e0434d68e36artem#include "../hald.h"
18c2aff776a775d34a4c9893a4c72e0434d68e36artem#include "../hald_dbus.h"
18c2aff776a775d34a4c9893a4c72e0434d68e36artem#include "../util.h"
18c2aff776a775d34a4c9893a4c72e0434d68e36artemstatic HalDevice *devinfo_computer_add(HalDevice *, di_node_t, char *, char *);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemstatic HalDevice *devinfo_cpu_add(HalDevice *, di_node_t, char *,char *);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemstatic HalDevice *devinfo_default_add(HalDevice *, di_node_t, char *, char *);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdevinfo_computer_add(HalDevice *parent, di_node_t node, char *devfs_path, char *device_type)
18c2aff776a775d34a4c9893a4c72e0434d68e36artem hal_device_property_set_string (d, "info.bus", "unknown");
18c2aff776a775d34a4c9893a4c72e0434d68e36artem hal_device_property_set_string (d, "info.product", "Computer");
18c2aff776a775d34a4c9893a4c72e0434d68e36artem hal_device_property_set_string (d, "info.udi", "/org/freedesktop/Hal/devices/computer");
18c2aff776a775d34a4c9893a4c72e0434d68e36artem hal_device_set_udi (d, "/org/freedesktop/Hal/devices/computer");
18c2aff776a775d34a4c9893a4c72e0434d68e36artem hal_device_property_set_string (d, "solaris.devfs_path", devfs_path);
18c2aff776a775d34a4c9893a4c72e0434d68e36artem hal_device_property_set_string (d, "system.kernel.name", un.sysname);
18c2aff776a775d34a4c9893a4c72e0434d68e36artem hal_device_property_set_string (d, "system.kernel.version", un.release);
18c2aff776a775d34a4c9893a4c72e0434d68e36artem hal_device_property_set_string (d, "system.kernel.machine", un.machine);
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * Let computer be in TDL while synthesizing all other events
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * because some may write to the object
18c2aff776a775d34a4c9893a4c72e0434d68e36artem devinfo_add_enqueue (d, devfs_path, &devinfo_computer_handler);
18c2aff776a775d34a4c9893a4c72e0434d68e36artem /* all devinfo devices belong to the 'local' branch */
00687e57f8c568d4f8fb446b6530a2942842292fartem hal_device_property_set_string (local_d, "info.parent", hal_device_get_udi (d));
18c2aff776a775d34a4c9893a4c72e0434d68e36artem hal_device_property_set_string (local_d, "info.bus", "unknown");
18c2aff776a775d34a4c9893a4c72e0434d68e36artem hal_device_property_set_string (local_d, "info.product", "Local devices");
18c2aff776a775d34a4c9893a4c72e0434d68e36artem hal_device_property_set_string (local_d, "info.udi", "/org/freedesktop/Hal/devices/local");
18c2aff776a775d34a4c9893a4c72e0434d68e36artem hal_device_set_udi (local_d, "/org/freedesktop/Hal/devices/local");
18c2aff776a775d34a4c9893a4c72e0434d68e36artem hal_device_property_set_string (local_d, "solaris.devfs_path", "/local");
18c2aff776a775d34a4c9893a4c72e0434d68e36artem devinfo_add_enqueue (local_d, "/local", &devinfo_default_handler);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdevinfo_cpu_add(HalDevice *parent, di_node_t node, char *devfs_path, char *device_type)
18c2aff776a775d34a4c9893a4c72e0434d68e36artem if ((device_type == NULL) || (strcmp(device_type, "cpu") != 0)) {
18c2aff776a775d34a4c9893a4c72e0434d68e36artem devinfo_set_default_properties (d, parent, node, devfs_path);
18c2aff776a775d34a4c9893a4c72e0434d68e36artem devinfo_add_enqueue (d, devfs_path, &devinfo_cpu_handler);
18c2aff776a775d34a4c9893a4c72e0434d68e36artem return (d);
18c2aff776a775d34a4c9893a4c72e0434d68e36artemdevinfo_default_add(HalDevice *parent, di_node_t node, char *devfs_path, char *device_type)
18c2aff776a775d34a4c9893a4c72e0434d68e36artem const char *parent_path;
18c2aff776a775d34a4c9893a4c72e0434d68e36artem /* ignore all children of the 'pseudo' node except lofi */
18c2aff776a775d34a4c9893a4c72e0434d68e36artem parent_path = hal_device_property_get_string(parent, "solaris.devfs_path");
18c2aff776a775d34a4c9893a4c72e0434d68e36artem devinfo_set_default_properties (d, parent, node, devfs_path);
18c2aff776a775d34a4c9893a4c72e0434d68e36artem devinfo_add_enqueue (d, devfs_path, &devinfo_default_handler);
18c2aff776a775d34a4c9893a4c72e0434d68e36artem return (d);