{ ROBO_ARL_SEARCH_CTRL_STRUC ctl; ROBO_ARL_SEARCH_RESULT_STRUC ret; ctl.ARLStart=1; robo_write16(&robo, ROBO_ARLIO_PAGE, ROBO_ARL_SEARCH_CTRL, *(u8 *)&ctl); while (1) { u16 addr = robo_read16(&robo, ROBO_ARLIO_PAGE, ROBO_ARL_SEARCH_ADDR); robo_read(&robo, ROBO_ARLIO_PAGE, ROBO_ARL_SEARCH_RESULT, (u16 *)&ret, 4); if (!ret.ctrl.valid) break; printf("%04x> ",addr); printf("mac: %02x:%02x:%02x:%02x:%02x:%02x ", ret.mac.macBytes[5], ret.mac.macBytes[4], ret.mac.macBytes[3], ret.mac.macBytes[2], ret.mac.macBytes[1], ret.mac.macBytes[0]); printf("port: %02x vid: %02x age: %02x valid: %02x\n", ret.ctrl.portID, ret.ctrl.vid, ret.ctrl.age, ret.ctrl.valid); } }