linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* lseek() on entries in /proc/device-tree returns EINVAL
@ 2008-04-16 20:57 Timur Tabi
  2008-04-16 21:01 ` Scott Wood
  2008-04-16 21:09 ` Joakim Tjernlund
  0 siblings, 2 replies; 7+ messages in thread
From: Timur Tabi @ 2008-04-16 20:57 UTC (permalink / raw)
  To: linuxppc-dev

I'm writing a utility that parses the device tree in /proc/device-tree, and in
order to read a property into memory, I have to first find out how large it is.
 So I have the following code:

	off_t off;
	int f;

	f = open(filename, O_RDONLY);
	if (f == -1) {
		perror(__func__);
		return NULL;
	}

	off = lseek(f, 0, SEEK_END);
	if (off == -1) {
		perror(__func__);
		goto fail;
	}

The lseek() call returns -1, and errno is set to EINVAL.  According to the man
page, this means:

       EINVAL The  whence  argument  is  not a proper value, or the resulting
              file offset would be negative for a regular file, block special
              file, or directory.

Is there a limitation for the implementation of /proc/device-tree that prevents
lseek() from working?  If so, how do I determine the size of a property?

-- 
Timur Tabi
Linux kernel developer at Freescale

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2008-04-16 21:40 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-16 20:57 lseek() on entries in /proc/device-tree returns EINVAL Timur Tabi
2008-04-16 21:01 ` Scott Wood
2008-04-16 21:09 ` Joakim Tjernlund
2008-04-16 21:10   ` Timur Tabi
2008-04-16 21:13     ` Joakim Tjernlund
2008-04-16 21:16       ` Timur Tabi
2008-04-16 21:40         ` Joakim Tjernlund

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).