Ejemplo n.º 1
0
static int intel_i2c_bind(struct udevice *dev)
{
	static int num_cards __attribute__ ((section(".data")));
	char name[20];

	/* Create a unique device name for PCI type devices */
	if (device_is_on_pci_bus(dev)) {
		/*
		 * ToDo:
		 * Setting req_seq in the driver is probably not recommended.
		 * But without a DT alias the number is not configured. And
		 * using this driver is impossible for PCIe I2C devices.
		 * This can be removed, once a better (correct) way for this
		 * is found and implemented.
		 */
		dev->req_seq = num_cards;
		sprintf(name, "intel_i2c#%u", num_cards++);
		device_set_name(dev, name);
	}

	return 0;
}
Ejemplo n.º 2
0
static void* pthread_a_work(void* args) {
    sorm_connection_t *_conn;
    int ret = sorm_open(DB_FILE, SORM_DB_SQLITE, 0, &rwlock, 
            SORM_ENABLE_RWLOCK, &_conn);
    assert(ret == SORM_OK);

    device_t *device;
    sorm_iterator_t *iterator;
    
    ret = device_select_iterate_by_open(_conn, ALL_COLUMNS,
            NULL, &iterator);
    
    sorm_begin_read_transaction(_conn);
    int i;
    for (i = 0; i < 4; i ++) {
        device_select_iterate_by(iterator, &device);
        char string[1024];
        printf("select : %s\n", 
                device_to_string(device, string, 1024));
        device_free(device);
    }
    sorm_begin_write_transaction(_conn);
    device = device_new();
    device_set_id(device, 3);
    device_set_uuid(device, "uuid-3");
    device_set_name(device, "name-3");
    device_set_password(device, "passwd-3");
    ret = device_insert(_conn, device);
    assert(ret == SORM_OK);
    device_free(device);
    printf("insert uuid-3\n");
    pthread_mutex_lock(&mutex);
    condition_b = 1;
    pthread_mutex_unlock(&mutex);
    pthread_cond_signal(&cond_b);
    
    printf("wait for input\n");
    ret = getchar();
    printf("continue running\n");
    
    sorm_commit_transaction(_conn);
    
    while (1) {
        device_select_iterate_by(iterator, &device);
        if (!device_select_iterate_more(iterator)) {
            break;
        }
        char string[1024];
        printf("select : %s\n", 
                device_to_string(device, string, 1024));
        device_free(device);
    }
    sorm_commit_transaction(_conn);
    device_select_iterate_close(iterator);
    
    //sorm_commit_transaction(_conn);

    printf("a finish\n");

    sorm_close(_conn);
}