[openbeosstorage] Re: API Extensions
- From: "Ingo Weinhold" <bonefish@xxxxxxxxxxxxxxx>
- To: openbeosstorage@xxxxxxxxxxxxx
- Date: Mon, 06 Jan 2003 23:35:14 CET (+0100)
> > > > And the user functions:
> > > > status=5Ft partition=5Fsession(int deviceFD, int32
> > > > sessionIndex,
> > > > const
> > > > char
> > > > *identifier, uint32 version, void *parameters, size=5Ft
> > > > paramLen);
> > > > status=5Ft initialize=5Fpartition(int deviceFD, int32
> > > > sessionIndex,
> > > > int32
> > > > partitionIndex, const char *identifier, uint32 version, char *
> > > > volumeName, void *parameters, size=5Ft paramLen);
> > >
> > > I would replace the second with:
> > > status=5Ft initialize=5Fvolume(const char *where, const char *
> > > fileSystem,
> > > const char *volumeName, const char *parameters);
> > >
> > > Or something similar, probably in unistd.h (accompanying
> > > mount()).
> >
> > Mmh, I could live with that, though it doesn't fit with the rest of
> > the
> > functions.
>
> Why not have both? If you're using the device API, getting
> session_info's and partition_info's and what not, you're going to be
> really annoyed if you have to convert that info to a path name to
> initialize the partition; thus you want Ingo's version. But if you
> just
> feel like initializing a volume for whatever reason, Axel's version
> would be nicer (and would probably make sense living in unistd.h).
That's fine as a compromise. Though, one might object, that it isn't a
good idea to have different APIs (at the same abstraction level) that
do the same thing.
> > Perhaps it's also better to drop that `version' stuff. I thought,
> > it
> > could help to deal better with situations when different versions
> > of a
> > FS exist, but probably that's a bit too esoteric.
>
> Perhaps set things up so the latest version is used unless specified
> (does C allow for default parameters? I can't remember...)?
Sadly C doesn't know default parameters. And, if the versions really
matter, one would simply set up two differently named modules/FS add-
ons (cf. bfs vs. ofs) -- with priorities one can gracefully deal with
such a situation. Therefore it is not really necessary to explicitly
reflect versions stuff in the API.
> > > OTOH we can use this information to display names for partitions
> > > with
> > > unknown or initialized file systems - so that Tracker displays
> > > "Be
> > > volume" or "QNX volume" if the recognizes a BFS/QNX partition
> > > but
> > > it
> > > cannot read the file system for whatever reason.
> >
> > The extended_partition_info features both the type code
> > (`partition_code') and a human readable interpretation
> > (`partition_type'). partition_code is uint8 currently -- maybe it
> > should be resized to uint32.
>
> Do you know offhand if anyone else has done this yet (and would the
> intel partition specs allow the expansion to happen gracefully?).
> IIRC,
> there are very few type codes in the 8-bit range that haven't been
> used, so it seems like something will have to be done one of these
> days.
I don't really get the point, I'm afraid. The Intel/DOS/IBM/whatever
partition layout specs are what they are, i.e. simply non-existent. ;-)
But nevertheless one has no way to get around them. :-P So we can't
just modify them, without risking, that other tools and operating
systems will break. The reason for proposing a uint32 was merely to be
prepared for other partitioning styles. I don't know about what it
looks like on PPC. In the worst case it is even a string. Anyway,
`partition_code' is merely a read-only field of informational
(entertainment? ;-) use. For partitioning the parameters passed to the
partition module would contain that kind of information.
CU, Ingo
- Follow-Ups:
- [openbeosstorage] Re: API Extensions
- From: Tyler Dauwalder
Other related posts:
- » [openbeosstorage] Re: API Extensions
- » [openbeosstorage] Re: API Extensions
- » [openbeosstorage] Re: API Extensions
- » [openbeosstorage] Re: API Extensions
- » [openbeosstorage] Re: API Extensions
- » [openbeosstorage] Re: API Extensions
- » [openbeosstorage] Re: API Extensions
- » [openbeosstorage] Re: API Extensions
- » [openbeosstorage] Re: API Extensions
- » [openbeosstorage] Re: API Extensions
- » [openbeosstorage] Re: API Extensions
- » [openbeosstorage] Re: API Extensions
- » [openbeosstorage] Re: API Extensions
- » [openbeosstorage] Re: API Extensions
- » [openbeosstorage] Re: API Extensions
- » [openbeosstorage] Re: API Extensions
- » [openbeosstorage] API Extensions
- » [openbeosstorage] Re: API Extensions
- » [openbeosstorage] Re: API Extensions
- [openbeosstorage] Re: API Extensions
- From: Tyler Dauwalder