Lines Matching refs:mp

43 merror(queue_t *wq, mblk_t *mp, int error)
45 if ((mp = mexchange(wq, mp, 1, M_ERROR, -1)) == NULL)
48 *mp->b_rptr = (uchar_t)error;
49 qreply(wq, mp);
53 mioc2ack(mblk_t *mp, mblk_t *dp, size_t count, int rval)
55 struct iocblk *iocp = (struct iocblk *)mp->b_rptr;
56 mblk_t *odp = mp->b_cont; /* allows freemsg() to be a tail call */
58 DB_TYPE(mp) = M_IOCACK;
63 mp->b_cont = dp;
70 miocack(queue_t *wq, mblk_t *mp, int count, int rval)
72 struct iocblk *iocp = (struct iocblk *)mp->b_rptr;
74 DB_TYPE(mp) = M_IOCACK;
78 qreply(wq, mp);
82 miocnak(queue_t *wq, mblk_t *mp, int count, int error)
84 struct iocblk *iocp = (struct iocblk *)mp->b_rptr;
86 DB_TYPE(mp) = M_IOCNAK;
89 qreply(wq, mp);
93 mexchange(queue_t *wq, mblk_t *mp, size_t size, uchar_t type, int32_t primtype)
95 if (mp == NULL || MBLKSIZE(mp) < size || DB_REF(mp) > 1) {
96 freemsg(mp);
97 if ((mp = allocb(size, BPRI_LO)) == NULL) {
99 if ((mp = allocb(1, BPRI_HI)) != NULL)
100 merror(wq, mp, ENOSR);
106 DB_TYPE(mp) = type;
107 mp->b_rptr = DB_BASE(mp);
108 mp->b_wptr = mp->b_rptr + size;
110 *(int32_t *)mp->b_rptr = primtype;
112 return (mp);
116 msgsize(mblk_t *mp)
120 for (; mp != NULL; mp = mp->b_cont)
121 n += MBLKL(mp);
127 mcopymsg(mblk_t *mp, void *bufp)
133 for (bp = mp; bp != NULL; bp = bp->b_cont) {
139 freemsg(mp);
143 mcopyin(mblk_t *mp, void *private, size_t size, void *useraddr)
145 struct copyreq *cp = (struct copyreq *)mp->b_rptr;
150 ASSERT(DB_TYPE(mp) == M_IOCTL);
151 ASSERT(mp->b_cont != NULL);
152 ASSERT(((struct iocblk *)mp->b_rptr)->ioc_count == TRANSPARENT);
153 cp->cq_addr = (caddr_t)*(uintptr_t *)mp->b_cont->b_rptr;
160 DB_TYPE(mp) = M_COPYIN;
161 mp->b_wptr = mp->b_rptr + sizeof (struct copyreq);
163 if (mp->b_cont != NULL) {
164 freemsg(mp->b_cont);
165 mp->b_cont = NULL;
170 mcopyout(mblk_t *mp, void *private, size_t size, void *useraddr, mblk_t *dp)
172 struct copyreq *cp = (struct copyreq *)mp->b_rptr;
177 ASSERT(DB_TYPE(mp) == M_IOCTL);
178 ASSERT(mp->b_cont != NULL);
179 ASSERT(((struct iocblk *)mp->b_rptr)->ioc_count == TRANSPARENT);
180 cp->cq_addr = (caddr_t)*(uintptr_t *)mp->b_cont->b_rptr;
187 DB_TYPE(mp) = M_COPYOUT;
188 mp->b_wptr = mp->b_rptr + sizeof (struct copyreq);
191 if (mp->b_cont != NULL)
192 freemsg(mp->b_cont);
193 mp->b_cont = dp;
194 mp->b_cont->b_wptr = mp->b_cont->b_rptr + size;
276 mblk_t *mp;
280 if ((mp = allocb_cred(offset + blocksize + tail_len,
285 mp->b_rptr += offset;
286 mp->b_wptr = mp->b_rptr + blocksize;
288 *tail = mp;
289 tail = &mp->b_cont;
292 if ((*errorp = uiomove(mp->b_rptr, (size_t)blocksize,