I will continue to research EnumTable structures in C, but I thouht
someone might have a recommendation.
listing of code fragment begins here:
#ifndef LEXABUG
static EnumTable IoctlEnums[] = {
{ FIOCLEX, "FIOCLEX", 0 },
{ FIONCLEX, "FIONCLEX", 0 },
{ FIONREAD, "FIONREAD", 0 },
{ FIONBIO, "FIONBIO", 0 },
{ FIOASYNC, "FIOASYNC", 0 },
{ FIOSETOWN, "FIOSETOWN", 0 },
{ FIOGETOWN, "FIOGETOWN", 0 },
{ TIOCGPGRP, "TIOCGPGRP", 0 },
{ TIOCSPGRP, "TIOCSPGRP", 0 },
{ TIOCOUTQ, "TIOCOUTQ", 0 },
{ TIOCSTI, "TIOCSTI", 0 },
{ TIOCGWINSZ, "TIOCGWINSZ", 0 },
{ TIOCSWINSZ, "TIOCSWINSZ", 0 },
{ TIOCMGET, "TIOCMGET", 0 },
{ TIOCMBIS, "TIOCMBIS", 0 },
{ TIOCMBIC, "TIOCMBIC", 0 },
{ TIOCMSET, "TIOCMSET", 0 },
{ 0, (char *)0, 0 }
};
#else
static EnumTable IoctlEnums[] = {
{ 0, "FIOCLEX", 0 },
{ 0, "FIONCLEX", 0 },
{ 0, "FIONREAD", 0 },
{ 0, "FIONBIO", 0 },
{ 0, "FIOASYNC", 0 },
{ 0, "FIOSETOWN", 0 },
{ 0, "FIOGETOWN", 0 },
{ 0, "TCGETS", 0 },
{ 0, "TCSETS", 0 },
{ 0, "TCSETSW", 0 },
{ 0, "TCSETSF", 0 },
{ 0, "TCXONC", 0 },
{ 0, "TCFLSH", 0 },
{ 0, "TIOCSCTTY", 0 },
{ 0, "TIOCGPGRP", 0 },
{ 0, "TIOCSPGRP", 0 },
{ 0, "TIOCOUTQ", 0 },
{ 0, "TIOCSTI", 0 },
{ 0, "TIOCGWINSZ", 0 },
{ 0, "TIOCSWINSZ", 0 },
{ 0, "TIOCMGET", 0 },
{ 0, "TIOCMBIS", 0 },
{ 0, "TIOCMBIC", 0 },
{ 0, "TIOCMSET", 0 },
{ 0, "TIOCGSOFTCAR", 0 },
{ 0, "TIOCSSOFTCAR", 0 },
{ 0, (char *)0, 0 }
};
int initIoctlTable(void)
{
EnumTable *EnumTablePtr = IoctlEnums;
EnumTablePtr->value = FIOCLEX; EnumTablePtr ++;
EnumTablePtr->value = FIONCLEX; EnumTablePtr ++;
EnumTablePtr->value = FIONREAD; EnumTablePtr ++;
EnumTablePtr->value = FIONBIO; EnumTablePtr ++;
EnumTablePtr->value = FIOASYNC; EnumTablePtr ++;
EnumTablePtr->value = FIOSETOWN; EnumTablePtr ++;
EnumTablePtr->value = FIOGETOWN; EnumTablePtr ++;
EnumTablePtr->value = TCGETS; EnumTablePtr ++;
EnumTablePtr->value = TCSETS; EnumTablePtr ++;
EnumTablePtr->value = TCSETSW; EnumTablePtr ++;
EnumTablePtr->value = TCSETSF; EnumTablePtr ++;
EnumTablePtr->value = TCXONC; EnumTablePtr ++;
EnumTablePtr->value = TCFLSH; EnumTablePtr ++;
EnumTablePtr->value = TIOCSCTTY; EnumTablePtr ++;
EnumTablePtr->value = TIOCGPGRP; EnumTablePtr ++;
EnumTablePtr->value = TIOCSPGRP; EnumTablePtr ++;
EnumTablePtr->value = TIOCOUTQ; EnumTablePtr ++;
EnumTablePtr->value = TIOCSTI; EnumTablePtr ++;
EnumTablePtr->value = TIOCGWINSZ; EnumTablePtr ++;
EnumTablePtr->value = TIOCSWINSZ; EnumTablePtr ++;
EnumTablePtr->value = TIOCMGET; EnumTablePtr ++;
EnumTablePtr->value = TIOCMBIS; EnumTablePtr ++;
EnumTablePtr->value = TIOCMBIC; EnumTablePtr ++;
EnumTablePtr->value = TIOCMSET; EnumTablePtr ++;
EnumTablePtr->value = TIOCGSOFTCAR; EnumTablePtr ++;
EnumTablePtr->value = TIOCSSOFTCAR;
return 0;
}
#endif