+#define EXTATTR_TOKENS do { \
+ if (ARG_IS_VALID(kar, ARG_VALUE32)) { \
+ switch (ar->ar_arg_value32) { \
+ case EXTATTR_NAMESPACE_USER: \
+ tok = au_to_text(EXTATTR_NAMESPACE_USER_STRING);\
+ break; \
+ case EXTATTR_NAMESPACE_SYSTEM: \
+ tok = au_to_text(EXTATTR_NAMESPACE_SYSTEM_STRING);\
+ break; \
+ default: \
+ tok = au_to_arg32(3, "attrnamespace", \
+ ar->ar_arg_value32); \
+ break; \
+ } \
+ kau_write(rec, tok); \
+ } \
+ /* attrname is in the text field */ \
+ if (ARG_IS_VALID(kar, ARG_TEXT)) { \
+ tok = au_to_text(ar->ar_arg_text); \
+ kau_write(rec, tok); \
+ } \
+} while (0)
+
+#define EXTENDED_TOKENS(n) do { \
+ /* ACL data */ \
+ if (ARG_IS_VALID(kar, ARG_OPAQUE)) { \
+ tok = au_to_opaque(ar->ar_arg_opaque, \
+ ar->ar_arg_opq_size); \
+ kau_write(rec, tok); \
+ } \
+ if (ARG_IS_VALID(kar, ARG_MODE)) { \
+ tok = au_to_arg32(n+2, "mode", ar->ar_arg_mode);\
+ kau_write(rec, tok); \
+ } \
+ if (ARG_IS_VALID(kar, ARG_GID)) { \
+ tok = au_to_arg32(n+1, "gid", ar->ar_arg_gid); \
+ kau_write(rec, tok); \
+ } \
+ if (ARG_IS_VALID(kar, ARG_UID)) { \
+ tok = au_to_arg32(n, "uid", ar->ar_arg_uid); \
+ kau_write(rec, tok); \
+ } \
+} while (0)
+
+#define PROCESS_MAC_TOKENS do { \
+ if (ar->ar_valid_arg & ARG_MAC_STRING) { \
+ tok = au_to_text(ar->ar_arg_mac_string); \
+ kau_write(rec, tok); \
+ } \