>From: "Pavol Droba" <[EMAIL PROTECTED]> > On Mon, Nov 25, 2002 at 02:47:54PM +0100, Terje Sletteb? wrote: > > > How did you do it on the ARM? As I understand, it requires word-alignment > > for words (and half-word alignment for half-words, if that is supported on > > the given ARM version). > > > Well it is probably a conjuntion of luck and the kind of data we were working > with. As I have mentioned before, offset_cast was used mostly for network > packet analysis. And fortunately almost all network protocol structures > have correct aligmnent. So we were casting only to correct offsets :)
Ah, yes, I was thinking of that, too. That's probably designed deliberately that way. > > > I have mentioned before, that binary analysis could be done also using a > > > more > > > complicated framework. Would it make sense to create one? > > > > > What does it do? > > The framework I'm proposing should allow user to specify a structure layout > ( like what field starts where and what type if have ). Then there would > be a kind of possibly hidden management which would do nescesary copy-in and > copy-out operations. > > I can imagine it should be something like this: > > void modify_binary_header( void* pData ) > { > binary_struct b; > b.add_field<int>( 0, "field1" ); > b.add_field<char>( 4, "field2" ); > b.add_field<int>( 5, "field3" ); > > b.map_to_binary( pData, offset ); > > b["field1"]=b["field2"]*2; > } > > Please consider this as very preliminary example, just to show a desired functionality. > Construction of tructure can be probably done in some better way using static templates. > > Idea is that binary_struct would be responsible to some sort of safe copying ( possibly byte-by-byte ) > of binary data into/out from the internal field representation. It can provide also some > other functionality like byte order corretion or handling of sub-byte fields ( something what > is not aligned to byte boundary ) > > Well, this is my idea how to resolve such a problem where simple mapping using offset_cast > is not sufficient. Aha, I understand. It's an interesting proposal. I guess it would still require some way of detecting, or specifying, alignment requirements (to avoid doing it completely pessimistic, by only reading a byte at a time). Regards, Terje _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost