Utility functions for a linked list
The name addNode2Head will be better as addNodeToHead. Using the number 2 for the word to is rather poor choice in a function name.
The function addNodeToHead can be simplified to:

sList *addNodeToHead(sList *psList, void *data)
{
   sList* node = newNode();
   node-&gt;data = data;

   // It doesn't matter what psList is. The new
   // node is now the head of the list.
   node-&gt;nextNode = psList;

   return node;
}

Given the simplified implementation of addNodeToHead, the function addHeadNode might be unnecessary.
Don't explicitly cast the return value of malloc. See Do I cast the result of malloc?

Instead of

sList *psList =(sList *) malloc(sizeof(sList));


use

sList *psList = malloc(sizeof(sList));

Always check the return value of malloc before proceeding to use it.

sList *newNode(void)
{
    sList *psList = malloc(sizeof(sList));
    if ( psList == NULL )
    {
       return NULL;
    }
    psList-&gt;nextNode = NULL;
    return psList;
}

Make sure that you check the value returned by the above function.

   sList* node = newNode();
   if ( node == NULL )
   {
      // Decide how you want to handle the error.
      // return NULL???
   }

   node-&gt;data = data;