Exemplo n.º 1
0
void
slip_init (slip_t *u, small_uint_t port, const char *name, int prio,
           mem_pool_t *pool, unsigned int khz, unsigned long baud)
{
    u->netif.interface = &slip_interface;
    u->netif.name = name;
    u->netif.arp = 0;
    u->netif.mtu = 552;
    u->netif.type = NETIF_SLIP;
    u->netif.bps = baud;
    u->pool = pool;
    u->port = port;
    u->khz = khz;
    buf_queue_init (&u->inq, u->inqdata, sizeof (u->inqdata));
    buf_queue_init (&u->outq, u->outqdata, sizeof (u->outqdata));

    /* Setup baud rate generator. */
    setup_baud_rate (u->port, u->khz, baud);

    /* Create slip receive task. */
    task_create (slip_receiver, u, "slipr", prio + 1,
                 u->rstack, sizeof (u->rstack));

#ifdef TRANSMIT_IRQ
    /* Create slip transmit task. */
    task_create (slip_transmitter, u, "slipt", prio,
                 u->tstack, sizeof (u->tstack));
#endif
}
Exemplo n.º 2
0
/*
 * Set up the network interface.
 */
void eth_init(eth_t *u, const char *name, int prio, mem_pool_t *pool,
		struct _arp_t *arp, const unsigned char *macaddr) {
	u->netif.interface = &eth_interface;
	u->netif.name = name;
	u->netif.arp = arp;
	u->netif.mtu = ETH_MTU;
	u->netif.type = NETIF_ETHERNET_CSMACD;
	u->netif.bps = 100000;
	memcpy(&u->netif.ethaddr, macaddr, 6);

	u->pool = pool;
	u->rxbuf = (unsigned char*) ((unsigned) (u->rxbuf_data + 7) & ~7);
	u->txbuf = (unsigned char*) ((unsigned) (u->txbuf_data + 7) & ~7);
	u->rxbuf_physaddr = (unsigned) u->rxbuf;
	u->txbuf_physaddr = (unsigned) u->txbuf;

	buf_queue_init(&u->inq, u->inqdata, sizeof(u->inqdata));
	buf_queue_init(&u->outq, u->outqdata, sizeof(u->outqdata));
	/*u->rxbuf_data[0] = 1;
	 u->rxbuf_data[1] = 2;
	 u->rxbuf_data[2] = 3;
	 u->rxbuf_data[3] = 4;
	 u->rxbuf_data[4] = 5;
	 u->rxbuf_data[5] = 6;
	 u->rxbuf_data[6] = 7;
	 u->rxbuf_data[7] = 8;
	 debug_printf("buf addres rxbuf_data = 0x%08X\nrx_uf = 0x%08X\nphysaddr = 0x%08X\n", &u->rxbuf_data[0], u->rxbuf, u->rxbuf_physaddr);
	 unsigned *dst;
	 dst = u->rxbuf_physaddr;
	 debug_printf("*dst = 0x%08X (0x%08X)\n", *dst, dst);
	 */
	/* Initialize hardware. */
	chip_init(u);

	/* Create interrupt task. */
	u->task_eth_handler = task_create(interrupt_task, u, "eth", prio, u->stack,
			sizeof(u->stack));
}
Exemplo n.º 3
0
	transceiver(uint8 duplex):m_duplex(duplex),
                            m_handle_rx((timer_handle_type)-1)
    {
        buf_queue_init(&m_buf_queue);
        tx_status_set(TX_STAT_IDLE);
    };