Revision 067d01de hw/eepro100.c

b/hw/eepro100.c
1496 1496
    } else if (size < 64 && (s->configuration[7] & 1)) {
1497 1497
        /* Short frame and configuration byte 7/0 (discard short receive) set:
1498 1498
         * Short frame is discarded */
1499
        logout("%p received short frame (%d byte)\n", s, size);
1499
        logout("%p received short frame (%zu byte)\n", s, size);
1500 1500
        s->statistics.rx_short_frame_errors++;
1501 1501
        //~ return -1;
1502 1502
    } else if ((size > MAX_ETH_FRAME_SIZE + 4) && !(s->configuration[18] & 8)) {
1503 1503
        /* Long frame and configuration byte 18/3 (long receive ok) not set:
1504 1504
         * Long frames are discarded. */
1505
        logout("%p received long frame (%d byte), ignored\n", s, size);
1505
        logout("%p received long frame (%zu byte), ignored\n", s, size);
1506 1506
        return -1;
1507 1507
    } else if (memcmp(buf, s->macaddr, 6) == 0) {       // !!!
1508 1508
        /* Frame matches individual address. */
1509 1509
        /* TODO: check configuration byte 15/4 (ignore U/L). */
1510
        TRACE(RXTX, logout("%p received frame for me, len=%d\n", s, size));
1510
        TRACE(RXTX, logout("%p received frame for me, len=%zu\n", s, size));
1511 1511
    } else if (memcmp(buf, broadcast_macaddr, 6) == 0) {
1512 1512
        /* Broadcast frame. */
1513
        TRACE(RXTX, logout("%p received broadcast, len=%d\n", s, size));
1513
        TRACE(RXTX, logout("%p received broadcast, len=%zu\n", s, size));
1514 1514
        rfd_status |= 0x0002;
1515 1515
    } else if (buf[0] & 0x01) { // !!!
1516 1516
        /* Multicast frame. */
1517
        TRACE(RXTX, logout("%p received multicast, len=%d\n", s, size));
1517
        TRACE(RXTX, logout("%p received multicast, len=%zu\n", s, size));
1518 1518
        /* TODO: check multicast all bit. */
1519 1519
        assert(!(s->configuration[21] & BIT(3)));
1520 1520
        int mcast_idx = compute_mcast_idx(buf);
......
1524 1524
        rfd_status |= 0x0002;
1525 1525
    } else if (s->configuration[15] & 1) {
1526 1526
        /* Promiscuous: receive all. */
1527
        TRACE(RXTX, logout("%p received frame in promiscuous mode, len=%d\n", s, size));
1527
        TRACE(RXTX, logout("%p received frame in promiscuous mode, len=%zu\n", s, size));
1528 1528
        rfd_status |= 0x0004;
1529 1529
    } else {
1530
        TRACE(RXTX, logout("%p received frame, ignored, len=%d,%s\n", s, size,
1530
        TRACE(RXTX, logout("%p received frame, ignored, len=%zu,%s\n", s, size,
1531 1531
              nic_dump(buf, size)));
1532 1532
        return size;
1533 1533
    }

Also available in: Unified diff