TEMU
4.4
The Terma Emulator
|
#include "temu-c/Support/Bitmanip.h"
#include "temu-c/Support/Buffer.h"
#include "temu-c/Support/Objsys.h"
#include <stdint.h>
Go to the source code of this file.
Data Structures | |
struct | temu_EthFrame |
struct | temu_MACIface |
struct | temu_PHYIface |
struct | temu_EthernetIface |
struct | temu_MDIOIface |
struct | temu_EthDelayIface |
Typedefs | |
typedef struct temu_PHYIface | temu_PHYIface |
typedef struct temu_MACIface | temu_MACIface |
typedef struct temu_EthernetIface | temu_EthernetIface |
Functions | |
TEMU_IFACE_REFERENCE_TYPE (temu_MAC) | |
TEMU_IFACE_REFERENCE_TYPE (temu_PHY) | |
TEMU_IFACE_REFERENCE_TYPE (temu_Ethernet) | |
TEMU_IFACE_REFERENCE_TYPE (temu_MDIO) | |
#define ETH_BCAST_ADDR UINT64_C(0xffffffffffff) |
#define ETH_CRC_MAGIC 0xC704DD7B |
#define ETH_CRC_POLY_BE 0x04c11db6 |
#define ETH_CRC_POLY_LE 0xedb88320 |
#define ETH_CRC_POLY_NORM 0x04C11DB7 |
#define ETH_CRC_POLY_REV 0xEDB88320 |
#define ETH_CRC_POLY_REV_RECIP 0x82608EDB |
#define ETH_ETHERTYPE_MIN 1536 |
#define TEMU_ETH_1000BASE_T_FD (1 << 13) |
#define TEMU_ETH_1000BASE_T_HD (1 << 12) |
#define TEMU_ETH_1000BASE_X_FD (1 << 15) |
#define TEMU_ETH_1000BASE_X_HD (1 << 14) |
#define TEMU_ETH_100BASE_T2_FD (1 << (10 - 8)) |
#define TEMU_ETH_100BASE_T2_HD (1 << (9 - 8)) |
#define TEMU_ETH_100BASE_T4 (1 << (15 - 8)) |
#define TEMU_ETH_100BASE_X_FD (1 << (14 - 8)) |
#define TEMU_ETH_100BASE_X_HD (1 << (13 - 8)) |
#define TEMU_ETH_10BASE_FD (1 << (12 - 8)) |
#define TEMU_ETH_10BASE_HD (1 << (11 - 8)) |
#define TEMU_ETH_802_1Q_MAX_FRAME_LENGTH 1522 |
#define TEMU_ETH_802_1Q_TAG_BYTES 4 |
#define TEMU_ETH_CRC_ERR 1 |
#define TEMU_ETH_CRC_LENGTH 4 |
#define TEMU_ETH_DELAY_IFACE_TYPE "temu::EthDelayIface" |
#define TEMU_ETH_ETH_CRC_NOT_SET (1 << 1) |
#define TEMU_ETH_INTERPACKET_GAP 12 |
#define TEMU_ETH_IP_CRC_NOT_SET (1 << 2) |
#define TEMU_ETH_IPV4_CRC_OFFSET (TEMU_ETH_PAYLOAD_OFFSET + 10) |
#define TEMU_ETH_IPV4_DSCP_ECN_OFFSET (TEMU_ETH_PAYLOAD_OFFSET + 1) |
#define TEMU_ETH_IPV4_DST_IP_OFFSET (TEMU_ETH_PAYLOAD_OFFSET + 16) |
#define TEMU_ETH_IPV4_FRAGMENTATION_INFO_OFFSET (TEMU_ETH_PAYLOAD_OFFSET + 6) |
#define TEMU_ETH_IPV4_PROTOCOL_OFFSET (TEMU_ETH_PAYLOAD_OFFSET + 9) |
#define TEMU_ETH_IPV4_SRC_IP_OFFSET (TEMU_ETH_PAYLOAD_OFFSET + 12) |
#define TEMU_ETH_IPV4_TOTAL_LENGTH_OFFSET (TEMU_ETH_PAYLOAD_OFFSET + 2) |
#define TEMU_ETH_IPV4_TTL_OFFSET (TEMU_ETH_PAYLOAD_OFFSET + 8) |
#define TEMU_ETH_IPV4_VERS_IHL_OFFSET (TEMU_ETH_PAYLOAD_OFFSET + 0) |
#define TEMU_ETH_LAYER1_HEADER_LENGTH (7 + 1 + 12 + 2) |
#define TEMU_ETH_LAYER2_HEADER_LENGTH (6 + 6 + 2) |
#define TEMU_ETH_MAX_FRAME_LENGTH 1518 |
#define TEMU_ETH_MAX_PAYLOAD 1500 |
#define TEMU_ETH_MIN_PAYLOAD 46 |
#define TEMU_ETH_NON_STANDARD_PREAMBLE (1 << 5) |
#define TEMU_ETH_PAYLOAD_OFFSET (6 + 6 + 2) |
#define TEMU_ETH_PREAMBLE_LENGTH_MASK (0xf << 6) |
#define TEMU_ETH_PREAMBLE_LENGTH_SHIFT 6 |
#define TEMU_ETH_TCP_CRC_NOT_SET (1 << 4) |
#define TEMU_ETH_UDP_CRC_NOT_SET (1 << 3) |
#define TEMU_ETHERNET_IFACE_TYPE "temu::EthernetIface" |
#define TEMU_ETHTYPE_802_1Q 0x8100 |
#define TEMU_ETHTYPE_ARP 0x0806 |
#define TEMU_ETHTYPE_IPV4 0x0800 |
#define TEMU_ETHTYPE_IPV6 0x86dd |
#define TEMU_ETHTYPE_PTP 0x88f7 |
#define TEMU_ETHTYPE_RARP 0x8035 |
#define TEMU_ETHTYPE_SRP 0x22ea |
#define TEMU_ETHTYPE_TTE_CTRL 0x891d |
#define TEMU_ETHTYPE_WAKE_ON_LAN 0x0842 |
#define TEMU_IP_PROT_TCP 0x06 |
#define TEMU_IP_PROT_UDP 0x11 |
#define TEMU_MAC_IFACE_TYPE "temu::MACIface" |
#define TEMU_MDIO_IFACE_TYPE "temu::MDIOIface" |
#define TEMU_PHY_IFACE_TYPE "temu::PHYIface" |
#define TEMU_TCP_CRC_OFFSET 16 |
#define TEMU_UDP_CRC_OFFSET 6 |
typedef struct temu_EthernetIface temu_EthernetIface |
typedef struct temu_MACIface temu_MACIface |
typedef struct temu_PHYIface temu_PHYIface |
TEMU_IFACE_REFERENCE_TYPE | ( | temu_Ethernet | ) |
TEMU_IFACE_REFERENCE_TYPE | ( | temu_MAC | ) |
TEMU_IFACE_REFERENCE_TYPE | ( | temu_MDIO | ) |
TEMU_IFACE_REFERENCE_TYPE | ( | temu_PHY | ) |