• Home
  • Raw
  • Download

Lines Matching refs:sg

62 static void sg_init(Segment* const sg,  in sg_init()  argument
69 tl_assert(sg); in sg_init()
76 sg->g_next = NULL; in sg_init()
77 sg->g_prev = NULL; in sg_init()
78 sg->thr_next = NULL; in sg_init()
79 sg->thr_prev = NULL; in sg_init()
80 sg->tid = created; in sg_init()
81 sg->refcnt = 1; in sg_init()
84 sg->stacktrace = VG_(record_ExeContext)(vg_created, 0); in sg_init()
86 sg->stacktrace = 0; in sg_init()
89 DRD_(vc_copy)(&sg->vc, &creator_sg->vc); in sg_init()
91 DRD_(vc_init)(&sg->vc, 0, 0); in sg_init()
92 DRD_(vc_increment)(&sg->vc, created); in sg_init()
93 DRD_(bm_init)(&sg->bm); in sg_init()
99 vc = DRD_(vc_aprint)(&sg->vc); in sg_init()
107 static void DRD_(sg_cleanup)(Segment* const sg) in DRD_()
109 tl_assert(sg); in DRD_()
110 tl_assert(sg->refcnt == 0); in DRD_()
112 DRD_(vc_cleanup)(&sg->vc); in DRD_()
113 DRD_(bm_cleanup)(&sg->bm); in DRD_()
119 Segment* sg; in DRD_() local
126 sg = VG_(malloc)("drd.segment.sn.1", sizeof(*sg)); in DRD_()
127 tl_assert(sg); in DRD_()
128 sg_init(sg, creator, created); in DRD_()
130 DRD_(g_sg_list)->g_prev = sg; in DRD_()
131 sg->g_next = DRD_(g_sg_list); in DRD_()
133 DRD_(g_sg_list) = sg; in DRD_()
134 return sg; in DRD_()
137 static void DRD_(sg_delete)(Segment* const sg) in DRD_()
143 vc = DRD_(vc_aprint)(&sg->vc); in DRD_()
151 tl_assert(sg); in DRD_()
152 if (sg->g_next) in DRD_()
153 sg->g_next->g_prev = sg->g_prev; in DRD_()
154 if (sg->g_prev) in DRD_()
155 sg->g_prev->g_next = sg->g_next; in DRD_()
157 DRD_(g_sg_list) = sg->g_next; in DRD_()
158 DRD_(sg_cleanup)(sg); in DRD_()
159 VG_(free)(sg); in DRD_()
163 Segment* DRD_(sg_get)(Segment* const sg) in DRD_()
165 tl_assert(sg); in DRD_()
167 sg->refcnt++; in DRD_()
168 return sg; in DRD_()
175 void DRD_(sg_put)(Segment* const sg) in DRD_()
177 if (sg == 0) in DRD_()
184 vc = DRD_(vc_aprint)(&sg->vc); in DRD_()
187 sg->refcnt, sg->refcnt - 1, vc); in DRD_()
191 tl_assert(sg->refcnt >= 1); in DRD_()
193 if (--sg->refcnt == 0) in DRD_()
195 DRD_(sg_delete)(sg); in DRD_()
229 void DRD_(sg_print)(Segment* const sg) in DRD_()
231 tl_assert(sg); in DRD_()
233 DRD_(vc_print)(&sg->vc); in DRD_()
235 DRD_(bm_print)(&sg->bm); in DRD_()