+ static Kern Global() { return Kern(1); }
+ };
+
+ typedef L4_fpage::Rights Rights;
+
+ struct Attr
+ {
+ Rights rights;
+ Type type;
+ Kern kern;
+
+ Attr() = default;
+ explicit Attr(Rights r, Type t = Type::Normal(), Kern k = Kern(0))
+ : rights(r), type(t), kern(k) {}
+
+ Attr apply(Attr o) const
+ {
+ Attr n = *this;
+ n.rights &= o.rights;
+ if ((o.type & Type::Set()) == Type::Set())
+ n.type = o.type & ~Type::Set();
+ return n;
+ }
+ };