Lines Matching refs:monpriv
85 static struct mon_buf *monwrite_find_hdr(struct mon_private *monpriv,
90 list_for_each_entry_safe(entry, next, &monpriv->list, list)
103 static int monwrite_new_hdr(struct mon_private *monpriv)
105 struct monwrite_hdr *monhdr = &monpriv->hdr;
115 monbuf = monwrite_find_hdr(monpriv, monhdr);
140 list_add_tail(&monbuf->list, &monpriv->list);
144 monpriv->current_buf = monbuf;
148 static int monwrite_new_data(struct mon_private *monpriv)
150 struct monwrite_hdr *monhdr = &monpriv->hdr;
151 struct mon_buf *monbuf = monpriv->current_buf;
172 list_del(&monpriv->current_buf->list);
173 kfree(monpriv->current_buf->data);
174 kfree(monpriv->current_buf);
175 monpriv->current_buf = NULL;
190 struct mon_private *monpriv;
192 monpriv = kzalloc(sizeof(struct mon_private), GFP_KERNEL);
193 if (!monpriv)
195 INIT_LIST_HEAD(&monpriv->list);
196 monpriv->hdr_to_read = sizeof(monpriv->hdr);
197 mutex_init(&monpriv->thread_mutex);
198 filp->private_data = monpriv;
204 struct mon_private *monpriv = filp->private_data;
207 list_for_each_entry_safe(entry, next, &monpriv->list, list) {
216 kfree(monpriv);
223 struct mon_private *monpriv = filp->private_data;
228 mutex_lock(&monpriv->thread_mutex);
230 if (monpriv->hdr_to_read) {
231 len = min(count - written, monpriv->hdr_to_read);
232 to = (char *) &monpriv->hdr +
233 sizeof(monpriv->hdr) - monpriv->hdr_to_read;
238 monpriv->hdr_to_read -= len;
240 if (monpriv->hdr_to_read > 0)
242 rc = monwrite_new_hdr(monpriv);
245 monpriv->data_to_read = monpriv->current_buf ?
246 monpriv->current_buf->hdr.datalen : 0;
249 if (monpriv->data_to_read) {
250 len = min(count - written, monpriv->data_to_read);
251 to = monpriv->current_buf->data +
252 monpriv->hdr.datalen - monpriv->data_to_read;
257 monpriv->data_to_read -= len;
259 if (monpriv->data_to_read > 0)
261 rc = monwrite_new_data(monpriv);
265 monpriv->hdr_to_read = sizeof(monpriv->hdr);
267 mutex_unlock(&monpriv->thread_mutex);
271 monpriv->data_to_read = 0;
272 monpriv->hdr_to_read = sizeof(struct monwrite_hdr);
273 mutex_unlock(&monpriv->thread_mutex);