int user_free_cp(void **user)
The user has to free all the data structures within user, and also free user itself. The user can use the built-in macro FREE that checks the existence of a pointer before freeing it.
| void **user | INOUT | Pointer to the user-defined data structure (should be NULL on exit). | 
| USER_ERROR | Ignored. | 
| USER_SUCCESS | The user freed all data structures. | 
| USER_DEFAULT | There is nothing to be freed. |