closure
uset closure;
blocks[i]->closure = p;
SET_INSERT(b->closure, b->id);
SET_UNION(JT(b)->closure, b->closure, nodewords);
SET_UNION(JF(b)->closure, b->closure, nodewords);
typedef void detailed_cb(const struct detailed_timing *timing, void *closure);
cea_for_each_detailed_block(const u8 *ext, detailed_cb *cb, void *closure)
cb((const struct detailed_timing *)(det_base + 18 * i), closure);
vtb_for_each_detailed_block(const u8 *ext, detailed_cb *cb, void *closure)
cb((const struct detailed_timing *)(det_base + 18 * i), closure);
detailed_cb *cb, void *closure)
cb(&drm_edid->edid->detailed_timings[i], closure);
cea_for_each_detailed_block(ext, cb, closure);
vtb_for_each_detailed_block(ext, cb, closure);
struct detailed_mode_closure *closure = c;
closure->modes += drm_dmt_modes_for_range(closure->connector,
closure->drm_edid,
if (closure->drm_edid->edid->revision < 2)
closure->modes += drm_gtf2_modes_for_range(closure->connector,
closure->drm_edid,
closure->modes += drm_gtf_modes_for_range(closure->connector,
closure->drm_edid,
if (closure->drm_edid->edid->revision < 4)
closure->modes += drm_cvt_modes_for_range(closure->connector,
closure->drm_edid,
struct detailed_mode_closure closure = {
drm_for_each_detailed_block(drm_edid, do_inferred_modes, &closure);
return closure.modes;
struct detailed_mode_closure *closure = c;
closure->modes += drm_est3_modes(closure->connector, timing);
struct detailed_mode_closure closure = {
&closure);
return modes + closure.modes;
struct detailed_mode_closure *closure = c;
struct drm_connector *connector = closure->connector;
newmode = drm_mode_std(connector, closure->drm_edid, std);
closure->modes++;
struct detailed_mode_closure closure = {
&closure);
return modes + closure.modes;
struct detailed_mode_closure *closure = c;
closure->modes += drm_cvt_modes(closure->connector, timing);
struct detailed_mode_closure closure = {
drm_for_each_detailed_block(drm_edid, do_cvt_mode, &closure);
return closure.modes;
struct detailed_mode_closure *closure = c;
newmode = drm_mode_detailed(closure->connector,
closure->drm_edid, timing);
if (closure->preferred)
fixup_detailed_cea_mode_clock(closure->connector, newmode);
drm_mode_probed_add(closure->connector, newmode);
closure->modes++;
closure->preferred = false;
struct detailed_mode_closure closure = {
closure.preferred = true; /* first detailed timing is always preferred */
closure.preferred =
drm_for_each_detailed_block(drm_edid, do_detailed_mode, &closure);
return closure.modes;
struct drm_edid_match_closure *closure = data;
const char *name = closure->ident->name;
closure->matched = true;
struct drm_edid_match_closure closure = {
drm_for_each_detailed_block(drm_edid, match_identity, &closure);
return closure.matched;
struct detailed_mode_closure *closure = c;
struct drm_display_info *info = &closure->connector->display_info;
const struct edid *edid = closure->drm_edid->edid;
struct detailed_mode_closure closure = {
drm_for_each_detailed_block(drm_edid, get_monitor_range, &closure);
extern void closure(short *, int);
closure(this_state->items, this_state->nitems);
afs_cont(int rc, int term, void *closure)
struct continuation *cp = (struct continuation *) closure;
afs_retry(int rc, int term, void *closure)
struct continuation *cp = (struct continuation *) closure;
timeout(unsigned int secs, void (*fn)(void *), void *closure)
cpnew->c_closure = closure;
void *closure = cp->c_closure;
(*fn)(closure);
free_map_if_success(int rc, int term, void *closure)
am_node *mp = (am_node *) closure;
nfsx_cont(int rc, int term, void *closure)
mntfs *mf = (mntfs *) closure;