| 620 | |
| 621 | |
| 622 | string stringify(int flags) |
| 623 | { |
| 624 | const hashmap<unsigned int, string> names = { |
| 625 | {CLONE_NEWNS, "CLONE_NEWNS"}, |
| 626 | {CLONE_NEWUTS, "CLONE_NEWUTS"}, |
| 627 | {CLONE_NEWIPC, "CLONE_NEWIPC"}, |
| 628 | {CLONE_NEWPID, "CLONE_NEWPID"}, |
| 629 | {CLONE_NEWNET, "CLONE_NEWNET"}, |
| 630 | {CLONE_NEWUSER, "CLONE_NEWUSER"}, |
| 631 | {CLONE_NEWCGROUP, "CLONE_NEWCGROUP"} |
| 632 | }; |
| 633 | |
| 634 | vector<string> namespaces; |
| 635 | foreachpair (unsigned int flag, const string& name, names) { |
| 636 | if (flags & flag) { |
| 637 | namespaces.push_back(name); |
| 638 | } |
| 639 | } |
| 640 | |
| 641 | return strings::join(" | ", namespaces); |
| 642 | } |
| 643 | |
| 644 | } // namespace ns { |