Lines Matching refs:ring

33 tapdisk_uring_create_ctlfd(td_uring_t *ring)  in tapdisk_uring_create_ctlfd()  argument
38 if (strnlen(ring->ctlfd_path, sizeof(saddr.sun_family)) >= in tapdisk_uring_create_ctlfd()
48 memcpy(saddr.sun_path, ring->ctlfd_path, strlen(ring->ctlfd_path)); in tapdisk_uring_create_ctlfd()
50 err = unlink(ring->ctlfd_path); in tapdisk_uring_create_ctlfd()
68 ring->ctlfd = fd; in tapdisk_uring_create_ctlfd()
77 tapdisk_uring_destroy_ctlfd(td_uring_t *ring) in tapdisk_uring_destroy_ctlfd() argument
79 if (ring->ctlfd) { in tapdisk_uring_destroy_ctlfd()
80 close(ring->ctlfd); in tapdisk_uring_destroy_ctlfd()
81 ring->ctlfd = 0; in tapdisk_uring_destroy_ctlfd()
84 if (ring->ctlfd_path) { in tapdisk_uring_destroy_ctlfd()
85 unlink(ring->ctlfd_path); in tapdisk_uring_destroy_ctlfd()
86 free(ring->ctlfd_path); in tapdisk_uring_destroy_ctlfd()
87 ring->ctlfd_path = NULL; in tapdisk_uring_destroy_ctlfd()
92 tapdisk_uring_connect_ctlfd(td_uring_t *ring) in tapdisk_uring_connect_ctlfd() argument
97 if (strnlen(ring->ctlfd_path, sizeof(saddr.sun_path)) >= in tapdisk_uring_connect_ctlfd()
107 memcpy(saddr.sun_path, ring->ctlfd_path, strlen(ring->ctlfd_path)); in tapdisk_uring_connect_ctlfd()
115 ring->ctlfd = fd; in tapdisk_uring_connect_ctlfd()
124 tapdisk_uring_disconnect_ctlfd(td_uring_t *ring) in tapdisk_uring_disconnect_ctlfd() argument
126 if (ring->ctlfd) in tapdisk_uring_disconnect_ctlfd()
127 close(ring->ctlfd); in tapdisk_uring_disconnect_ctlfd()
128 free(ring->ctlfd_path); in tapdisk_uring_disconnect_ctlfd()
129 ring->ctlfd_path = NULL; in tapdisk_uring_disconnect_ctlfd()
133 tapdisk_uring_create_shmem(td_uring_t *ring) in tapdisk_uring_create_shmem() argument
137 fd = shm_open(ring->shmem_path, O_CREAT | O_RDWR, 0750); in tapdisk_uring_create_shmem()
141 err = ftruncate(fd, ring->shmem_size); in tapdisk_uring_create_shmem()
147 ring->shmem = mmap(NULL, ring->shmem_size, in tapdisk_uring_create_shmem()
149 if (ring->shmem == MAP_FAILED) { in tapdisk_uring_create_shmem()
150 ring->shmem = NULL; in tapdisk_uring_create_shmem()
163 tapdisk_uring_destroy_shmem(td_uring_t *ring) in tapdisk_uring_destroy_shmem() argument
165 if (ring->shmem) { in tapdisk_uring_destroy_shmem()
166 munmap(ring->shmem, ring->shmem_size); in tapdisk_uring_destroy_shmem()
167 ring->shmem = NULL; in tapdisk_uring_destroy_shmem()
170 if (ring->shmem_path) { in tapdisk_uring_destroy_shmem()
171 shm_unlink(ring->shmem_path); in tapdisk_uring_destroy_shmem()
172 free(ring->shmem_path); in tapdisk_uring_destroy_shmem()
173 ring->shmem_path = NULL; in tapdisk_uring_destroy_shmem()
178 tapdisk_uring_connect_shmem(td_uring_t *ring) in tapdisk_uring_connect_shmem() argument
183 fd = shm_open(ring->shmem_path, O_RDWR); in tapdisk_uring_connect_shmem()
208 ring->ring_size = header.ring_size; in tapdisk_uring_connect_shmem()
209 ring->data_size = header.data_size; in tapdisk_uring_connect_shmem()
210 ring->shmem_size = header.shmem_size; in tapdisk_uring_connect_shmem()
212 ring->shmem = mmap(NULL, ring->shmem_size, in tapdisk_uring_connect_shmem()
214 if (ring->shmem == MAP_FAILED) { in tapdisk_uring_connect_shmem()
228 tapdisk_uring_disconnect_shmem(td_uring_t *ring) in tapdisk_uring_disconnect_shmem() argument
230 if (ring->shmem) in tapdisk_uring_disconnect_shmem()
231 munmap(ring->shmem, ring->shmem_size); in tapdisk_uring_disconnect_shmem()
232 free(ring->shmem_path); in tapdisk_uring_disconnect_shmem()
233 ring->shmem_path = NULL; in tapdisk_uring_disconnect_shmem()
237 tapdisk_uring_create(td_uring_t *ring, const char *location, in tapdisk_uring_create() argument
242 memset(ring, 0, sizeof(td_uring_t)); in tapdisk_uring_create()
244 ring->ring_size = ring_size; in tapdisk_uring_create()
245 ring->data_size = data_size; in tapdisk_uring_create()
246 ring->shmem_size = ring_size + data_size + sizeof(td_uring_header_t); in tapdisk_uring_create()
248 err = asprintf(&ring->shmem_path, "%s.shm", location); in tapdisk_uring_create()
250 ring->shmem_path = NULL; in tapdisk_uring_create()
255 err = asprintf(&ring->ctlfd_path, "%s.cfd", location); in tapdisk_uring_create()
257 ring->ctlfd_path = NULL; in tapdisk_uring_create()
262 err = tapdisk_uring_create_ctlfd(ring); in tapdisk_uring_create()
266 err = tapdisk_uring_create_shmem(ring); in tapdisk_uring_create()
270 ring->ring_area = (unsigned long)ring->shmem + sizeof(td_uring_header_t); in tapdisk_uring_create()
271 ring->data_area = (unsigned long)ring->ring_area + ring->ring_size; in tapdisk_uring_create()
276 tapdisk_uring_destroy(ring); in tapdisk_uring_create()
281 tapdisk_uring_destroy(td_uring_t *ring) in tapdisk_uring_destroy() argument
283 tapdisk_uring_destroy_shmem(ring); in tapdisk_uring_destroy()
284 tapdisk_uring_destroy_ctlfd(ring); in tapdisk_uring_destroy()
289 tapdisk_uring_connect(td_uring_t *ring, const char *location) in tapdisk_uring_connect() argument
293 memset(ring, 0, sizeof(td_uring_t)); in tapdisk_uring_connect()
295 err = asprintf(&ring->shmem_path, "%s.shm", location); in tapdisk_uring_connect()
297 ring->shmem_path = NULL; in tapdisk_uring_connect()
302 err = asprintf(&ring->ctlfd_path, "%s.cfd", location); in tapdisk_uring_connect()
304 ring->ctlfd_path = NULL; in tapdisk_uring_connect()
309 err = tapdisk_uring_connect_ctlfd(ring); in tapdisk_uring_connect()
313 err = tapdisk_uring_connect_shmem(ring); in tapdisk_uring_connect()
323 tapdisk_uring_disconnect(td_uring_t *ring) in tapdisk_uring_disconnect() argument
325 tapdisk_uring_disconnect_shmem(ring); in tapdisk_uring_disconnect()
326 tapdisk_uring_disconnect_ctlfd(ring); in tapdisk_uring_disconnect()
415 tapdisk_uring_poll(td_uring_t *ring) in tapdisk_uring_poll() argument
420 err = tapdisk_uring_read_message(ring->ctlfd, &message, 1); in tapdisk_uring_poll()
431 tapdisk_uring_kick(td_uring_t *ring) in tapdisk_uring_kick() argument
438 return tapdisk_uring_write_message(ring->ctlfd, &message, 1); in tapdisk_uring_kick()