Lines Matching defs:filemon

30 __FBSDID("$FreeBSD: releng/10.3/sys/dev/filemon/filemon.c 296015 2016-02-24 22:30:22Z bdrewery $");
59 #include "filemon.h"
82 .d_name = "filemon",
86 MALLOC_DEFINE(M_FILEMON, "filemon", "File access monitor");
88 struct filemon {
89 TAILQ_ENTRY(filemon) link; /* Link into the in-use list. */
90 struct sx lock; /* Lock mutex for this filemon. */
98 static TAILQ_HEAD(, filemon) filemons_inuse = TAILQ_HEAD_INITIALIZER(filemons_inuse);
99 static TAILQ_HEAD(, filemon) filemons_free = TAILQ_HEAD_INITIALIZER(filemons_free);
108 filemon_comment(struct filemon *filemon)
115 len = snprintf(filemon->msgbufr, sizeof(filemon->msgbufr),
116 "# filemon version %d\n# Target pid %d\n# Start %ju.%06ju\nV %d\n",
120 filemon_output(filemon, filemon->msgbufr, len);
126 struct filemon *filemon = data;
128 if (filemon != NULL) {
133 filemon_filemon_lock(filemon);
136 TAILQ_REMOVE(&filemons_inuse, filemon, link);
138 fp = filemon->fp;
139 filemon->fp = NULL;
140 filemon->p = NULL;
143 TAILQ_INSERT_TAIL(&filemons_free, filemon, link);
146 filemon_filemon_unlock(filemon);
159 struct filemon *filemon;
165 if ((error = devfs_get_cdevpriv((void **) &filemon)) != 0)
168 filemon_filemon_lock(filemon);
173 if (filemon->fp != NULL)
174 fdrop(filemon->fp, td);
180 &filemon->fp);
183 filemon_comment(filemon);
191 filemon->p = p;
201 filemon_filemon_unlock(filemon);
209 struct filemon *filemon;
214 if ((filemon = TAILQ_FIRST(&filemons_free)) != NULL)
215 TAILQ_REMOVE(&filemons_free, filemon, link);
220 if (filemon == NULL) {
221 filemon = malloc(sizeof(struct filemon), M_FILEMON,
223 sx_init(&filemon->lock, "filemon");
226 devfs_set_cdevpriv(filemon, filemon_dtr);
232 TAILQ_INSERT_TAIL(&filemons_inuse, filemon, link);
257 "filemon");
263 struct filemon *filemon;
282 /* free() filemon structs free list. */
284 while ((filemon = TAILQ_FIRST(&filemons_free)) != NULL) {
285 TAILQ_REMOVE(&filemons_free, filemon, link);
286 sx_destroy(&filemon->lock);
287 free(filemon, M_FILEMON);
323 DEV_MODULE(filemon, filemon_modevent, NULL);
324 MODULE_VERSION(filemon, 1);