'kwargs: keys should be in the mmap name set
Returns a (mask, values) tuple.'

def __call__(self, **kwargs):

    mask = 0
    values = []
    for (m, s) in self.mmap:
        if (s in kwargs):
            val = kwargs.get(s)
            if (val is not None):
                mask |= m
                values.append(getattr(val, '_maskvalue', val))
            del kwargs[s]
    if kwargs:
        raise ValueError(('Unknown    mask    names:    %s' % list(kwargs.keys())))
    return (mask, values)
