rendered paste body {
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);
}
}