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))
46 static struct msg_msg *alloc_msg(size_t len) in alloc_msg() argument
52 alen = min(len, DATALEN_MSG); in alloc_msg()
57 msg->next = NULL; in alloc_msg()
58 msg->security = NULL; in alloc_msg()
60 len -= alen; in alloc_msg()
61 pseg = &msg->next; in alloc_msg()
62 while (len > 0) { in alloc_msg()
67 alen = min(len, DATALEN_SEG); in alloc_msg()
72 seg->next = NULL; in alloc_msg()
73 pseg = &seg->next; in alloc_msg()
74 len -= alen; in alloc_msg()
84 struct msg_msg *load_msg(const void __user *src, size_t len) in load_msg() argument
88 int err = -EFAULT; in load_msg()
91 msg = alloc_msg(len); in load_msg()
93 return ERR_PTR(-ENOMEM); in load_msg()
95 alen = min(len, DATALEN_MSG); in load_msg()
99 for (seg = msg->next; seg != NULL; seg = seg->next) { in load_msg()
100 len -= alen; in load_msg()
102 alen = min(len, DATALEN_SEG); in load_msg()
121 size_t len = src->m_ts; in copy_msg() local
124 if (src->m_ts > dst->m_ts) in copy_msg()
125 return ERR_PTR(-EINVAL); in copy_msg()
127 alen = min(len, DATALEN_MSG); in copy_msg()
130 for (dst_pseg = dst->next, src_pseg = src->next; in copy_msg()
132 dst_pseg = dst_pseg->next, src_pseg = src_pseg->next) { in copy_msg()
134 len -= alen; in copy_msg()
135 alen = min(len, DATALEN_SEG); in copy_msg()
139 dst->m_type = src->m_type; in copy_msg()
140 dst->m_ts = src->m_ts; in copy_msg()
147 return ERR_PTR(-ENOSYS); in copy_msg()
150 int store_msg(void __user *dest, struct msg_msg *msg, size_t len) in store_msg() argument
155 alen = min(len, DATALEN_MSG); in store_msg()
157 return -1; in store_msg()
159 for (seg = msg->next; seg != NULL; seg = seg->next) { in store_msg()
160 len -= alen; in store_msg()
162 alen = min(len, DATALEN_SEG); in store_msg()
164 return -1; in store_msg()
175 seg = msg->next; in free_msg()
178 struct msg_msgseg *tmp = seg->next; in free_msg()