Fix *at syscalls flags decoding

Several *at decoders were defining own incomplete *atflags xlat
structures.  That was error prone, and fchownat decoder actually
failed to recognize AT_EMPTY_PATH.  Merging these incomplete
structures into the single at_flags xlat structure will fix
flags handling in all these decoders altogether.

* file.c: Define all AT_* constants used by *at decoders.
(at_flags): New xlat structure, with records for all AT_* constants.
(fstatatflags, linkat_flags, unlinkatflags): Remove.
(sys_newfstatat, sys_linkat, sys_unlinkat, sys_fchownat,
sys_utimensat):  Use at_flags.
diff --git a/file.c b/file.c
index 1c830f6..89abb84 100644
--- a/file.c
+++ b/file.c
@@ -1239,14 +1239,30 @@
 #endif
 }
 
-static const struct xlat fstatatflags[] = {
 #ifndef AT_SYMLINK_NOFOLLOW
-# define AT_SYMLINK_NOFOLLOW     0x100
+# define AT_SYMLINK_NOFOLLOW	0x100
 #endif
+#ifndef AT_REMOVEDIR
+# define AT_REMOVEDIR		0x200
+#endif
+#ifndef AT_SYMLINK_FOLLOW
+# define AT_SYMLINK_FOLLOW	0x400
+#endif
+#ifndef AT_NO_AUTOMOUNT
+# define AT_NO_AUTOMOUNT	0x800
+#endif
+#ifndef AT_EMPTY_PATH
+# define AT_EMPTY_PATH		0x1000
+#endif
+
+static const struct xlat at_flags[] = {
 	{ AT_SYMLINK_NOFOLLOW,	"AT_SYMLINK_NOFOLLOW"	},
-	{ 0,			NULL			},
+	{ AT_REMOVEDIR,		"AT_REMOVEDIR"		},
+	{ AT_SYMLINK_FOLLOW,	"AT_SYMLINK_FOLLOW"	},
+	{ AT_NO_AUTOMOUNT,	"AT_NO_AUTOMOUNT"	},
+	{ AT_EMPTY_PATH,	"AT_EMPTY_PATH"		},
+	{ 0,			NULL			}
 };
-#define utimensatflags fstatatflags
 
 int
 sys_newfstatat(struct tcb *tcp)
@@ -1267,7 +1283,7 @@
 		printstat(tcp, tcp->u_arg[2]);
 #endif
 		tprints(", ");
-		printflags(fstatatflags, tcp->u_arg[3], "AT_???");
+		printflags(at_flags, tcp->u_arg[3], "AT_???");
 	}
 	return 0;
 }
@@ -1853,19 +1869,6 @@
 	return 0;
 }
 
-#ifndef AT_SYMLINK_FOLLOW
-# define AT_SYMLINK_FOLLOW	0x400
-#endif
-#ifndef AT_EMPTY_PATH
-# define AT_EMPTY_PATH		0x1000
-#endif
-
-static const struct xlat linkat_flags[] = {
-	{ AT_SYMLINK_FOLLOW,	"AT_SYMLINK_FOLLOW"	},
-	{ AT_EMPTY_PATH,	"AT_EMPTY_PATH"		},
-	{ 0,			NULL			}
-};
-
 int
 sys_linkat(struct tcb *tcp)
 {
@@ -1876,19 +1879,11 @@
 		print_dirfd(tcp, tcp->u_arg[2]);
 		printpath(tcp, tcp->u_arg[3]);
 		tprints(", ");
-		printflags(linkat_flags, tcp->u_arg[4], "AT_???");
+		printflags(at_flags, tcp->u_arg[4], "AT_???");
 	}
 	return 0;
 }
 
-static const struct xlat unlinkatflags[] = {
-#ifndef AT_REMOVEDIR
-# define AT_REMOVEDIR            0x200
-#endif
-	{ AT_REMOVEDIR,	"AT_REMOVEDIR"	},
-	{ 0,		NULL		},
-};
-
 int
 sys_unlinkat(struct tcb *tcp)
 {
@@ -1896,7 +1891,7 @@
 		print_dirfd(tcp, tcp->u_arg[0]);
 		printpath(tcp, tcp->u_arg[1]);
 		tprints(", ");
-		printflags(unlinkatflags, tcp->u_arg[2], "AT_???");
+		printflags(at_flags, tcp->u_arg[2], "AT_???");
 	}
 	return 0;
 }
@@ -1983,7 +1978,7 @@
 		printuid(", ", tcp->u_arg[2]);
 		printuid(", ", tcp->u_arg[3]);
 		tprints(", ");
-		printflags(fstatatflags, tcp->u_arg[4], "AT_???");
+		printflags(at_flags, tcp->u_arg[4], "AT_???");
 	}
 	return 0;
 }
@@ -2089,7 +2084,7 @@
 		print_dirfd(tcp, tcp->u_arg[0]);
 		decode_utimes(tcp, 1, 1);
 		tprints(", ");
-		printflags(utimensatflags, tcp->u_arg[3], "AT_???");
+		printflags(at_flags, tcp->u_arg[3], "AT_???");
 	}
 	return 0;
 }