int32_t _bus_terminal_init_create(bus_terminal_t* bt, int16_t key) { int32_t buskey = (key << 16); struct shm_t* shm = shm_create(buskey, sizeof(bus_t), 0); if (shm) { bt->bus = (bus_t*)shm_mem(shm); assert(bt->bus); bt->bus->key = buskey; bt->bus->channel_key = 0; bt->bus->size = sizeof(bus_t); // terminals local info bt->bus->terminal_count = 1; bt->bus->terminals[0] = bt->self; atom_set(&bt->bus->terminal_version, 1); // channels info bt->bus->channel_count = 0; atom_set(&bt->bus->channel_version, 1); return 0; } return -1; }
static error test_rename(atom_set_t *d) { error err; int i; printf("test: rename\n"); for (i = 0; i < NELEMS(newnames); i++) { atom_t idx; printf("adding '%s'... ", data[i]); err = atom_new(d, (const unsigned char *) data[i], strlen(data[i]) + 1, &idx); if (err && err != error_ATOM_NAME_EXISTS) return err; if (err == error_ATOM_NAME_EXISTS) printf("already exists "); printf("as %d\n", idx); printf("renaming index %d to '%s'... ", idx, newnames[i]); err = atom_set(d, idx, (const unsigned char *) newnames[i], strlen(newnames[i]) + 1); if (err == error_ATOM_NAME_EXISTS) printf("already exists!"); else if (err) return err; else printf("ok"); printf("\n"); } return error_OK; }