CCSM FIXME’s

# gs_exit hook only when ccsm is not set, otherwise use ccsm_exit hook

and callbacks in ccsm that essentially mimic gs_exit hook functionality:

#ifdef ccsm
  ccsm_exit()
#else
#ifdef GS
  gs_exit()
#endif
#endif

# missing relationship between sets and multiple owners of that set

  • should be able to step back from a given set to all sets of which it is a member
  • get_flag:

    flags     = get_flags(s);
    one_flag &= flags & ONE_FLAG_MASK;
    
  • ex of unsetting a flag:

    foo = get_flags(s)
    foo &= (~flag)
    set_flags(s, foo)
    
  • ex of setting a flag:

    foo = get_flags(s)
    foo |= flag
    set_flags(s, foo)
    
  • ex of iterator which applies an action ‘a’ if a function ‘f’ evaluates to true for each member of a set, i.e.: for all sets x of which y is a member, do z:

    forall(*f, *void extra_data_f, size_f, *a, *void extra_data_a, size_t size_a) {
        list_for_each_entry(member, &list_of_all_ccsm_sets, list_head) {
              if f ( member, extra_data_f, size_f ) {
                 a ( member, extra_data_a, size_a )
              }
        }
    }
  • we need to be able to cancel the callbacks individually, this implies that registration of a callback should return a callback handle to the registrant who would then use the handle to cancel the callback as desired

Previous topic

CCSM: Active Filter Support

This Page