Lines Matching refs:pd

77 	pipe_data_t *pd = io->io_data;  in pio_read()  local
84 if (pd->pipe_used == 0) { in pio_read()
85 if (pd->pipe_wriob != NULL) { in pio_read()
86 pd->pipe_wrsvc(pd->pipe_rdiob, in pio_read()
87 pd->pipe_wriob, &pd->pipe_ctx); in pio_read()
89 if (pd->pipe_used == 0) in pio_read()
93 n = MIN(pd->pipe_used, nleft); in pio_read()
95 if (BUFSIZ - pd->pipe_rdndx < n) { in pio_read()
104 size_t n1 = BUFSIZ - pd->pipe_rdndx; in pio_read()
107 ASSERT(n2 <= pd->pipe_wrndx); in pio_read()
108 bcopy(&pd->pipe_buf[pd->pipe_rdndx], buf, n1); in pio_read()
110 bcopy(&pd->pipe_buf[0], buf, n2); in pio_read()
117 bcopy(&pd->pipe_buf[pd->pipe_rdndx], buf, n); in pio_read()
121 pd->pipe_rdndx = (pd->pipe_rdndx + n) % BUFSIZ; in pio_read()
122 pd->pipe_free += n; in pio_read()
123 pd->pipe_used -= n; in pio_read()
131 if (pd->pipe_wriob != NULL) in pio_read()
143 pipe_data_t *pd = io->io_data; in pio_write() local
146 if (pd->pipe_rdiob == NULL) in pio_write()
150 if (pd->pipe_free == 0) { in pio_write()
151 pd->pipe_rdsvc(pd->pipe_rdiob, in pio_write()
152 pd->pipe_wriob, &pd->pipe_ctx); in pio_write()
153 if (pd->pipe_free == 0) in pio_write()
157 n = MIN(pd->pipe_free, nleft); in pio_write()
159 if (BUFSIZ - pd->pipe_wrndx < n) { in pio_write()
168 size_t n1 = BUFSIZ - pd->pipe_wrndx; in pio_write()
171 ASSERT(n2 <= pd->pipe_rdndx); in pio_write()
173 bcopy(buf, &pd->pipe_buf[pd->pipe_wrndx], n1); in pio_write()
175 bcopy(buf, &pd->pipe_buf[0], n2); in pio_write()
182 bcopy(buf, &pd->pipe_buf[pd->pipe_wrndx], n); in pio_write()
186 pd->pipe_wrndx = (pd->pipe_wrndx + n) % BUFSIZ; in pio_write()
187 pd->pipe_free -= n; in pio_write()
188 pd->pipe_used += n; in pio_write()
204 pipe_data_t *pd = io->io_data; in pio_ctl() local
212 if (pd->pipe_used != 0) in pio_ctl()
213 pd->pipe_rdsvc(pd->pipe_rdiob, pd->pipe_wriob, &pd->pipe_ctx); in pio_ctl()
234 pipe_data_t *pd = io->io_data; in pio_link() local
242 pd->pipe_rdiob = iob; in pio_link()
244 pd->pipe_wriob = iob; in pio_link()
252 pipe_data_t *volatile pd = io->io_data; in pio_unlink() local
267 if (pd->pipe_wriob == iob) { in pio_unlink()
268 pd->pipe_wriob = NULL; /* remove writer */ in pio_unlink()
270 if (pd->pipe_used == 0 && pd->pipe_ctx.ctx_data == NULL) in pio_unlink()
280 if (pd->pipe_rdiob == NULL) in pio_unlink()
282 if (mdb_iob_err(pd->pipe_rdiob) != 0) { in pio_unlink()
283 if (pd->pipe_ctx.ctx_wptr != NULL) { in pio_unlink()
285 pd->pipe_ctx.ctx_wptr, in pio_unlink()
287 pd->pipe_ctx.ctx_wptr = NULL; in pio_unlink()
291 if (pd->pipe_ctx.ctx_data == NULL || in pio_unlink()
293 pd->pipe_ctx.ctx_data)) == 0) { in pio_unlink()
294 pd->pipe_rdsvc(pd->pipe_rdiob, in pio_unlink()
295 pd->pipe_wriob, &pd->pipe_ctx); in pio_unlink()
298 } while (pd->pipe_used != 0); in pio_unlink()
300 if (pd->pipe_ctx.ctx_data != NULL) { in pio_unlink()
301 mdb_context_destroy(pd->pipe_ctx.ctx_data); in pio_unlink()
302 pd->pipe_ctx.ctx_data = NULL; in pio_unlink()
305 } else if (pd->pipe_rdiob == iob) in pio_unlink()
306 pd->pipe_rdiob = NULL; /* remove reader */ in pio_unlink()
329 pipe_data_t *pd = mdb_zalloc(sizeof (pipe_data_t), UM_SLEEP); in mdb_pipeio_create() local
332 pd->pipe_rdsvc = rdsvc; in mdb_pipeio_create()
333 pd->pipe_wrsvc = wrsvc; in mdb_pipeio_create()
334 pd->pipe_free = BUFSIZ; in mdb_pipeio_create()
337 io->io_data = pd; in mdb_pipeio_create()