On Mon, 19 Nov 2012 11:53:23 +0100, Jakub Jermar <[email protected]> wrote:
Hi Dominik,
On 17.11.2012 21:46, Dominik Taborsky wrote:
you may remember I offered CRC32 implementation in the summer. I didn't
get much of a response, so I'm trying again.
Heh, another forgotten patch? If that is the case... sorry for letting
it get lost.
It's fine. I'm just getting used to open-source dev...
One possible issue here could be that the patch adds new functionality,
but does not make the other parts of the code use it.
Didn't notice any other code uses it. I discussed this with Jiri Svoboda,
I think, when he discarded the CRC from his networking stack while
refactoring it. So I wrote it myself.
Here is a new version of it. I added the ability to compute CRC over
non-continuous data (like linked lists). This implementation is the one
mostly used. It differs from the one in Ext4.
So who are the clients of this new functionality. Do we already have
some of them in HelenOS?
Not yet. But I'm (slowly) working on GPT implementation which needs it.
In the past, we had some licensing problems with similar functions. For
example, we had to remove some of the ext4 checksums and hashes code
because it was taken directly from Linux. I'd therefore like to find out
more about the origin of this patch. Did you write it entirely yourself
or did you use some other source also?
I got my inspiration from other sources, but I wrote it myself. I put two
references in the code comments - one for theory, one for the practical
implementation at OSdev. But I wrote it myself (except that CRC table,
which is the same everywhere, so I doubt it needs me to recompute the
numbers myself :-) ).
Also inform me how to proceed with actually getting the code into
mainline - is this patch enough for you or should I push from my clone
branch as the HelenOS wiki says or something else?
We can accept contributions of various sizes and formats (a branch or a
branch directive being the preferred ones). The point is that they
should be useful in some meaningful way.
Since it's just a small patch (two files added, one Makefile modified), I
think the patch itself is sufficient.
Also, when you are at implementing this new functionality, you may be
also interested in the following ticket:
#496 Provide library implementations for common CRC's
http://trac.helenos.org/ticket/496
The ticket basically wants all already used CRC-16 etc. implementations
be identified and extracted into a library. As a matter of working on
this ticket, CRC-16-ANSI (the one removed from Ext4) could be
independently implemented and added.
That would be a nice solution. The ticket mentions it could be in a
standalone library OR libc itself.
I can make a new library if we can agree on it, but I won't be adding
other CRC implementations. I just need this one and then I have enough of
other work in HelenOS... :-)
So just let me know - is this patch enough, or should I make a completely
new library and possibly make a whole new branch?
Dominik
Jakub
_______________________________________________
HelenOS-devel mailing list
[email protected]
http://lists.modry.cz/cgi-bin/listinfo/helenos-devel
_______________________________________________
HelenOS-devel mailing list
[email protected]
http://lists.modry.cz/cgi-bin/listinfo/helenos-devel