843e19887f64dde75055cf8842fc4db2171eff45johnlev/***************************************************************************
843e19887f64dde75055cf8842fc4db2171eff45johnlev * CVSID: $Id$
843e19887f64dde75055cf8842fc4db2171eff45johnlev * device.c : HalDevice methods
843e19887f64dde75055cf8842fc4db2171eff45johnlev * Copyright (C) 2003 David Zeuthen, <david@fubar.dk>
843e19887f64dde75055cf8842fc4db2171eff45johnlev * Copyright (C) 2004 Novell, Inc.
843e19887f64dde75055cf8842fc4db2171eff45johnlev * Licensed under the Academic Free License version 2.1
843e19887f64dde75055cf8842fc4db2171eff45johnlev * This program is free software; you can redistribute it and/or modify
843e19887f64dde75055cf8842fc4db2171eff45johnlev * it under the terms of the GNU General Public License as published by
843e19887f64dde75055cf8842fc4db2171eff45johnlev * the Free Software Foundation; either version 2 of the License, or
843e19887f64dde75055cf8842fc4db2171eff45johnlev * (at your option) any later version.
843e19887f64dde75055cf8842fc4db2171eff45johnlev * This program is distributed in the hope that it will be useful,
843e19887f64dde75055cf8842fc4db2171eff45johnlev * but WITHOUT ANY WARRANTY; without even the implied warranty of
843e19887f64dde75055cf8842fc4db2171eff45johnlev * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
843e19887f64dde75055cf8842fc4db2171eff45johnlev * GNU General Public License for more details.
843e19887f64dde75055cf8842fc4db2171eff45johnlev * You should have received a copy of the GNU General Public License
24fe0b3bf671e123467ce1df0b67cadd3614c8e4jmcp * along with this program; if not, write to the Free Software
843e19887f64dde75055cf8842fc4db2171eff45johnlev * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
843e19887f64dde75055cf8842fc4db2171eff45johnlev **************************************************************************/
843e19887f64dde75055cf8842fc4db2171eff45johnlev printf ("************* in finalize for udi=%s\n", device->udi);
48bc00d6814e04ff3edb32cafe7d1bc580baff68jmcp g_slist_foreach (device->properties, (GFunc) hal_property_free, NULL);
G_TYPE_NONE, 0);
G_TYPE_NONE, 0);
if (!type) {
sizeof (HalDeviceClass),
sizeof (HalDevice),
return type;
#ifdef HALD_MEMLEAK_DBG
return device;
const char *target_namespace,
const char *source_namespace)
/* doesn't handle info.capabilities */
switch (type) {
case HAL_PROPERTY_TYPE_STRING:
hal_property_get_string (p));
case HAL_PROPERTY_TYPE_INT32:
hal_property_get_int (p));
case HAL_PROPERTY_TYPE_UINT64:
hal_property_get_uint64 (p));
hal_property_get_bool (p));
case HAL_PROPERTY_TYPE_DOUBLE:
hal_property_get_double (p));
/* handle info.capabilities in a special way */
switch (type) {
case HAL_PROPERTY_TYPE_STRING:
hal_property_get_string (p));
case HAL_PROPERTY_TYPE_INT32:
hal_property_get_int (p));
case HAL_PROPERTY_TYPE_UINT64:
hal_property_get_uint64 (p));
hal_property_get_bool (p));
case HAL_PROPERTY_TYPE_DOUBLE:
hal_property_get_double (p));
const char *namespace)
HalProperty *p;
return FALSE;
switch (type) {
case HAL_PROPERTY_TYPE_STRING:
key)) != 0)
return FALSE;
case HAL_PROPERTY_TYPE_INT32:
if (hal_property_get_int (p) !=
return FALSE;
case HAL_PROPERTY_TYPE_UINT64:
if (hal_property_get_uint64 (p) !=
return FALSE;
if (hal_property_get_bool (p) !=
return FALSE;
case HAL_PROPERTY_TYPE_DOUBLE:
if (hal_property_get_double (p) !=
return FALSE;
return TRUE;
return FALSE;
return matched;
return NULL;
if (!prop)
return NULL;
return HAL_PROPERTY_TYPE_INVALID;
return NULL;
case HAL_PROPERTY_TYPE_STRING:
case HAL_PROPERTY_TYPE_INT32:
case HAL_PROPERTY_TYPE_UINT64:
case HAL_PROPERTY_TYPE_DOUBLE:
guint i;
if (bufsize > 0)
i += len;
if (i < bufsize) {
return buf;
return NULL;
return FALSE;
const char *value)
return FALSE;
return TRUE;
return TRUE;
return FALSE;
return TRUE;
return TRUE;
return FALSE;
return TRUE;
return TRUE;
return FALSE;
return TRUE;
return TRUE;
double value)
return FALSE;
return TRUE;
return TRUE;
hal_device_copy_property (HalDevice *from_device, const char *from, HalDevice *to_device, const char *to)
case HAL_PROPERTY_TYPE_STRING:
case HAL_PROPERTY_TYPE_INT32:
case HAL_PROPERTY_TYPE_UINT64:
case HAL_PROPERTY_TYPE_DOUBLE:
return rc;
return FALSE;
return TRUE;
const char *key,
return FALSE;
return TRUE;
switch (type) {
case HAL_PROPERTY_TYPE_STRING:
hal_property_get_string (p));
case HAL_PROPERTY_TYPE_INT32:
hal_property_get_int (p),
hal_property_get_int (p));
case HAL_PROPERTY_TYPE_UINT64:
(long long unsigned int) hal_property_get_uint64 (p),
(long long unsigned int) hal_property_get_uint64 (p));
case HAL_PROPERTY_TYPE_DOUBLE:
hal_property_get_double (p));
if (removed)
goto cleanup;
static gboolean
return FALSE;
const char *key,
int timeout)
ai);
GSList *
const char *key)
return NULL;
const char *key,
GSList *i;
return NULL;
if (i == NULL)
return NULL;
return (const char *) i->data;
const char *key,
const char *value)
return FALSE;
return TRUE;
const char *key,
const char *value)
return FALSE;
return TRUE;
const char *key,
return FALSE;
return FALSE;
return TRUE;
return FALSE;
const char *key)
return TRUE;
return FALSE;
return TRUE;
return FALSE;
const char *key,
const char *value)
goto out;
if (res) {
out:
return res;
const char *key,
const char *value)
return FALSE;
return FALSE;
return TRUE;
const char *key)
return TRUE;
return FALSE;
return TRUE;
return FALSE;
return FALSE;
return TRUE;
return TRUE;
return FALSE;