void * è un tipo che non vuol dire nulla; indica un generico puntatore, e in questo genere di funzioni si suppone che il programmatore sappia quello che faccia quando lo casta ad altri tipi di puntatore; in questo caso specifico in realtà poi è usato come un intero (dato che in fondo i puntatori sono degli interi), per cui il codice di errore è convertito "a pedate" in un void * e viceversa.