[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [microblaze-uclinux] select() with fd > 31



Hi Jim,

Jim Van Vorst wrote:
I have run into a problem with select(). It won't set bits for file descriptors > 31. I.e. it looks like there's a 32-bit limitation down in the bowels somewhere. I am using the normal FD_SET, FD_ISSET macros to set and check my fd bits. I know I am setting the right bits, and I know there's data waiting, but bits above 31 are never set on the return from select().

I am running linux 2.6.

Anyone seen this before? Is this a uclinux thing? A microblaze thing? Am I delusional?

Are you still having trouble with this (I've been on holdidays)

Checking the obvious - you are passing *pointers* to the fd_sets in question right, not the structures themselevs?

Are you correctly setting the 'n' parameter to select(), to be max(fd) + 1 as per "man select"?

It's worth peppering some printk's in linux-2.6/fs/select.c, in the core_sys_select() function, to find out what's going on. This is all mainline code, no microblaze or uclinux specific limitations I'm aware of. You should be able to specify up to 1024 FDs.

Cheers,

John
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/