Lines Matching +full:min +full:- +full:len

1 // SPDX-License-Identifier: GPL-2.0-or-later
42 #define DATALEN_MSG ((size_t)PAGE_SIZE-sizeof(struct msg_msg))
43 #define DATALEN_SEG ((size_t)PAGE_SIZE-sizeof(struct msg_msgseg))
57 static struct msg_msg *alloc_msg(size_t len) in alloc_msg() argument
63 alen = min(len, DATALEN_MSG); in alloc_msg()
68 msg->next = NULL; in alloc_msg()
69 msg->security = NULL; in alloc_msg()
71 len -= alen; in alloc_msg()
72 pseg = &msg->next; in alloc_msg()
73 while (len > 0) { in alloc_msg()
78 alen = min(len, DATALEN_SEG); in alloc_msg()
83 seg->next = NULL; in alloc_msg()
84 pseg = &seg->next; in alloc_msg()
85 len -= alen; in alloc_msg()
95 struct msg_msg *load_msg(const void __user *src, size_t len) in load_msg() argument
99 int err = -EFAULT; in load_msg()
102 msg = alloc_msg(len); in load_msg()
104 return ERR_PTR(-ENOMEM); in load_msg()
106 alen = min(len, DATALEN_MSG); in load_msg()
110 for (seg = msg->next; seg != NULL; seg = seg->next) { in load_msg()
111 len -= alen; in load_msg()
113 alen = min(len, DATALEN_SEG); in load_msg()
132 size_t len = src->m_ts; in copy_msg() local
135 if (src->m_ts > dst->m_ts) in copy_msg()
136 return ERR_PTR(-EINVAL); in copy_msg()
138 alen = min(len, DATALEN_MSG); in copy_msg()
141 for (dst_pseg = dst->next, src_pseg = src->next; in copy_msg()
143 dst_pseg = dst_pseg->next, src_pseg = src_pseg->next) { in copy_msg()
145 len -= alen; in copy_msg()
146 alen = min(len, DATALEN_SEG); in copy_msg()
150 dst->m_type = src->m_type; in copy_msg()
151 dst->m_ts = src->m_ts; in copy_msg()
158 return ERR_PTR(-ENOSYS); in copy_msg()
161 int store_msg(void __user *dest, struct msg_msg *msg, size_t len) in store_msg() argument
166 alen = min(len, DATALEN_MSG); in store_msg()
168 return -1; in store_msg()
170 for (seg = msg->next; seg != NULL; seg = seg->next) { in store_msg()
171 len -= alen; in store_msg()
173 alen = min(len, DATALEN_SEG); in store_msg()
175 return -1; in store_msg()
186 seg = msg->next; in free_msg()
189 struct msg_msgseg *tmp = seg->next; in free_msg()