Пример #1
0
static int
central_get_string(int node, const char *name, char **buf)
{
	int len;

	len = prom_getproplen(node, name);
	if (len < 0)
		return (len);
	*buf = (char *)malloc(len + 1, M_DEVBUF, M_NOWAIT);
	if (*buf == NULL)
		return (-1);

	if (len != 0)
		prom_getpropstringA(node, name, *buf, len + 1);
	(*buf)[len] = '\0';
	return (0);
}
Пример #2
0
static void
prom_get_device_args(const char *prop, char *args, unsigned int sz)
{
	const char *cp;
	char buffer[128];

	cp = prom_getpropstringA(findroot(), prop, buffer, sizeof buffer);

	/*
	 * Extract device-specific arguments from a PROM device path (if any)
	 */
	cp = buffer + strlen(buffer);
	while (cp >= buffer) {
		if (*cp == ':') {
			strncpy(args, cp+1, sz);
			break;
		}
		cp--;
	}
}