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