Example #1
0
void report2event(e_controller_type type, int adapter_id, s_report* current,
    s_report* previous, int joystick_id)
{
  if (controllers[type].r2e)
  {
    controllers[type].r2e(adapter_id, current, previous, joystick_id,
        event_callback);
  }
  else
  {
    fprintf(stderr, "Controller is missing a report2event function: %s\n", controller_get_name(type));
  }
}
Example #2
0
char *
dm_get_name(dm_descriptor_t desc, int *errp)
{
	descriptor_t	*dp;
	char		*nm = NULL;
	char		*name = NULL;

	dp = (descriptor_t *)(uintptr_t)desc;

	cache_rlock();

	if (!cache_is_valid_desc(dp)) {
		cache_unlock();
		*errp = EBADF;
		return (NULL);
	}

	/* verify that the descriptor is still valid */
	if (dp->p.generic == NULL) {
		cache_unlock();
		*errp = ENODEV;
		return (NULL);
	}

	switch (dp->type) {
	case DM_DRIVE:
		nm = (drive_get_name(dp));
		break;
	case DM_BUS:
		nm = (bus_get_name(dp));
		break;
	case DM_CONTROLLER:
		nm = (controller_get_name(dp));
		break;
	case DM_MEDIA:
		nm = (media_get_name(dp));
		break;
	case DM_SLICE:
		nm = (slice_get_name(dp));
		break;
	case DM_PARTITION:
		nm = (partition_get_name(dp));
		break;
	case DM_PATH:
		nm = (path_get_name(dp));
		break;
	case DM_ALIAS:
		nm = (alias_get_name(dp));
		break;
	}

	cache_unlock();

	*errp = 0;
	if (nm != NULL) {
		name = strdup(nm);
		if (name == NULL) {
			*errp = ENOMEM;
			return (NULL);
		}
		return (name);
	}
	return (NULL);
}