コード例 #1
0
ファイル: uart_dev_dvfs.c プロジェクト: Robotonics/embox
int uart_register(struct uart *uart,
                  const struct uart_params *uart_defparams) {
    extern const struct file_operations ttys_fops;
    struct device_module *cdev;

    cdev = pool_alloc(&cdev_serials_pool);
    if (!cdev) {
        return -ENOMEM;
    }

    if (uart_fill_name(uart)) {
        pool_free(&cdev_serials_pool, cdev);
        return -EBUSY;
    }

    if (uart_defparams) {
        memcpy(&uart->params, uart_defparams, sizeof(struct uart_params));
    } else {
        memset(&uart->params, 0, sizeof(struct uart_params));
    }

    memset(cdev, 0, sizeof(*cdev));
    cdev->name = uart->dev_name;
    cdev->fops = (struct file_operations*)&ttys_fops;
    cdev->dev_data = uart;

    char_dev_register(cdev);

    return 0;
}
コード例 #2
0
ファイル: tun.c プロジェクト: AleksandraButrova/embox
static int tun_init(void) {
	int err;
	struct net_device *tdev;
	char tun_name[16];
	int i;

	for (i = 0; i < TUN_N; i++) {
		struct tun *tun;

		snprintf(tun_name, sizeof(tun_name), "tun%d", i);

		tdev = netdev_alloc(tun_name, &tun_setup, sizeof(struct tun));
		if (tdev == NULL) {
			err = -ENOMEM;
			goto err_deinit;
		}

		err = inetdev_register_dev(tdev);
		if (err != 0) {
			goto err_netdev_free;
		}

		err = char_dev_register(tun_name, &tun_dev_file_ops);
		if (err != 0) {
			goto err_inetdev_deregister;
		}

		tun = netdev_priv(tdev, struct tun);
		mutex_init(&tun->mtx_use);

		tun_g_array[i] = tdev;
	}

	return 0;

err_inetdev_deregister:
	/* inetdev_deregister */
err_netdev_free:
	netdev_free(tdev);
err_deinit:
	tun_deinit();
	return err;

}
コード例 #3
0
ファイル: fsnode.c プロジェクト: vadimsmirnovnsk/embox
int serial_register_devfs(struct uart *dev) {

	char_dev_register(dev->dev_name, &uart_dev_file_op);

	return ENOERR;
}
コード例 #4
0
ファイル: null.c プロジェクト: vadimsmirnovnsk/embox
static int null_init(void) {
    return char_dev_register(NULL_DEV_NAME, &null_ops);
}
コード例 #5
0
ファイル: vc.c プロジェクト: kandeshvari/embox
static int vc_init(void) {
	return char_dev_register("vc", &vc_file_ops);
}
コード例 #6
0
ファイル: ttys_oldfs.c プロジェクト: AleksandraButrova/embox
int ttys_register(const char*name, void *dev_info) {
	return char_dev_register(name, &ttys_fops);
}
コード例 #7
0
void gx3113_panel_mod_init(void)
{
	char_dev_register(&gx3113_panel_dev, PANEL_NAME, NULL);
	cyg_selinit(&sg_PanelSignal);

}