Re: [darwin-kernel] devfs_make_node mutilates pathname on Leopard?
Re: [darwin-kernel] devfs_make_node mutilates pathname on Leopard?
- Subject: Re: [darwin-kernel] devfs_make_node mutilates pathname on Leopard?
- From: Sam Vaughan <email@hidden>
- Date: Thu, 20 Dec 2007 11:20:40 +1100
On 19/12/2007, at 10:35 AM, Terry Lambert wrote:
On Dec 13, 2007, at 8:41 PM, Sam Vaughan wrote:
On 14/12/2007, at 7:05 AM, Terry Lambert <email@hidden> wrote:
Given that subdirectories in /dev are not supported, and may be
removed, if we end up needing to do that for some technical reason,
it's probably better to just go that route on both 10.4 and 10.5
instead.
This is probably the approach we will end up taking... just have to
actually do it :)
Oi! That's my code you'd be ripping out! ;o)
The reason for the subdirectories in the first place was to allow
LUNs to be identified by the port and node WWNs on the host and
RAID controller that uniquely described their path on the fibre
channel network. The WWNs are too long to include in the one
devfs node name, so the only option is to use a hierarchy.
Subdirectories do not remove the node name length limit.
I beg to differ, Terry.
It's been a long time since I was hacking on this stuff, but a quick
look at devfs_tree.c suggests to me that a call to devfs_make_node()
with a path containing slashes will result in dev_finddir() creating
the intermediate directory nodes as needed. Each directory node can
be DEVMAXNAMESIZE (32 characters) long, and the total path length can
be up to DEVMAXPATHSIZE (128 characters).
I may have missed something that's changed since the days of Darwin 6
when I was working on this, but I certainly used to create paths
considerably longer than the node name length limit.
Sam
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden