Lines Matching refs:sgp

37 	fmd_serd_eng_t *sgp = fmd_zalloc(sizeof (fmd_serd_eng_t), FMD_SLEEP);  in fmd_serd_eng_alloc()  local
39 sgp->sg_name = fmd_strdup(name, FMD_SLEEP); in fmd_serd_eng_alloc()
40 sgp->sg_flags = FMD_SERD_DIRTY; in fmd_serd_eng_alloc()
41 sgp->sg_n = n; in fmd_serd_eng_alloc()
42 sgp->sg_t = t; in fmd_serd_eng_alloc()
44 return (sgp); in fmd_serd_eng_alloc()
48 fmd_serd_eng_free(fmd_serd_eng_t *sgp) in fmd_serd_eng_free() argument
50 fmd_serd_eng_reset(sgp); in fmd_serd_eng_free()
51 fmd_strfree(sgp->sg_name); in fmd_serd_eng_free()
52 fmd_free(sgp, sizeof (fmd_serd_eng_t)); in fmd_serd_eng_free()
66 fmd_serd_eng_t *sgp, *ngp; in fmd_serd_hash_destroy() local
70 for (sgp = shp->sh_hash[i]; sgp != NULL; sgp = ngp) { in fmd_serd_hash_destroy()
71 ngp = sgp->sg_next; in fmd_serd_hash_destroy()
72 fmd_serd_eng_free(sgp); in fmd_serd_hash_destroy()
83 fmd_serd_eng_t *sgp; in fmd_serd_hash_apply() local
87 for (sgp = shp->sh_hash[i]; sgp != NULL; sgp = sgp->sg_next) in fmd_serd_hash_apply()
88 func(sgp, arg); in fmd_serd_hash_apply()
101 fmd_serd_eng_t *sgp; in fmd_serd_hash_contains() local
105 for (sgp = shp->sh_hash[i]; sgp != NULL; sgp = sgp->sg_next) { in fmd_serd_hash_contains()
106 if (fmd_serd_eng_contains(sgp, ep)) { in fmd_serd_hash_contains()
121 fmd_serd_eng_t *sgp = fmd_serd_eng_alloc(name, n, t); in fmd_serd_eng_insert() local
123 sgp->sg_next = shp->sh_hash[h]; in fmd_serd_eng_insert()
124 shp->sh_hash[h] = sgp; in fmd_serd_eng_insert()
127 return (sgp); in fmd_serd_eng_insert()
134 fmd_serd_eng_t *sgp; in fmd_serd_eng_lookup() local
136 for (sgp = shp->sh_hash[h]; sgp != NULL; sgp = sgp->sg_next) { in fmd_serd_eng_lookup()
137 if (strcmp(name, sgp->sg_name) == 0) in fmd_serd_eng_lookup()
138 return (sgp); in fmd_serd_eng_lookup()
148 fmd_serd_eng_t *sgp, **pp = &shp->sh_hash[h]; in fmd_serd_eng_delete() local
150 for (sgp = *pp; sgp != NULL; sgp = sgp->sg_next) { in fmd_serd_eng_delete()
151 if (strcmp(sgp->sg_name, name) != 0) in fmd_serd_eng_delete()
152 pp = &sgp->sg_next; in fmd_serd_eng_delete()
157 if (sgp != NULL) { in fmd_serd_eng_delete()
158 *pp = sgp->sg_next; in fmd_serd_eng_delete()
159 fmd_serd_eng_free(sgp); in fmd_serd_eng_delete()
166 fmd_serd_eng_discard(fmd_serd_eng_t *sgp, fmd_serd_elem_t *sep) in fmd_serd_eng_discard() argument
168 fmd_list_delete(&sgp->sg_list, sep); in fmd_serd_eng_discard()
169 sgp->sg_count--; in fmd_serd_eng_discard()
176 fmd_serd_eng_contains(fmd_serd_eng_t *sgp, fmd_event_t *ep) in fmd_serd_eng_contains() argument
180 for (sep = fmd_list_next(&sgp->sg_list); in fmd_serd_eng_contains()
192 fmd_serd_eng_t *sgp = ptr; in fmd_serd_eng_record() local
201 if (sgp->sg_flags & FMD_SERD_FIRED) in fmd_serd_eng_record()
204 while (sgp->sg_count > sgp->sg_n) in fmd_serd_eng_record()
205 fmd_serd_eng_discard(sgp, fmd_list_next(&sgp->sg_list)); in fmd_serd_eng_record()
213 fmd_list_append(&sgp->sg_list, sep); in fmd_serd_eng_record()
214 sgp->sg_count++; in fmd_serd_eng_record()
220 oep = fmd_list_next(&sgp->sg_list); in fmd_serd_eng_record()
222 if (sgp->sg_count > sgp->sg_n && in fmd_serd_eng_record()
223 fmd_event_delta(oep->se_event, sep->se_event) <= sgp->sg_t) { in fmd_serd_eng_record()
224 sgp->sg_flags |= FMD_SERD_FIRED | FMD_SERD_DIRTY; in fmd_serd_eng_record()
228 sgp->sg_flags |= FMD_SERD_DIRTY; in fmd_serd_eng_record()
233 fmd_serd_eng_fired(fmd_serd_eng_t *sgp) in fmd_serd_eng_fired() argument
235 return (sgp->sg_flags & FMD_SERD_FIRED); in fmd_serd_eng_fired()
239 fmd_serd_eng_empty(fmd_serd_eng_t *sgp) in fmd_serd_eng_empty() argument
241 return (sgp->sg_count == 0); in fmd_serd_eng_empty()
245 fmd_serd_eng_reset(fmd_serd_eng_t *sgp) in fmd_serd_eng_reset() argument
247 while (sgp->sg_count != 0) in fmd_serd_eng_reset()
248 fmd_serd_eng_discard(sgp, fmd_list_next(&sgp->sg_list)); in fmd_serd_eng_reset()
250 sgp->sg_flags &= ~FMD_SERD_FIRED; in fmd_serd_eng_reset()
251 sgp->sg_flags |= FMD_SERD_DIRTY; in fmd_serd_eng_reset()
255 fmd_serd_eng_gc(fmd_serd_eng_t *sgp, void *arg __unused) in fmd_serd_eng_gc() argument
260 if (sgp->sg_count == 0 || (sgp->sg_flags & FMD_SERD_FIRED)) in fmd_serd_eng_gc()
263 sep = fmd_list_prev(&sgp->sg_list); in fmd_serd_eng_gc()
264 hrt = fmd_event_hrtime(sep->se_event) - sgp->sg_t; in fmd_serd_eng_gc()
266 for (sep = fmd_list_next(&sgp->sg_list); sep != NULL; sep = nep) { in fmd_serd_eng_gc()
271 fmd_serd_eng_discard(sgp, sep); in fmd_serd_eng_gc()
272 sgp->sg_flags |= FMD_SERD_DIRTY; in fmd_serd_eng_gc()
277 fmd_serd_eng_commit(fmd_serd_eng_t *sgp, void *arg __unused) in fmd_serd_eng_commit() argument
281 if (!(sgp->sg_flags & FMD_SERD_DIRTY)) in fmd_serd_eng_commit()
284 for (sep = fmd_list_next(&sgp->sg_list); sep != NULL; in fmd_serd_eng_commit()
288 sgp->sg_flags &= ~FMD_SERD_DIRTY; in fmd_serd_eng_commit()
292 fmd_serd_eng_clrdirty(fmd_serd_eng_t *sgp, void *arg __unused) in fmd_serd_eng_clrdirty() argument
294 sgp->sg_flags &= ~FMD_SERD_DIRTY; in fmd_serd_eng_clrdirty()