So, after a fair amount of work (not huge ), I'm getting towards an 0.1 release of Xarnos baselib, which will be the common parts of the C library between kernel & user mode. This is *not* a full c library, but does attempt to be standard compliant where it implements standard functions.
Things you will not find (and which I will not put in):
- malloc() or anything that depends on it.
- use of static/global variables.
- floating point code.
- I/O functions.
These belong in a higher-level C library, which will be built on top of baselib and will be just for user mode (not for the kernel).
Things you will find:
- a slightly tested printf backend (called pfmt) which works well.
- long long division support.
- bitwise operations (such as find first set bit, sum bits in word).
- more string functions than you can shake a stick at.
Some code is unfinished, any which does not have tests should be considered not-finished.
So far, the code is only available in a subversion repository over on sourceforge, and is pretty specific to my OS (headers and such). It will work as a complete unit, but what I want to know is - is there any interest in splitting certain parts away from the rest and making them portable for use in any OS? Do any of the parts look like they would have a general appeal to OSDevers and others?
I'm trying not to overlap work with projects such as PDCLib but some overlap is necessary since we are working to the same standard. The goals for this project however are completely different: I aim to go beyond what the standard says and produce an environment that has all the functions which I feel are useful. I also aim to cover "common" functions such as those found in BSD distributions but not in the standard.
The main idea is that I invite you to have a poke around and let me know what you think, what direction should I take with this project? Obviously the main aim will be to provide a library of functions on top of which I can build my complete c library and my kernel, but if the work can be useful to anyone else in the process then I am all for it.
License: MIT for my code, BSD & Public domain for inclusions
Repository: http://svn.sourceforge.net/viewvc/xarnos/trunk/
PS. If this should go elsewhere, I apologise. Please feel free to move/delete/flame as appropriate.