Lines Matching refs:monpriv

84 static struct mon_buf *monwrite_find_hdr(struct mon_private *monpriv,  in monwrite_find_hdr()  argument
89 list_for_each_entry_safe(entry, next, &monpriv->list, list) in monwrite_find_hdr()
102 static int monwrite_new_hdr(struct mon_private *monpriv) in monwrite_new_hdr() argument
104 struct monwrite_hdr *monhdr = &monpriv->hdr; in monwrite_new_hdr()
114 monbuf = monwrite_find_hdr(monpriv, monhdr); in monwrite_new_hdr()
139 list_add_tail(&monbuf->list, &monpriv->list); in monwrite_new_hdr()
143 monpriv->current_buf = monbuf; in monwrite_new_hdr()
147 static int monwrite_new_data(struct mon_private *monpriv) in monwrite_new_data() argument
149 struct monwrite_hdr *monhdr = &monpriv->hdr; in monwrite_new_data()
150 struct mon_buf *monbuf = monpriv->current_buf; in monwrite_new_data()
171 list_del(&monpriv->current_buf->list); in monwrite_new_data()
172 kfree(monpriv->current_buf->data); in monwrite_new_data()
173 kfree(monpriv->current_buf); in monwrite_new_data()
174 monpriv->current_buf = NULL; in monwrite_new_data()
189 struct mon_private *monpriv; in monwrite_open() local
191 monpriv = kzalloc(sizeof(struct mon_private), GFP_KERNEL); in monwrite_open()
192 if (!monpriv) in monwrite_open()
194 INIT_LIST_HEAD(&monpriv->list); in monwrite_open()
195 monpriv->hdr_to_read = sizeof(monpriv->hdr); in monwrite_open()
196 mutex_init(&monpriv->thread_mutex); in monwrite_open()
197 filp->private_data = monpriv; in monwrite_open()
203 struct mon_private *monpriv = filp->private_data; in monwrite_close() local
206 list_for_each_entry_safe(entry, next, &monpriv->list, list) { in monwrite_close()
215 kfree(monpriv); in monwrite_close()
222 struct mon_private *monpriv = filp->private_data; in monwrite_write() local
227 mutex_lock(&monpriv->thread_mutex); in monwrite_write()
229 if (monpriv->hdr_to_read) { in monwrite_write()
230 len = min(count - written, monpriv->hdr_to_read); in monwrite_write()
231 to = (char *) &monpriv->hdr + in monwrite_write()
232 sizeof(monpriv->hdr) - monpriv->hdr_to_read; in monwrite_write()
237 monpriv->hdr_to_read -= len; in monwrite_write()
239 if (monpriv->hdr_to_read > 0) in monwrite_write()
241 rc = monwrite_new_hdr(monpriv); in monwrite_write()
244 monpriv->data_to_read = monpriv->current_buf ? in monwrite_write()
245 monpriv->current_buf->hdr.datalen : 0; in monwrite_write()
248 if (monpriv->data_to_read) { in monwrite_write()
249 len = min(count - written, monpriv->data_to_read); in monwrite_write()
250 to = monpriv->current_buf->data + in monwrite_write()
251 monpriv->hdr.datalen - monpriv->data_to_read; in monwrite_write()
256 monpriv->data_to_read -= len; in monwrite_write()
258 if (monpriv->data_to_read > 0) in monwrite_write()
260 rc = monwrite_new_data(monpriv); in monwrite_write()
264 monpriv->hdr_to_read = sizeof(monpriv->hdr); in monwrite_write()
266 mutex_unlock(&monpriv->thread_mutex); in monwrite_write()
270 monpriv->data_to_read = 0; in monwrite_write()
271 monpriv->hdr_to_read = sizeof(struct monwrite_hdr); in monwrite_write()
272 mutex_unlock(&monpriv->thread_mutex); in monwrite_write()