#include int main(int argc, char *argv[]) { size_t i; for (i = 0; i < (sizeof(fxo_modes) / sizeof(struct fxo_mode)); i++) { if (fxo_modes[i].name == NULL) break; int reg16 = 0, reg26 = 0, reg30 = 0, reg31 = 0x20; char ring_osc[BUFSIZ] = "", ring_x[BUFSIZ] = ""; reg16 |= (fxo_modes[i].ohs << 6); reg16 |= (fxo_modes[i].rz << 1); reg16 |= (fxo_modes[i].rt); reg26 |= (fxo_modes[i].dcv << 6); reg26 |= (fxo_modes[i].mini << 4); reg26 |= (fxo_modes[i].ilim << 1); reg30 = (fxo_modes[i].acim); reg31 |= (fxo_modes[i].ohs2 << 3); if (fxo_modes[i].ring_osc) snprintf(ring_osc, BUFSIZ, "ring_osc=%04X", fxo_modes[i].ring_osc); if (fxo_modes[i].ring_x) snprintf(ring_x, BUFSIZ, "ring_x=%04X", fxo_modes[i].ring_x); printf("%-15s\treg16=%02X\treg26=%02X\treg30=%02X\t" "reg31=%02X\t%s\t%s\n", fxo_modes[i].name, reg16, reg26, reg30, reg31, ring_osc, ring_x); } return 0; }