Exemplo n.º 1
0
static int
net_cs8900a_setup (struct device_desc *dev)
{
	int i;
	int enough = 0;
	struct net_cs8900a_io *io;
	struct device_interrupt *intr = &dev->intr;

	dev->fini = net_cs8900a_fini;
	dev->reset = net_cs8900a_reset;
	dev->update = net_cs8900a_update;
	dev->read_halfword = net_cs8900a_read_halfword;
	dev->write_halfword = net_cs8900a_write_halfword;

	io = (struct net_cs8900a_io *)
		malloc (sizeof (struct net_cs8900a_io));
	memset (io, 0, sizeof (struct net_cs8900a_io));
	if (io == NULL)
		return 1;
	dev->data = (void *) io;

	net_cs8900a_reset (dev);

	/* see if we need to set default values.
	 * */
	set_device_default (dev, cs8900a_net_def);

	int id; 
	create_thread_scheduler(10000,Periodic_sched,net_cs8900a_update, (void*)dev, &id);

	for (i = 0; i < MAX_DEVICE_NUM; i++) {
		if (cs8900a_devs[i] == NULL) {
			cs8900a_devs[i] = dev;
			io->index = i;
			enough = 1;
			break;
		}
	}
	if (enough == 0)
		return 1;

	return 0;
}
static int
net_s3c4510b_setup (struct device_desc *dev)
{
	int i;
	int enough = 0;
	struct net_s3c4510b_io *io;
	struct device_interrupt *intr = &dev->intr;

	dev->fini = net_s3c4510b_fini;
	dev->reset = net_s3c4510b_reset;
	dev->update = net_s3c4510b_update;
	dev->read_word = net_s3c4510b_read_word;
	dev->write_word = net_s3c4510b_write_word;

	io = (struct net_s3c4510b_io *)
		malloc (sizeof (struct net_s3c4510b_io));
	memset (io, 0, sizeof (struct net_s3c4510b_io));
	if (io == NULL)
		return 1;
	dev->data = (void *) io;

	net_s3c4510b_reset (dev);

	/* see if we need to set default values.
	 * */
	set_device_default (dev, s3c4510b_net_def);

	for (i = 0; i < MAX_DEVICE_NUM; i++) {
		if (s3c4510b_devs[i] == NULL) {
			s3c4510b_devs[i] = dev;
			enough = 1;
			break;
		}
	}
	if (enough == 0)
		return 1;

	return 0;
}