void
#ifdef _TMPROTOTYPES
_tmvtoc_errlog(_TCADEF,char *funcname)
#else
_tmvtoc_errlog(_TCARG,funcname)
_TCADEF;
char *funcname;
#endif
{
    _TCDECLPTR(TUX);
    _TCDECLPTR(GP);
    TMDEBUG(20,("> _tmvtoc_errlog(funcname %s)", funcname));
    switch(GP->_GP__gp_vtoc_errno) {
    case VTECONFIG:
    (void) userlog(_MHS_(LIBTUX_CAT,294,MHS_USERLOG,"ERROR: %s: FSCONFIG not or incorrectly set"),funcname);
    break;
    case VTECORPT:
    (void) userlog(_MHS_(LIBTUX_CAT,295,MHS_USERLOG,"ERROR: %s: corrupted VTOC or different release"),funcname);
    break;
    case VTEDIRINIT:
    (void) userlog(_MHS_(LIBTUX_CAT,296,MHS_USERLOG,"ERROR: %s: VTOC not initialized"),funcname);
    break;
    case VTENOSPACE:
    (void) userlog(_MHS_(LIBTUX_CAT,297,MHS_USERLOG,"ERROR: %s: no space can be allocated for disk table or for VTOC/UDL"),funcname);
    break;
    case VTEUNIX:
    if (errno == 0 && GET_UUNIXERR() == UREAD)
    (void) userlog(_MHS_(LIBTUX_CAT,298,MHS_USERLOG,"ERROR: %s: Read beyond initialized file boundary."),funcname);
    else if (errno == 0 && GET_UUNIXERR() == UWRITE)
    (void) userlog(_MHS_(LIBTUX_CAT,299,MHS_USERLOG,"ERROR: %s: Write beyond initialized file boundary."),funcname);
    else
     (void) userlog(_MHS_(LIBTUX_CAT,300,MHS_USERLOG,"ERROR: %s: UNIX sys call error - %d"),funcname,errno); 
    break;
    case VTEMFREE:
    (void) userlog(_MHS_(LIBTUX_CAT,301,MHS_USERLOG,"ERROR: %s: cannot free space"),funcname);
    break;
    case VTETBLNAME :
    (void) userlog(_MHS_(LIBTUX_CAT,302,MHS_USERLOG,"ERROR: %s: bad table name specified"),funcname);
    break;
    case VTEINVAL:
    (void) userlog(_MHS_(LIBTUX_CAT,303,MHS_USERLOG,"ERROR: %s: invalid arguments or request to function"),funcname);
    break;
    case VTEDISKNAME:
    (void) userlog(_MHS_(LIBTUX_CAT,304,MHS_USERLOG,"ERROR: %s: bad device name or index specified"),funcname);
    break;
    case VTEOVERLAP:
    (void) userlog(_MHS_(LIBTUX_CAT,305,MHS_USERLOG,"ERROR: %s: attempt to create overlapping devices"),funcname);
    break;
    case VTENOENTRY:
    (void) userlog(_MHS_(LIBTUX_CAT,306,MHS_USERLOG,"ERROR: %s: no entry remains to create device or table or open table"),funcname);
    break;
    case VTEBADOFFSET:
    (void) userlog(_MHS_(LIBTUX_CAT,1257,MHS_USERLOG,"ERROR: %s: bad value of _gp_fsoffset variable or supplied offset"),funcname);
    break;
    case VTEBADEV:
    (void) userlog(_MHS_(LIBTUX_CAT,308,MHS_USERLOG,"ERROR: %s: bad device type (not character special or regular)"),funcname);
    break;
    case VTELOCKED:
    (void) userlog(_MHS_(LIBTUX_CAT,309,MHS_USERLOG,"ERROR: %s: cannot obtain lock on VTOC"),funcname);
    break;
    default:
    (void) userlog(_MHS_(LIBTUX_CAT,310,MHS_USERLOG,"ERROR: %d: unknown vtoc error code"),GP->_GP__gp_vtoc_errno);
    }
    TMDEBUG(20,("< _tmvtoc_errlog(10) returns"));
    return;
}