Lines Matching refs:mp

370 #define	msg_hold(mp)	(mp)->msg_copycnt++
377 msg_rele(struct msg *mp)
379 ASSERT(mp->msg_copycnt > 0);
380 if (mp->msg_copycnt-- == 1) {
381 if (mp->msg_addr)
382 kmem_free(mp->msg_addr, mp->msg_size);
383 kmem_free(mp, sizeof (struct msg));
394 msgunlink(kmsqid_t *qp, struct msg *mp)
396 list_remove(&qp->msg_list, mp);
398 qp->msg_cbytes -= mp->msg_size;
399 msg_rele(mp);
409 struct msg *mp;
413 while ((mp = list_head(&qp->msg_list)) != NULL)
414 msgunlink(qp, mp);
884 struct msg *mp; /* ptr to msg on q */
888 mp = list_head(&qp->msg_list);
890 smp = mp;
903 for (; mp; mp = list_next(&qp->msg_list, mp)) {
904 if (msgtyp == mp->msg_type) {
905 smp = mp;
926 for (; mp; mp = list_next(&qp->msg_list, mp)) {
927 if (mp->msg_type <= low_msgtype &&
928 !(smp && smp->msg_type <= mp->msg_type)) {
929 smp = mp;
930 low_msgtype = mp->msg_type;
970 struct msg *mp; /* ptr to msg on q */
1001 for (mp = list_head(&qp->msg_list); mp;
1002 mp = list_next(&qp->msg_list, mp)) {
1004 (msgtyp > 0 && msgtyp == mp->msg_type) ||
1005 (msgtyp < 0 && mp->msg_type <= -msgtyp)) {
1008 size += RND(mp->msg_size);
1010 size += RND32(mp->msg_size);
1025 for (mp = list_head(&qp->msg_list); mp;
1026 mp = list_next(&qp->msg_list, mp)) {
1028 (msgtyp > 0 && msgtyp == mp->msg_type) ||
1029 (msgtyp < 0 && mp->msg_type <= -msgtyp)) {
1030 msg_hold(mp);
1031 snaplist[i] = mp;
1052 mp = snaplist[i];
1054 STRUCT_FSET(mhead, msgsnap_mlen, mp->msg_size);
1055 STRUCT_FSET(mhead, msgsnap_mtype, mp->msg_type);
1061 mp->msg_size != 0 &&
1062 copyout(mp->msg_addr, buf, mp->msg_size))
1065 buf += RND(mp->msg_size);
1067 buf += RND32(mp->msg_size);
1070 msg_rele(mp);
1098 struct msg *mp = NULL;
1134 mp = kmem_zalloc(sizeof (struct msg), KM_SLEEP);
1135 mp->msg_copycnt = 1;
1136 mp->msg_size = msgsz;
1138 mp->msg_addr = kmem_alloc(msgsz, KM_SLEEP);
1140 mp->msg_addr, msgsz) == -1) {
1196 if (mp == NULL) {
1201 mp = kmem_zalloc(sizeof (struct msg), KM_SLEEP);
1202 mp->msg_addr = kmem_alloc(msgsz, KM_SLEEP);
1203 mp->msg_size = msgsz;
1204 mp->msg_copycnt = 1;
1207 mp->msg_addr, msgsz) == -1);
1227 mp->msg_type = type;
1230 list_insert_tail(&qp->msg_list, mp);
1251 if (mp)
1252 msg_rele(mp);