Exemple #1
0
int
procfs_docpuinfo(struct proc *curp, struct proc *p, struct pfsnode *pfs,
		 struct uio *uio)
{
	char buf[512], *cp;
	int len, error;

	len = sizeof buf;
	if (procfs_getcpuinfstr(buf, &len) < 0)
		return EIO;

	if (len == 0)
		return 0;

	len -= uio->uio_offset;
	cp = buf + uio->uio_offset;
	len = imin(len, uio->uio_resid);
	if (len <= 0)
		error = 0;
	else
		error = uiomove(cp, len, uio);
	return error;
}
Exemple #2
0
int
procfs_docpuinfo(struct lwp *curl, struct proc *p,
    struct pfsnode *pfs, struct uio *uio)
{
	int len = LBFSZ;
	char *bf = malloc(len, M_TEMP, M_WAITOK);
	int error;

	if (procfs_getcpuinfstr(bf, &len) < 0) {
		error = ENOSPC;
		goto done;
	}

	if (len == 0) {
		error = 0;
		goto done;
	}

	error = uiomove_frombuf(bf, len, uio);
done:
	free(bf, M_TEMP);
	return error;
}