Subject: Re: qtopia
To: Christos Zoulas <christos@zoulas.com>
From: Garrett D'Amore <garrett_damore@tadpole.com>
List: tech-kern
Date: 06/06/2006 15:17:06
Christos Zoulas wrote:
> On Jun 6,  2:29pm, thorpej@shagadelic.org (Jason Thorpe) wrote:
> -- Subject: Re: qtopia
>
> | 
> | On Jun 6, 2006, at 12:55 PM, Christos Zoulas wrote:
> | 
> | > shouldn't the pointer be const void *?
> | 
> | No, because the externalized version of the plist is a C string.  I  
> | guess it could be const void * for some future time when we have  
> | binary plists.
>
> Yes, this is what I meant. You just need a buffer and a size; you
> should be passing that buffer to the internalize function. Maybe
> add a version/encoding-type fields for good measure so that we
> won't have to version the ioctl...
>
> christos
>   

Versioning would be nice.  That should be in the "header" of the encoded
plist itself, IMO.

I guess you could put it in the XML itself.

I'd really like to have a binary plist format -- passing around large
ascii representations of data seems "ugly" to me.  Especially across a
kernel/user boundary.

This would also discourage folks from trying to "inspect" or "inspect &
modify" encoded plists.  The encoded (packed) plist format should be closed.

At some level, I think it is also true that versioning would not be
needed if the API boundary for applications was at the library level.  
But since we provide compatibility for all static binaries, *every*
interface like this has to be versioned.  Gak.

-- 
Garrett D'Amore, Principal Software Engineer
Tadpole Computer / Computing Technologies Division,
General Dynamics C4 Systems
http://www.tadpolecomputer.com/
Phone: 951 325-2134  Fax: 951 325-2191