Index: uspace/lib/posix/stdlib.c
===================================================================
--- uspace/lib/posix/stdlib.c	(revision fc3680e2adf3ddc38c91e5a91a5dc4290965bf91)
+++ uspace/lib/posix/stdlib.c	(revision 087c87980bf17015f89d56dc5abfb18a9c54e33b)
@@ -31,5 +31,5 @@
  * @{
  */
-/** @file
+/** @file Standard library definitions.
  */
 
@@ -59,4 +59,5 @@
 
 /**
+ * Integer absolute value.
  * 
  * @param i Input value.
@@ -69,4 +70,5 @@
 
 /**
+ * Long integer absolute value.
  * 
  * @param i Input value.
@@ -79,4 +81,5 @@
 
 /**
+ * Long long integer absolute value.
  * 
  * @param i Input value.
@@ -88,4 +91,11 @@
 }
 
+/**
+ * Compute the quotient and remainder of an integer division.
+ *
+ * @param numer Numerator.
+ * @param denom Denominator.
+ * @return Quotient and remainder packed into structure.
+ */
 posix_div_t posix_div(int numer, int denom)
 {
@@ -93,4 +103,11 @@
 }
 
+/**
+ * Compute the quotient and remainder of a long integer division.
+ *
+ * @param numer Numerator.
+ * @param denom Denominator.
+ * @return Quotient and remainder packed into structure.
+ */
 posix_ldiv_t posix_ldiv(long numer, long denom)
 {
@@ -98,4 +115,11 @@
 }
 
+/**
+ * Compute the quotient and remainder of a long long integer division.
+ *
+ * @param numer Numerator.
+ * @param denom Denominator.
+ * @return Quotient and remainder packed into structure.
+ */
 posix_lldiv_t posix_lldiv(long long numer, long long denom)
 {
@@ -109,5 +133,4 @@
  * @param elem2 Second element to compare.
  * @param compare Comparison function without userdata parameter.
- *
  * @return Relative ordering of the elements.
  */
@@ -121,8 +144,8 @@
  * Array sorting utilizing the quicksort algorithm.
  *
- * @param array
- * @param count
- * @param size
- * @param compare
+ * @param array Array of elements to sort.
+ * @param count Number of elements in the array.
+ * @param size Width of each element.
+ * @param compare Decides relative ordering of two elements.
  */
 void posix_qsort(void *array, size_t count, size_t size,
@@ -171,9 +194,10 @@
 /**
  * Retrieve a value of the given environment variable.
+ *
  * Since HelenOS doesn't support env variables at the moment,
  * this function always returns NULL.
  *
- * @param name
- * @return Always NULL.
+ * @param name Name of the variable.
+ * @return Value of the variable or NULL if such variable does not exist.
  */
 char *posix_getenv(const char *name)
@@ -195,7 +219,10 @@
 
 /**
- *
- * @param string String to be passed to a command interpreter.
- * @return
+ * Issue a command.
+ *
+ * @param string String to be passed to a command interpreter or NULL.
+ * @return Termination status of the command if the command is not NULL,
+ *     otherwise indicate whether there is a command interpreter (non-zero)
+ *     or not (zero).
  */
 int posix_system(const char *string) {
@@ -205,10 +232,14 @@
 
 /**
- * 
- * @param name
- * @param resolved
- * @return
- */
-char *posix_realpath(const char *name, char *resolved)
+ * Resolve absolute pathname.
+ * 
+ * @param name Pathname to be resolved.
+ * @param resolved Either buffer for the resolved absolute pathname or NULL.
+ * @return On success, either resolved (if it was not NULL) or pointer to the
+ *     newly allocated buffer containing the absolute pathname (if resolved was
+ *     NULL). Otherwise NULL.
+ *
+ */
+char *posix_realpath(const char *restrict name, char *restrict resolved)
 {
 	#ifndef PATH_MAX
@@ -254,6 +285,6 @@
  * its native representation. See posix_strtold().
  *
- * @param nptr
- * @return
+ * @param nptr String representation of a floating-point number.
+ * @return Double-precision number resulting from the string conversion.
  */
 double posix_atof(const char *nptr)
@@ -266,7 +297,8 @@
  * its native representation. See posix_strtold().
  *
- * @param nptr
- * @param endptr
- * @return
+ * @param nptr String representation of a floating-point number.
+ * @param endptr Pointer to the final part of the string which
+ *     was not used for conversion.
+ * @return Single-precision number resulting from the string conversion.
  */
 float posix_strtof(const char *restrict nptr, char **restrict endptr)
@@ -279,7 +311,8 @@
  * its native representation. See posix_strtold().
  *
- * @param nptr
- * @param endptr
- * @return
+ * @param nptr String representation of a floating-point number.
+ * @param endptr Pointer to the final part of the string which
+ *     was not used for conversion.
+ * @return Double-precision number resulting from the string conversion.
  */
 double posix_strtod(const char *restrict nptr, char **restrict endptr)
@@ -289,7 +322,8 @@
 
 /**
- *
- * @param size
- * @return
+ * Allocate memory chunk.
+ *
+ * @param size Size of the chunk to allocate.
+ * @return Either pointer to the allocated chunk or NULL if not possible.
  */
 void *posix_malloc(size_t size)
@@ -299,8 +333,9 @@
 
 /**
- *
- * @param nelem
- * @param elsize
- * @return
+ * Allocate memory for an array of elements.
+ *
+ * @param nelem Number of elements in the array.
+ * @param elsize Size of each element.
+ * @return Either pointer to the allocated array or NULL if not possible.
  */
 void *posix_calloc(size_t nelem, size_t elsize)
@@ -310,8 +345,9 @@
 
 /**
- *
- * @param ptr
- * @param size
- * @return
+ * Reallocate memory chunk to a new size.
+ *
+ * @param ptr Memory chunk to reallocate. Might be NULL.
+ * @param size Size of the reallocated chunk. Might be zero.
+ * @return Either NULL or the pointer to the newly reallocated chunk.
  */
 void *posix_realloc(void *ptr, size_t size)
@@ -321,6 +357,7 @@
 
 /**
- *
- * @param ptr
+ * Free allocated memory chunk.
+ *
+ * @param ptr Memory chunk to be freed.
  */
 void posix_free(void *ptr)
@@ -343,9 +380,11 @@
 
 /**
- * Should read system load statistics. Not supported. Always returns -1.
- *
- * @param loadavg
- * @param nelem
- * @return
+ * Get system load average statistics.
+ *
+ * Not supported. Always returns -1.
+ *
+ * @param loadavg Array where the load averages shall be placed.
+ * @param nelem Maximum number of elements to be placed into the array.
+ * @return Number of elements placed into the array on success, -1 otherwise.
  */
 int bsd_getloadavg(double loadavg[], int nelem)
Index: uspace/lib/posix/stdlib.h
===================================================================
--- uspace/lib/posix/stdlib.h	(revision fc3680e2adf3ddc38c91e5a91a5dc4290965bf91)
+++ uspace/lib/posix/stdlib.h	(revision 087c87980bf17015f89d56dc5abfb18a9c54e33b)
@@ -31,5 +31,5 @@
  * @{
  */
-/** @file
+/** @file Standard library definitions.
  */
 
@@ -56,5 +56,5 @@
 extern long long posix_llabs(long long i);
 
-/* Integer division */
+/* Integer Division */
 
 typedef struct {
@@ -80,11 +80,8 @@
     size_t nmemb, size_t size, int (*compar)(const void *, const void *));
 
-
 /* Environment Access */
 extern char *posix_getenv(const char *name);
 extern int posix_putenv(char *string);
-
 extern int posix_system(const char *string);
-
 
 /* Symbolic Links */
@@ -101,5 +98,4 @@
 extern long int posix_atol(const char *nptr);
 extern long long int posix_atoll(const char *nptr);
-
 extern long int posix_strtol(const char *restrict nptr,
     char **restrict endptr, int base);
@@ -110,5 +106,4 @@
 extern unsigned long long int posix_strtoull(
     const char *restrict nptr, char **restrict endptr, int base);
-
 
 /* Memory Allocation */
Index: uspace/lib/posix/stdlib/strtol.c
===================================================================
--- uspace/lib/posix/stdlib/strtol.c	(revision fc3680e2adf3ddc38c91e5a91a5dc4290965bf91)
+++ uspace/lib/posix/stdlib/strtol.c	(revision 087c87980bf17015f89d56dc5abfb18a9c54e33b)
@@ -30,5 +30,5 @@
  * @{
  */
-/** @file
+/** @file Backend for integer conversions.
  */
 
@@ -42,6 +42,11 @@
 #include "../errno.h"
 
-// TODO: documentation
-
+/**
+ * Decides whether a digit belongs to a particular base.
+ *
+ * @param c Character representation of the digit.
+ * @param base Base against which the digit shall be tested.
+ * @return True if the digit belongs to the base, false otherwise.
+ */
 static inline bool is_digit_in_base(int c, int base)
 {
@@ -54,4 +59,11 @@
 }
 
+/**
+ * Derive a digit from its character representation.
+ *
+ * @param c Character representation of the digit.
+ * @param base Base into which the digit belongs to.
+ * @return Digit value represented by an integer.
+ */
 static inline int get_digit_in_base(int c, int base)
 {
@@ -63,4 +75,19 @@
 }
 
+/**
+ * Backend for all integer conversion functions. Can be configured by arguments
+ * to convert both signed and unsigned integers of various sizes.
+ *
+ * @param nptr Input string.
+ * @param endptr If non-NULL, *endptr is set to the position of the first
+ *     unrecognized character.
+ * @param base Expected base of the string representation.
+ * @param min_value Lower bound for the resulting conversion.
+ * @param max_value Upper bound for the resulting conversion.
+ * @param out_negative Either NULL for unsigned conversion or a pointer to the
+ *     bool variable into which shall be placed the negativity of the resulting
+ *     converted value.
+ * @return Result of the conversion.
+ */
 static inline unsigned long long internal_strtol(
     const char *restrict nptr, char **restrict endptr, int base,
@@ -188,4 +215,10 @@
 }
 
+/**
+ * Convert a string to an integer.
+ *
+ * @param nptr Input string.
+ * @return Result of the conversion.
+ */
 int posix_atoi(const char *nptr)
 {
@@ -197,4 +230,10 @@
 }
 
+/**
+ * Convert a string to a long integer.
+ *
+ * @param nptr Input string.
+ * @return Result of the conversion.
+ */
 long posix_atol(const char *nptr)
 {
@@ -206,4 +245,10 @@
 }
 
+/**
+ * Convert a string to a long long integer.
+ *
+ * @param nptr Input string.
+ * @return Result of the conversion.
+ */
 long long posix_atoll(const char *nptr)
 {
@@ -215,4 +260,13 @@
 }
 
+/**
+ * Convert a string to a long integer.
+ *
+ * @param nptr Input string.
+ * @param endptr Pointer to the final part of the string which
+ *     was not used for conversion.
+ * @param base Expected base of the string representation.
+ * @return Result of the conversion.
+ */
 long posix_strtol(const char *restrict nptr, char **restrict endptr, int base)
 {
@@ -224,4 +278,13 @@
 }
 
+/**
+ * Convert a string to a long long integer.
+ *
+ * @param nptr Input string.
+ * @param endptr Pointer to the final part of the string which
+ *     was not used for conversion.
+ * @param base Expected base of the string representation.
+ * @return Result of the conversion.
+ */
 long long posix_strtoll(
     const char *restrict nptr, char **restrict endptr, int base)
@@ -234,4 +297,13 @@
 }
 
+/**
+ * Convert a string to an unsigned long integer.
+ *
+ * @param nptr Input string.
+ * @param endptr Pointer to the final part of the string which
+ *     was not used for conversion.
+ * @param base Expected base of the string representation.
+ * @return Result of the conversion.
+ */
 unsigned long posix_strtoul(
     const char *restrict nptr, char **restrict endptr, int base)
@@ -243,4 +315,13 @@
 }
 
+/**
+ * Convert a string to a an unsigned long long integer.
+ *
+ * @param nptr Input string.
+ * @param endptr Pointer to the final part of the string which
+ *     was not used for conversion.
+ * @param base Expected base of the string representation.
+ * @return Result of the conversion.
+ */
 unsigned long long posix_strtoull(
     const char *restrict nptr, char **restrict endptr, int base)
@@ -249,6 +330,4 @@
 }
 
-
 /** @}
  */
-
Index: uspace/lib/posix/stdlib/strtold.c
===================================================================
--- uspace/lib/posix/stdlib/strtold.c	(revision fc3680e2adf3ddc38c91e5a91a5dc4290965bf91)
+++ uspace/lib/posix/stdlib/strtold.c	(revision 087c87980bf17015f89d56dc5abfb18a9c54e33b)
@@ -30,5 +30,5 @@
  * @{
  */
-/** @file
+/** @file Backend for floating point conversions.
  */
 
@@ -55,5 +55,5 @@
 #endif
 
-// TODO: clean up, documentation
+// TODO: clean up
 
 // FIXME: ensure it builds and works on all platforms
@@ -116,4 +116,11 @@
 };
 
+/**
+ * Decides whether the argument is still in range representable by
+ * long double or not.
+ *
+ * @param num Floating point number to be checked.
+ * @return True if the argument is out of range, false otherwise.
+ */
 static inline bool out_of_range(long double num)
 {
@@ -127,5 +134,5 @@
  * @param base Number to be multiplied.
  * @param exponent Base 5 exponent.
- * @return base multiplied by 5**exponent
+ * @return base multiplied by 5**exponent.
  */
 static long double mul_pow5(long double base, int exponent)
@@ -173,5 +180,5 @@
  * @param base Number to be multiplied.
  * @param exponent Base 2 exponent.
- * @return base multiplied by 2**exponent
+ * @return base multiplied by 2**exponent.
  */
 static long double mul_pow2(long double base, int exponent)
@@ -212,5 +219,14 @@
 }
 
-
+/**
+ * Convert decimal string representation of the floating point number.
+ * Function expects the string pointer to be already pointed at the first
+ * digit (i.e. leading optional sign was already consumed by the caller).
+ * 
+ * @param sptr Pointer to the storage of the string pointer. Upon successful
+ *     conversion, the string pointer is updated to point to the first
+ *     unrecognized character.
+ * @return An approximate representation of the input floating-point number.
+ */
 static long double parse_decimal(const char **sptr)
 {
@@ -315,4 +331,10 @@
 }
 
+/**
+ * Derive a hexadecimal digit from its character representation.
+ * 
+ * @param ch Character representation of the hexadecimal digit.
+ * @return Digit value represented by an integer.
+ */
 static inline int hex_value(char ch)
 {
@@ -325,4 +347,6 @@
 
 /**
+ * Get the count of leading zero bits up to the maximum of 3 zero bits.
+ *
  * @param val Integer value.
  * @return How many leading zero bits there are. (Maximum is 3)
@@ -339,4 +363,15 @@
 }
 
+/**
+ * Convert hexadecimal string representation of the floating point number.
+ * Function expects the string pointer to be already pointed at the first
+ * digit (i.e. leading optional sign and 0x prefix were already consumed
+ * by the caller).
+ *
+ * @param sptr Pointer to the storage of the string pointer. Upon successful
+ *     conversion, the string pointer is updated to point to the first
+ *     unrecognized character.
+ * @return Representation of the input floating-point number.
+ */
 static long double parse_hexadecimal(const char **sptr)
 {
@@ -567,3 +602,2 @@
 /** @}
  */
-
