public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH v3 01/17] Implemement support for groups of syscalls in the xml-syscall interface.
  2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
  2015-04-26  1:25 ` [PATCH v3 02/17] Add support to catch groups of syscalls Gabriel Krisman Bertazi
  2015-04-26  1:25 ` [PATCH v3 03/17] Add tests for catching groups of syscalls on supported architectures Gabriel Krisman Bertazi
@ 2015-04-26  1:25 ` Gabriel Krisman Bertazi
  2015-04-26  1:26 ` [PATCH v3 09/17] Create syscall groups for bfin Gabriel Krisman Bertazi
                   ` (15 subsequent siblings)
  18 siblings, 0 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-04-26  1:25 UTC (permalink / raw)
  To: gdb-patches; +Cc: dje, sergiodj, Gabriel Krisman Bertazi

This implements support for groups of syscalls in the xml-syscall
interface.

It is done by maintaining a list of syscall_group_desc for each syscall
group inside the syscalls_info structure.  Inside each
syscall_group_desc we have a vector of pointers to the syscalls that are
part of that group.

I also experimented with storing the group info inside each syscall_desc
element, but that wasn't very practical when dealing with syscalls that
are part of more than one group. :)

gdb/

	* syscalls/gdb-syscalls.dtd: Include group attribute to the
	syscall element.
	* xml-syscall.c (get_syscalls_by_group): New.
	(get_syscall_group_names): New.
	(struct syscall_group_desc): New structure to store group data.
	(struct syscalls_info): Include field to store the group list.
	(sysinfo_free_syscall_group_desc): New.
	(free_syscalls_info): Free group list.
	(syscall_group_create_syscall_group_desc): New.
	(syscall_group_add_syscall): New.
	(syscall_create_syscall_desc): Add syscall to its groups.
	(syscall_start_syscall): Load group attribute.
	(syscall_group_get_group_by_name): New.
	(xml_list_syscalls_by_group): New.
	(xml_list_of_groups): New.
	* xml-syscall.h (get_syscalls_by_group): Export function
	to retrieve a list of syscalls filtered by the group name.
	(get_syscall_group_names): Export function to retrieve the list
	of syscall groups.
---
 gdb/syscalls/gdb-syscalls.dtd |   3 +-
 gdb/xml-syscall.c             | 231 +++++++++++++++++++++++++++++++++++++++++-
 gdb/xml-syscall.h             |  16 +++
 3 files changed, 247 insertions(+), 3 deletions(-)

diff --git a/gdb/syscalls/gdb-syscalls.dtd b/gdb/syscalls/gdb-syscalls.dtd
index b05976e..3fe7cce 100644
--- a/gdb/syscalls/gdb-syscalls.dtd
+++ b/gdb/syscalls/gdb-syscalls.dtd
@@ -11,4 +11,5 @@
 <!ELEMENT syscall		EMPTY>
 <!ATTLIST syscall
 	name			CDATA	#REQUIRED
-	number			CDATA	#REQUIRED>
+	number			CDATA	#REQUIRED
+	groups			CDATA	#OPTIONAL>
diff --git a/gdb/xml-syscall.c b/gdb/xml-syscall.c
index ea85a2c..e171dba 100644
--- a/gdb/xml-syscall.c
+++ b/gdb/xml-syscall.c
@@ -77,6 +77,20 @@ get_syscall_names (struct gdbarch *gdbarch)
   return NULL;
 }
 
+struct syscall *
+get_syscalls_by_group (struct gdbarch *gdbarch, const char *group)
+{
+  syscall_warn_user ();
+  return NULL;
+}
+
+const char **
+get_syscall_group_names (struct gdbarch *gdbarch)
+{
+  syscall_warn_user ();
+  return NULL;
+}
+
 #else /* ! HAVE_LIBEXPAT */
 
 /* Structure which describes a syscall.  */
@@ -92,6 +106,19 @@ typedef struct syscall_desc
 } *syscall_desc_p;
 DEF_VEC_P(syscall_desc_p);
 
+/* Structure of a syscall group.  */
+typedef struct syscall_group_desc
+{
+  /* The group name.  */
+
+  char *name;
+
+  /* The syscalls that are part of the group.  */
+
+  VEC(syscall_desc_p) *syscalls;
+} *syscall_group_desc_p;
+DEF_VEC_P(syscall_group_desc_p);
+
 /* Structure that represents syscalls information.  */
 struct syscalls_info
 {
@@ -99,6 +126,10 @@ struct syscalls_info
 
   VEC(syscall_desc_p) *syscalls;
 
+  /* The syscall groups.  */
+
+  VEC(syscall_group_desc_p) *groups;
+
   /* Variable that will hold the last known data-directory.  This is
      useful to know whether we should re-read the XML info for the
      target.  */
@@ -126,11 +157,21 @@ syscalls_info_free_syscalls_desc (struct syscall_desc *sd)
   xfree (sd->name);
 }
 
+/* Free syscall_group_desc members but not the structure itself.  */
+
+static void
+syscalls_info_free_syscall_group_desc (struct syscall_group_desc *sd)
+{
+  VEC_free (syscall_desc_p, sd->syscalls);
+  xfree (sd->name);
+}
+
 static void
 free_syscalls_info (void *arg)
 {
   struct syscalls_info *syscalls_info = arg;
   struct syscall_desc *sysdesc;
+  struct syscall_group_desc *groupdesc;
   int i;
 
   xfree (syscalls_info->my_gdb_datadir);
@@ -144,6 +185,17 @@ free_syscalls_info (void *arg)
       VEC_free (syscall_desc_p, syscalls_info->syscalls);
     }
 
+  if (syscalls_info->groups != NULL)
+    {
+      for (i = 0;
+	   VEC_iterate (syscall_group_desc_p,
+			syscalls_info->groups, i, groupdesc);
+	   i++)
+	syscalls_info_free_syscall_group_desc (groupdesc);
+
+      VEC_free (syscall_group_desc_p, syscalls_info->groups);
+    }
+
   xfree (syscalls_info);
 }
 
@@ -153,16 +205,73 @@ make_cleanup_free_syscalls_info (struct syscalls_info *syscalls_info)
   return make_cleanup (free_syscalls_info, syscalls_info);
 }
 
+/* Create a new syscall group.  Return pointer to the
+   syscall_group_desc structure that represents the new group.  */
+
+static struct syscall_group_desc *
+syscall_group_create_syscall_group_desc (struct syscalls_info *syscalls_info,
+					 const char *group)
+{
+  struct syscall_group_desc *groupdesc = XCNEW (struct syscall_group_desc);
+
+  groupdesc->name = xstrdup (group);
+
+  VEC_safe_push (syscall_group_desc_p, syscalls_info->groups, groupdesc);
+
+  return groupdesc;
+}
+
+/* Add a syscall to the group.  If group doesn't exist, create it.  */
+
+static void
+syscall_group_add_syscall (struct syscalls_info *syscalls_info,
+			   struct syscall_desc *syscall,
+			   const char *group)
+{
+  struct syscall_group_desc *groupdesc;
+  int i;
+
+  /* Search for an existing group.  */
+  for (i = 0;
+       VEC_iterate (syscall_group_desc_p, syscalls_info->groups, i, groupdesc);
+       i++)
+    {
+      if (strcmp (groupdesc->name, group) == 0)
+	break;
+    }
+
+  if (groupdesc == NULL)
+    {
+      /* No group was found with this name.  We must create a new
+	 one.  */
+      groupdesc = syscall_group_create_syscall_group_desc (syscalls_info,
+							   group);
+    }
+
+  VEC_safe_push (syscall_desc_p, groupdesc->syscalls, syscall);
+}
+
 static void
 syscall_create_syscall_desc (struct syscalls_info *syscalls_info,
-                             const char *name, int number)
+			     const char *name, int number,
+			     char *groups)
 {
   struct syscall_desc *sysdesc = XCNEW (struct syscall_desc);
+  char *group;
 
   sysdesc->name = xstrdup (name);
   sysdesc->number = number;
 
   VEC_safe_push (syscall_desc_p, syscalls_info->syscalls, sysdesc);
+
+  /*  Add syscall to its groups.  */
+  if (groups != NULL)
+    {
+      for (group = strtok (groups, ",");
+	   group != NULL;
+	   group = strtok (NULL, ","))
+	syscall_group_add_syscall (syscalls_info, sysdesc, group);
+    }
 }
 
 /* Handle the start of a <syscall> element.  */
@@ -177,6 +286,7 @@ syscall_start_syscall (struct gdb_xml_parser *parser,
   /* syscall info.  */
   char *name = NULL;
   int number = 0;
+  char *groups = NULL;
 
   len = VEC_length (gdb_xml_value_s, attributes);
 
@@ -186,13 +296,15 @@ syscall_start_syscall (struct gdb_xml_parser *parser,
         name = attrs[i].value;
       else if (strcmp (attrs[i].name, "number") == 0)
         number = * (ULONGEST *) attrs[i].value;
+      else if (strcmp (attrs[i].name, "groups") == 0)
+        groups = attrs[i].value;
       else
         internal_error (__FILE__, __LINE__,
                         _("Unknown attribute name '%s'."), attrs[i].name);
     }
 
   gdb_assert (name);
-  syscall_create_syscall_desc (data->syscalls_info, name, number);
+  syscall_create_syscall_desc (data->syscalls_info, name, number, groups);
 }
 
 
@@ -200,6 +312,7 @@ syscall_start_syscall (struct gdb_xml_parser *parser,
 static const struct gdb_xml_attribute syscall_attr[] = {
   { "number", GDB_XML_AF_NONE, gdb_xml_parse_attr_ulongest, NULL },
   { "name", GDB_XML_AF_NONE, NULL, NULL },
+  { "groups", GDB_XML_AF_OPTIONAL, NULL, NULL },
   { NULL, GDB_XML_AF_NONE, NULL, NULL }
 };
 
@@ -321,6 +434,32 @@ init_syscalls_info (struct gdbarch *gdbarch)
   set_gdbarch_syscalls_info (gdbarch, syscalls_info);
 }
 
+/* Search for a syscall group by its name.  Return syscall_group_desc
+   structure for the group if found or NULL otherwise.  */
+
+static struct syscall_group_desc *
+syscall_group_get_group_by_name (const struct syscalls_info *syscalls_info,
+				 const char *group)
+{
+  struct syscall_group_desc *groupdesc;
+  int i;
+
+  if (syscalls_info == NULL)
+    return NULL;
+
+  if (group == NULL)
+    return NULL;
+
+   /* Search for existing group.  */
+  for (i = 0;
+       VEC_iterate (syscall_group_desc_p, syscalls_info->groups, i, groupdesc);
+       i++)
+    if (strcmp (groupdesc->name, group) == 0)
+      return groupdesc;
+
+  return NULL;
+}
+
 static int
 xml_get_syscall_number (struct gdbarch *gdbarch,
                         const char *syscall_name)
@@ -388,6 +527,74 @@ xml_list_of_syscalls (struct gdbarch *gdbarch)
   return names;
 }
 
+/* Iterate over the syscall_group_desc element to return a list of
+   syscalls that are part of the given group, terminated by an empty
+   element.  If the syscall group doesn't exist, return NULL.  */
+
+static struct syscall *
+xml_list_syscalls_by_group (struct gdbarch *gdbarch, const char *group)
+{
+  struct syscalls_info *syscalls_info = gdbarch_syscalls_info (gdbarch);
+  struct syscall_group_desc *groupdesc;
+  struct syscall_desc *sysdesc;
+  struct syscall *syscalls = NULL;
+  int nsyscalls;
+  int i;
+
+  if (syscalls_info == NULL)
+    return NULL;
+
+  groupdesc = syscall_group_get_group_by_name (syscalls_info, group);
+  if (groupdesc == NULL)
+    return NULL;
+
+  nsyscalls = VEC_length (syscall_desc_p, groupdesc->syscalls);
+  syscalls = xmalloc ((nsyscalls + 1) * sizeof (struct syscall));
+
+  for (i = 0;
+       VEC_iterate (syscall_desc_p, groupdesc->syscalls, i, sysdesc);
+       i++)
+    {
+      syscalls[i].name = sysdesc->name;
+      syscalls[i].number = sysdesc->number;
+    }
+
+  /* Add final element marker.  */
+  syscalls[i].name = NULL;
+  syscalls[i].number = 0;
+
+  return syscalls;
+}
+
+/* Return a NULL terminated list of syscall groups or an empty list, if
+   no syscall group is available.  Return NULL, if there is no syscall
+   information available.  */
+
+static const char **
+xml_list_of_groups (struct gdbarch *gdbarch)
+{
+  struct syscalls_info *syscalls_info = gdbarch_syscalls_info (gdbarch);
+  struct syscall_group_desc *groupdesc;
+  const char **names = NULL;
+  int i;
+  int ngroups;
+
+  if (syscalls_info == NULL)
+    return NULL;
+
+  ngroups = VEC_length (syscall_group_desc_p, syscalls_info->groups);
+  names = xmalloc ((ngroups + 1) * sizeof (char *));
+
+  for (i = 0;
+       VEC_iterate (syscall_group_desc_p, syscalls_info->groups, i, groupdesc);
+       i++)
+    names[i] = groupdesc->name;
+
+  names[i] = NULL;
+
+  return names;
+}
+
 void
 set_xml_syscall_file_name (struct gdbarch *gdbarch, const char *name)
 {
@@ -422,4 +629,24 @@ get_syscall_names (struct gdbarch *gdbarch)
   return xml_list_of_syscalls (gdbarch);
 }
 
+/* See comment in xml-syscall.h.  */
+
+struct syscall *
+get_syscalls_by_group (struct gdbarch *gdbarch, const char *group)
+{
+  init_syscalls_info (gdbarch);
+
+  return xml_list_syscalls_by_group (gdbarch, group);
+}
+
+/* See comment in xml-syscall.h.  */
+
+const char **
+get_syscall_group_names (struct gdbarch *gdbarch)
+{
+  init_syscalls_info (gdbarch);
+
+  return xml_list_of_groups (gdbarch);
+}
+
 #endif /* ! HAVE_LIBEXPAT */
diff --git a/gdb/xml-syscall.h b/gdb/xml-syscall.h
index 55c9696..a47a458 100644
--- a/gdb/xml-syscall.h
+++ b/gdb/xml-syscall.h
@@ -50,4 +50,20 @@ void get_syscall_by_name (struct gdbarch *gdbarch,
 
 const char **get_syscall_names (struct gdbarch *gdbarch);
 
+/* Function used to retrieve the list of syscalls of a given group in
+   the system.  Return a list of syscalls that are element of the
+   group, terminated by an empty element. The list is malloc'ed
+   and must be freed by the caller.  If group doesn't exist, return
+   NULL.  */
+
+struct syscall *get_syscalls_by_group (struct gdbarch *gdbarch,
+				       const char *group);
+
+/* Function used to retrieve the list of syscall groups in the system.
+   Return an array of strings terminated by a NULL element.  The list
+   must be freed by the caller.  Return NULL if there is no syscall
+   information available.  */
+
+const char **get_syscall_group_names (struct gdbarch *gdbarch);
+
 #endif /* XML_SYSCALL_H */
-- 
1.9.3

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v3 03/17] Add tests for catching groups of syscalls on supported architectures.
  2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
  2015-04-26  1:25 ` [PATCH v3 02/17] Add support to catch groups of syscalls Gabriel Krisman Bertazi
@ 2015-04-26  1:25 ` Gabriel Krisman Bertazi
  2015-04-26 18:44   ` Sergio Durigan Junior
  2015-04-26  1:25 ` [PATCH v3 01/17] Implemement support for groups of syscalls in the xml-syscall interface Gabriel Krisman Bertazi
                   ` (16 subsequent siblings)
  18 siblings, 1 reply; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-04-26  1:25 UTC (permalink / raw)
  To: gdb-patches; +Cc: dje, sergiodj, Gabriel Krisman Bertazi

gdb/testsuite/

	* gdb.base/catch-syscall.exp (do_syscall_tests): Add call
	to test_catch_syscall_group.
	(test_catch_syscall_group): New.
---
 gdb/testsuite/gdb.base/catch-syscall.exp | 37 ++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gdb/testsuite/gdb.base/catch-syscall.exp b/gdb/testsuite/gdb.base/catch-syscall.exp
index df0004a..c65c8e3 100644
--- a/gdb/testsuite/gdb.base/catch-syscall.exp
+++ b/gdb/testsuite/gdb.base/catch-syscall.exp
@@ -269,6 +269,40 @@ proc test_catch_syscall_fail_nodatadir {} {
     }
 }
 
+proc test_catch_syscall_group {} {
+    global decimal
+
+    set sysnum "\\\[${decimal}\\\]"
+
+    gdb_test "catch syscall g:process" \
+	"Catchpoint $decimal \\(syscalls (\'(clone|fork|execve|exit)\' $sysnum)+.*" \
+	"set catchpoint on a group of syscalls"
+
+    gdb_test "catch syscall group:process read" \
+	"Catchpoint $decimal \\(syscalls (\'(clone|fork|execve|exit)\' $sysnum)+.*read.*\\)" \
+	"set catchpoints on a group of syscalls and on a single syscall"
+
+    gdb_test "catch syscall group:" \
+	"Unknown syscall group.*" \
+	"set catchpoints on an invalid group"
+
+    gdb_test "catch syscall g:junk" \
+	"Unknown syscall group.*" \
+	"set catchpoints on an unknown group."
+
+    gdb_test "complete catch syscall g:proc" \
+	"catch syscall g:process" \
+	"complete catch syscall group with 'g:' prefix"
+
+    gdb_test "complete catch syscall group:proc" \
+	"catch syscall group:process" \
+	"complete catch syscall group with 'group:' prefix"
+
+    gdb_test "complete catch syscall g" \
+	".*group:process.*" \
+	"complete catch syscall group suggests 'group:' prefix"
+}
+
 proc do_syscall_tests {} {
     # NOTE: We don't have to point gdb at the correct data-directory.
     # For the build tree that is handled by INTERNAL_GDBFLAGS.
@@ -309,6 +343,9 @@ proc do_syscall_tests {} {
     # Testing if the 'catch syscall' command works when switching to
     # different architectures on-the-fly (PR gdb/10737).
     if [runto_main] then { test_catch_syscall_multi_arch }
+
+    # Testing the 'catch' syscall command for a group of syscalls.
+    if [runto_main] then { test_catch_syscall_group }
 }
 
 proc test_catch_syscall_without_args_noxml {} {
-- 
1.9.3

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v3 00/17] Catch syscall group
@ 2015-04-26  1:25 Gabriel Krisman Bertazi
  2015-04-26  1:25 ` [PATCH v3 02/17] Add support to catch groups of syscalls Gabriel Krisman Bertazi
                   ` (18 more replies)
  0 siblings, 19 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-04-26  1:25 UTC (permalink / raw)
  To: gdb-patches; +Cc: dje, sergiodj, Gabriel Krisman Bertazi

Hello,

This is the third version of the catch syscall group patches.  This
version presents the following modifications, other than fixing the
things Sergio and Doug pointed out in previous reviews:

* Created syscall groups for every architecture supported by catch
  syscall.

The previous version only implemented syscalls for amd64.  I used a
script to generate the xmls, and based the group field information on
strace, so please share your thoughts if you disagree with any group.

I babysitted the xml generation scripts but I was not able to actually
test them on architectures other than amd64 and i386.  It would be very
nice if someone could actually run catch-syscall.exp on other
architectures.

* Now, catch syscall group tests are performed on every architecture
that supports catch-syscall and not only on amd64.

I'm also not resending the documentation patch because Eli already
approved it (twice :)

I've split patches in several parts to ease review.  I'll squash
them all together before pushing upstream.

Please, tell me what you think!

Gabriel Krisman Bertazi (17):
  Implemement support for groups of syscalls in the xml-syscall    
    interface.
  Add support to catch groups of syscalls.
  Add tests for catching groups of syscalls on supported    
    architectures.
  Create syscall groups for amd64.
  Create syscall groups for ppc.
  Create syscall groups for ppc64.
  Create syscall groups for aarch64.
  Create syscall groups for arm.
  Create syscall groups for bfin.
  Create syscall groups for i386.
  Create syscall groups for mips-n32.
  Create syscall groups for mips-n64.
  Create syscall groups for mips-o32.
  Create syscall groups for s390.
  Create syscall groups for s390x.
  Create syscall groups for sparc.
  Create syscall groups for sparc64.

 gdb/break-catch-syscall.c                |  94 ++++++-
 gdb/syscalls/aarch64-linux.xml           | 314 +++++++++++----------
 gdb/syscalls/amd64-linux.xml             | 364 ++++++++++++------------
 gdb/syscalls/arm-linux.xml               | 470 ++++++++++++++++---------------
 gdb/syscalls/bfin-linux.xml              | 368 ++++++++++++------------
 gdb/syscalls/gdb-syscalls.dtd            |   3 +-
 gdb/syscalls/i386-linux.xml              | 346 ++++++++++++-----------
 gdb/syscalls/mips-n32-linux.xml          | 374 ++++++++++++------------
 gdb/syscalls/mips-n64-linux.xml          | 362 ++++++++++++------------
 gdb/syscalls/mips-o32-linux.xml          | 398 +++++++++++++-------------
 gdb/syscalls/ppc-linux.xml               | 316 ++++++++++-----------
 gdb/syscalls/ppc64-linux.xml             | 288 +++++++++----------
 gdb/syscalls/s390-linux.xml              | 342 +++++++++++-----------
 gdb/syscalls/s390x-linux.xml             | 324 ++++++++++-----------
 gdb/syscalls/sparc-linux.xml             | 344 +++++++++++-----------
 gdb/syscalls/sparc64-linux.xml           | 332 +++++++++++-----------
 gdb/testsuite/gdb.base/catch-syscall.exp |  41 +++
 gdb/xml-syscall.c                        | 233 ++++++++++++++-
 gdb/xml-syscall.h                        |  16 ++
 19 files changed, 2860 insertions(+), 2469 deletions(-)

-- 
1.9.3

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v3 02/17] Add support to catch groups of syscalls.
  2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
@ 2015-04-26  1:25 ` Gabriel Krisman Bertazi
  2015-04-26  1:25 ` [PATCH v3 03/17] Add tests for catching groups of syscalls on supported architectures Gabriel Krisman Bertazi
                   ` (17 subsequent siblings)
  18 siblings, 0 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-04-26  1:25 UTC (permalink / raw)
  To: gdb-patches; +Cc: dje, sergiodj, Gabriel Krisman Bertazi

This implements the catchpoint side.  While parsing 'catch syscall'
arguments, we verify if the argument is a syscall group and expand it to
a list of syscalls that are part of that group.

gdb/

	* break-catch-syscall.c (catch_syscall_split_args): Verify if
	argument is a syscall group and expand it to a list of syscalls
	when creating catchpoints.
	(catch_syscall_completer): Add word completion for system call
	groups.
---
 gdb/break-catch-syscall.c | 94 ++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 85 insertions(+), 9 deletions(-)

diff --git a/gdb/break-catch-syscall.c b/gdb/break-catch-syscall.c
index 1718f49..686daf1 100644
--- a/gdb/break-catch-syscall.c
+++ b/gdb/break-catch-syscall.c
@@ -462,10 +462,38 @@ catch_syscall_split_args (char *arg)
       cur_name[i] = '\0';
       arg += i;
 
-      /* Check if the user provided a syscall name or a number.  */
+      /* Check if the user provided a syscall name, group, or a number.  */
       syscall_number = (int) strtol (cur_name, &endptr, 0);
       if (*endptr == '\0')
-	get_syscall_by_number (gdbarch, syscall_number, &s);
+	{
+	  get_syscall_by_number (gdbarch, syscall_number, &s);
+	  VEC_safe_push (int, result, s.number);
+	}
+      else if (strncmp (cur_name, "g:", sizeof ("g:") - 1) == 0
+	       || strncmp (cur_name, "group:", sizeof ("group:") - 1) == 0)
+	{
+	  /* We have a syscall group.  Let's expand it into a syscall
+	     list before inserting.  */
+	  struct syscall *syscall_list;
+	  const char *group_name;
+
+	  /* Skip over "g:" and "group:" prefix strings.  */
+	  group_name = strchr (cur_name, ':') + 1;
+
+	  syscall_list = get_syscalls_by_group (gdbarch, group_name);
+
+	  if (syscall_list == NULL)
+	    error (_("Unknown syscall group '%s'."), group_name);
+
+	  for (i = 0; syscall_list[i].name != NULL; i++)
+	    {
+	      /* Insert each syscall that are part of the group.  No
+		 need to check if it is valid.  */
+	      VEC_safe_push (int, result, syscall_list[i].number);
+	    }
+
+	  xfree (syscall_list);
+	}
       else
 	{
 	  /* We have a name.  Let's check if it's valid and convert it
@@ -477,10 +505,10 @@ catch_syscall_split_args (char *arg)
 	       because GDB cannot do anything useful if there's no
 	       syscall number to be caught.  */
 	    error (_("Unknown syscall name '%s'."), cur_name);
-	}
 
-      /* Ok, it's valid.  */
-      VEC_safe_push (int, result, s.number);
+	  /* Ok, it's valid.  */
+	  VEC_safe_push (int, result, s.number);
+	}
     }
 
   discard_cleanups (cleanup);
@@ -595,11 +623,59 @@ static VEC (char_ptr) *
 catch_syscall_completer (struct cmd_list_element *cmd,
                          const char *text, const char *word)
 {
-  const char **list = get_syscall_names (get_current_arch ());
-  VEC (char_ptr) *retlist
-    = (list == NULL) ? NULL : complete_on_enum (list, word, word);
+  struct gdbarch *gdbarch = get_current_arch ();
+  struct cleanup *cleanups = make_cleanup (null_cleanup, NULL);
+  VEC (char_ptr) *group_retlist = NULL;
+  VEC (char_ptr) *syscall_retlist = NULL;
+  VEC (char_ptr) *retlist = NULL;
+  const char **group_list = NULL;
+  const char **syscall_list = NULL;
+  const char *prefix;
+  int i;
+
+  /* Completion considers ':' to be a word separator, so we use this to
+     verify whether the previous word was a group prefix.  If so, we
+     build the completion list using group names only.  */
+  for (prefix = word; prefix != text && prefix[-1] != ' '; prefix--)
+    ;
+
+  if (strncmp (prefix, "g:", sizeof ("g:") - 1) == 0
+      || strncmp (prefix, "group:", sizeof ("group:") - 1) == 0)
+    {
+      /* Perform completion inside 'group:' namespace only.  */
+      group_list = get_syscall_group_names (gdbarch);
+      retlist = (group_list == NULL
+		 ? NULL : complete_on_enum (group_list, word, word));
+    }
+  else
+    {
+      /* Complete with both, syscall names and groups.  */
+      syscall_list = get_syscall_names (gdbarch);
+      group_list = get_syscall_group_names (gdbarch);
+
+      /* Append "group:" prefix to syscall groups.  */
+      for (i = 0; group_list[i] != NULL; i++)
+	{
+	  char *prefixed_group = xstrprintf ("group:%s", group_list[i]);
+
+	  group_list[i] = prefixed_group;
+	  make_cleanup (xfree, prefixed_group);
+	}
+
+      syscall_retlist = ((syscall_list == NULL)
+			 ? NULL : complete_on_enum (syscall_list, word, word));
+      group_retlist = ((group_list == NULL)
+		       ? NULL : complete_on_enum (group_list, word, word));
+
+      retlist = VEC_merge (char_ptr, syscall_retlist, group_retlist);
+    }
+
+  VEC_free (char_ptr, syscall_retlist);
+  VEC_free (char_ptr, group_retlist);
+  xfree (syscall_list);
+  xfree (group_list);
+  do_cleanups (cleanups);
 
-  xfree (list);
   return retlist;
 }
 
-- 
1.9.3

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v3 07/17] Create syscall groups for aarch64.
  2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
                   ` (5 preceding siblings ...)
  2015-04-26  1:26 ` [PATCH v3 05/17] Create syscall groups for ppc Gabriel Krisman Bertazi
@ 2015-04-26  1:26 ` Gabriel Krisman Bertazi
  2015-04-26  1:26 ` [PATCH v3 10/17] Create syscall groups for i386 Gabriel Krisman Bertazi
                   ` (11 subsequent siblings)
  18 siblings, 0 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-04-26  1:26 UTC (permalink / raw)
  To: gdb-patches; +Cc: dje, sergiodj, Gabriel Krisman Bertazi

This commit introduces the following syscall groups for the aarch64
architecture: memory, ipc, process, descriptor, signal and file.

Please note that the sorting of the syscalls among these several groups
follows the same structure used in strace.

gdb/

	* syscalls/aarch64-linux.xml: Add 'groups' attribute to several
	syscalls on aarch64.  Create groups memory, ipc, file,
	descriptor, process and signal.
---
 gdb/syscalls/aarch64-linux.xml | 314 +++++++++++++++++++++--------------------
 1 file changed, 158 insertions(+), 156 deletions(-)

diff --git a/gdb/syscalls/aarch64-linux.xml b/gdb/syscalls/aarch64-linux.xml
index 537d789..55b55b5 100644
--- a/gdb/syscalls/aarch64-linux.xml
+++ b/gdb/syscalls/aarch64-linux.xml
@@ -6,6 +6,8 @@
      notice and this notice are preserved.  This file is offered as-is,
      without any warranty. -->
 
+<!-- The group field was based on strace.  -->
+
 <!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
 
 <syscalls_info>
@@ -14,99 +16,99 @@
   <syscall name="io_submit" number="2"/>
   <syscall name="io_cancel" number="3"/>
   <syscall name="io_getevents" number="4"/>
-  <syscall name="setxattr" number="5"/>
-  <syscall name="lsetxattr" number="6"/>
-  <syscall name="fsetxattr" number="7"/>
-  <syscall name="getxattr" number="8"/>
-  <syscall name="lgetxattr" number="9"/>
-  <syscall name="fgetxattr" number="10"/>
-  <syscall name="listxattr" number="11"/>
-  <syscall name="llistxattr" number="12"/>
-  <syscall name="flistxattr" number="13"/>
-  <syscall name="removexattr" number="14"/>
-  <syscall name="lremovexattr" number="15"/>
-  <syscall name="fremovexattr" number="16"/>
-  <syscall name="getcwd" number="17"/>
+  <syscall name="setxattr" number="5" groups="file"/>
+  <syscall name="lsetxattr" number="6" groups="file"/>
+  <syscall name="fsetxattr" number="7" groups="descriptor"/>
+  <syscall name="getxattr" number="8" groups="file"/>
+  <syscall name="lgetxattr" number="9" groups="file"/>
+  <syscall name="fgetxattr" number="10" groups="descriptor"/>
+  <syscall name="listxattr" number="11" groups="file"/>
+  <syscall name="llistxattr" number="12" groups="file"/>
+  <syscall name="flistxattr" number="13" groups="descriptor"/>
+  <syscall name="removexattr" number="14" groups="file"/>
+  <syscall name="lremovexattr" number="15" groups="file"/>
+  <syscall name="fremovexattr" number="16" groups="descriptor"/>
+  <syscall name="getcwd" number="17" groups="file"/>
   <syscall name="lookup_dcookie" number="18"/>
-  <syscall name="eventfd2" number="19"/>
-  <syscall name="epoll_create1" number="20"/>
-  <syscall name="epoll_ctl" number="21"/>
-  <syscall name="epoll_pwait" number="22"/>
-  <syscall name="dup" number="23"/>
-  <syscall name="dup3" number="24"/>
-  <syscall name="fcntl" number="25"/>
-  <syscall name="inotify_init1" number="26"/>
-  <syscall name="inotify_add_watch" number="27"/>
-  <syscall name="inotify_rm_watch" number="28"/>
-  <syscall name="ioctl" number="29"/>
+  <syscall name="eventfd2" number="19" groups="descriptor"/>
+  <syscall name="epoll_create1" number="20" groups="descriptor"/>
+  <syscall name="epoll_ctl" number="21" groups="descriptor"/>
+  <syscall name="epoll_pwait" number="22" groups="descriptor"/>
+  <syscall name="dup" number="23" groups="descriptor"/>
+  <syscall name="dup3" number="24" groups="descriptor"/>
+  <syscall name="fcntl" number="25" groups="descriptor"/>
+  <syscall name="inotify_init1" number="26" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="27" groups="descriptor"/>
+  <syscall name="inotify_rm_watch" number="28" groups="descriptor"/>
+  <syscall name="ioctl" number="29" groups="descriptor"/>
   <syscall name="ioprio_set" number="30"/>
   <syscall name="ioprio_get" number="31"/>
-  <syscall name="flock" number="32"/>
-  <syscall name="mknodat" number="33"/>
-  <syscall name="mkdirat" number="34"/>
-  <syscall name="unlinkat" number="35"/>
-  <syscall name="symlinkat" number="36"/>
-  <syscall name="linkat" number="37"/>
-  <syscall name="renameat" number="38"/>
-  <syscall name="umount2" number="39"/>
-  <syscall name="mount" number="40"/>
-  <syscall name="pivot_root" number="41"/>
+  <syscall name="flock" number="32" groups="descriptor"/>
+  <syscall name="mknodat" number="33" groups="descriptor,file"/>
+  <syscall name="mkdirat" number="34" groups="descriptor,file"/>
+  <syscall name="unlinkat" number="35" groups="descriptor,file"/>
+  <syscall name="symlinkat" number="36" groups="descriptor,file"/>
+  <syscall name="linkat" number="37" groups="descriptor,file"/>
+  <syscall name="renameat" number="38" groups="descriptor,file"/>
+  <syscall name="umount2" number="39" groups="file"/>
+  <syscall name="mount" number="40" groups="file"/>
+  <syscall name="pivot_root" number="41" groups="file"/>
   <syscall name="nfsservctl" number="42"/>
-  <syscall name="statfs" number="43"/>
-  <syscall name="fstatfs" number="44"/>
-  <syscall name="truncate" number="45"/>
-  <syscall name="ftruncate" number="46"/>
-  <syscall name="fallocate" number="47"/>
-  <syscall name="faccessat" number="48"/>
-  <syscall name="chdir" number="49"/>
-  <syscall name="fchdir" number="50"/>
-  <syscall name="chroot" number="51"/>
-  <syscall name="fchmod" number="52"/>
-  <syscall name="fchmodat" number="53"/>
-  <syscall name="fchownat" number="54"/>
-  <syscall name="fchown" number="55"/>
-  <syscall name="openat" number="56"/>
-  <syscall name="close" number="57"/>
+  <syscall name="statfs" number="43" groups="file"/>
+  <syscall name="fstatfs" number="44" groups="descriptor"/>
+  <syscall name="truncate" number="45" groups="file"/>
+  <syscall name="ftruncate" number="46" groups="descriptor"/>
+  <syscall name="fallocate" number="47" groups="descriptor"/>
+  <syscall name="faccessat" number="48" groups="descriptor,file"/>
+  <syscall name="chdir" number="49" groups="file"/>
+  <syscall name="fchdir" number="50" groups="descriptor"/>
+  <syscall name="chroot" number="51" groups="file"/>
+  <syscall name="fchmod" number="52" groups="descriptor"/>
+  <syscall name="fchmodat" number="53" groups="descriptor,file"/>
+  <syscall name="fchownat" number="54" groups="descriptor,file"/>
+  <syscall name="fchown" number="55" groups="descriptor"/>
+  <syscall name="openat" number="56" groups="descriptor,file"/>
+  <syscall name="close" number="57" groups="descriptor"/>
   <syscall name="vhangup" number="58"/>
-  <syscall name="pipe2" number="59"/>
-  <syscall name="quotactl" number="60"/>
-  <syscall name="getdents64" number="61"/>
-  <syscall name="lseek" number="62"/>
-  <syscall name="read" number="63"/>
-  <syscall name="write" number="64"/>
-  <syscall name="readv" number="65"/>
-  <syscall name="writev" number="66"/>
-  <syscall name="pread64" number="67"/>
-  <syscall name="pwrite64" number="68"/>
-  <syscall name="preadv" number="69"/>
-  <syscall name="pwritev" number="70"/>
-  <syscall name="sendfile" number="71"/>
-  <syscall name="pselect6" number="72"/>
-  <syscall name="ppoll" number="73"/>
-  <syscall name="signalfd4" number="74"/>
-  <syscall name="vmsplice" number="75"/>
-  <syscall name="splice" number="76"/>
-  <syscall name="tee" number="77"/>
-  <syscall name="readlinkat" number="78"/>
-  <syscall name="newfstatat" number="79"/>
-  <syscall name="fstat" number="80"/>
+  <syscall name="pipe2" number="59" groups="descriptor"/>
+  <syscall name="quotactl" number="60" groups="file"/>
+  <syscall name="getdents64" number="61" groups="descriptor"/>
+  <syscall name="lseek" number="62" groups="descriptor"/>
+  <syscall name="read" number="63" groups="descriptor"/>
+  <syscall name="write" number="64" groups="descriptor"/>
+  <syscall name="readv" number="65" groups="descriptor"/>
+  <syscall name="writev" number="66" groups="descriptor"/>
+  <syscall name="pread64" number="67" groups="descriptor"/>
+  <syscall name="pwrite64" number="68" groups="descriptor"/>
+  <syscall name="preadv" number="69" groups="descriptor"/>
+  <syscall name="pwritev" number="70" groups="descriptor"/>
+  <syscall name="sendfile" number="71" groups="descriptor,network"/>
+  <syscall name="pselect6" number="72" groups="descriptor"/>
+  <syscall name="ppoll" number="73" groups="descriptor"/>
+  <syscall name="signalfd4" number="74" groups="descriptor,signal"/>
+  <syscall name="vmsplice" number="75" groups="descriptor"/>
+  <syscall name="splice" number="76" groups="descriptor"/>
+  <syscall name="tee" number="77" groups="descriptor"/>
+  <syscall name="readlinkat" number="78" groups="descriptor,file"/>
+  <syscall name="newfstatat" number="79" groups="descriptor,file"/>
+  <syscall name="fstat" number="80" groups="descriptor"/>
   <syscall name="sync" number="81"/>
-  <syscall name="fsync" number="82"/>
-  <syscall name="fdatasync" number="83"/>
-  <syscall name="sync_file_range" number="84"/>
-  <syscall name="timerfd_create" number="85"/>
-  <syscall name="timerfd_settime" number="86"/>
-  <syscall name="timerfd_gettime" number="87"/>
-  <syscall name="utimensat" number="88"/>
-  <syscall name="acct" number="89"/>
+  <syscall name="fsync" number="82" groups="descriptor"/>
+  <syscall name="fdatasync" number="83" groups="descriptor"/>
+  <syscall name="sync_file_range" number="84" groups="descriptor"/>
+  <syscall name="timerfd_create" number="85" groups="descriptor"/>
+  <syscall name="timerfd_settime" number="86" groups="descriptor"/>
+  <syscall name="timerfd_gettime" number="87" groups="descriptor"/>
+  <syscall name="utimensat" number="88" groups="descriptor,file"/>
+  <syscall name="acct" number="89" groups="file"/>
   <syscall name="capget" number="90"/>
   <syscall name="capset" number="91"/>
   <syscall name="personality" number="92"/>
-  <syscall name="exit" number="93"/>
-  <syscall name="exit_group" number="94"/>
-  <syscall name="waitid" number="95"/>
+  <syscall name="exit" number="93" groups="process"/>
+  <syscall name="exit_group" number="94" groups="process"/>
+  <syscall name="waitid" number="95" groups="process"/>
   <syscall name="set_tid_address" number="96"/>
-  <syscall name="unshare" number="97"/>
+  <syscall name="unshare" number="97" groups="process"/>
   <syscall name="futex" number="98"/>
   <syscall name="set_robust_list" number="99"/>
   <syscall name="get_robust_list" number="100"/>
@@ -138,17 +140,17 @@
   <syscall name="sched_get_priority_min" number="126"/>
   <syscall name="sched_rr_get_interval" number="127"/>
   <syscall name="restart_syscall" number="128"/>
-  <syscall name="kill" number="129"/>
-  <syscall name="tkill" number="130"/>
-  <syscall name="tgkill" number="131"/>
-  <syscall name="sigaltstack" number="132"/>
-  <syscall name="rt_sigsuspend" number="133"/>
-  <syscall name="rt_sigaction" number="134"/>
-  <syscall name="rt_sigprocmask" number="135"/>
-  <syscall name="rt_sigpending" number="136"/>
-  <syscall name="rt_sigtimedwait" number="137"/>
-  <syscall name="rt_sigqueueinfo" number="138"/>
-  <syscall name="rt_sigreturn" number="139"/>
+  <syscall name="kill" number="129" groups="signal"/>
+  <syscall name="tkill" number="130" groups="signal"/>
+  <syscall name="tgkill" number="131" groups="signal"/>
+  <syscall name="sigaltstack" number="132" groups="signal"/>
+  <syscall name="rt_sigsuspend" number="133" groups="signal"/>
+  <syscall name="rt_sigaction" number="134" groups="signal"/>
+  <syscall name="rt_sigprocmask" number="135" groups="signal"/>
+  <syscall name="rt_sigpending" number="136" groups="signal"/>
+  <syscall name="rt_sigtimedwait" number="137" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="138" groups="signal"/>
+  <syscall name="rt_sigreturn" number="139" groups="signal"/>
   <syscall name="setpriority" number="140"/>
   <syscall name="getpriority" number="141"/>
   <syscall name="reboot" number="142"/>
@@ -195,75 +197,75 @@
   <syscall name="mq_timedreceive" number="183"/>
   <syscall name="mq_notify" number="184"/>
   <syscall name="mq_getsetattr" number="185"/>
-  <syscall name="msgget" number="186"/>
-  <syscall name="msgctl" number="187"/>
-  <syscall name="msgrcv" number="188"/>
-  <syscall name="msgsnd" number="189"/>
-  <syscall name="semget" number="190"/>
-  <syscall name="semctl" number="191"/>
-  <syscall name="semtimedop" number="192"/>
-  <syscall name="semop" number="193"/>
-  <syscall name="shmget" number="194"/>
-  <syscall name="shmctl" number="195"/>
-  <syscall name="shmat" number="196"/>
-  <syscall name="shmdt" number="197"/>
-  <syscall name="socket" number="198"/>
-  <syscall name="socketpair" number="199"/>
-  <syscall name="bind" number="200"/>
-  <syscall name="listen" number="201"/>
-  <syscall name="accept" number="202"/>
-  <syscall name="connect" number="203"/>
-  <syscall name="getsockname" number="204"/>
-  <syscall name="getpeername" number="205"/>
-  <syscall name="sendto" number="206"/>
-  <syscall name="recvfrom" number="207"/>
-  <syscall name="setsockopt" number="208"/>
-  <syscall name="getsockopt" number="209"/>
-  <syscall name="shutdown" number="210"/>
-  <syscall name="sendmsg" number="211"/>
-  <syscall name="recvmsg" number="212"/>
-  <syscall name="readahead" number="213"/>
-  <syscall name="brk" number="214"/>
-  <syscall name="munmap" number="215"/>
-  <syscall name="mremap" number="216"/>
+  <syscall name="msgget" number="186" groups="ipc"/>
+  <syscall name="msgctl" number="187" groups="ipc"/>
+  <syscall name="msgrcv" number="188" groups="ipc"/>
+  <syscall name="msgsnd" number="189" groups="ipc"/>
+  <syscall name="semget" number="190" groups="ipc"/>
+  <syscall name="semctl" number="191" groups="ipc"/>
+  <syscall name="semtimedop" number="192" groups="ipc"/>
+  <syscall name="semop" number="193" groups="ipc"/>
+  <syscall name="shmget" number="194" groups="ipc"/>
+  <syscall name="shmctl" number="195" groups="ipc"/>
+  <syscall name="shmat" number="196" groups="ipc,memory"/>
+  <syscall name="shmdt" number="197" groups="ipc,memory"/>
+  <syscall name="socket" number="198" groups="network"/>
+  <syscall name="socketpair" number="199" groups="network"/>
+  <syscall name="bind" number="200" groups="network"/>
+  <syscall name="listen" number="201" groups="network"/>
+  <syscall name="accept" number="202" groups="network"/>
+  <syscall name="connect" number="203" groups="network"/>
+  <syscall name="getsockname" number="204" groups="network"/>
+  <syscall name="getpeername" number="205" groups="network"/>
+  <syscall name="sendto" number="206" groups="network"/>
+  <syscall name="recvfrom" number="207" groups="network"/>
+  <syscall name="setsockopt" number="208" groups="network"/>
+  <syscall name="getsockopt" number="209" groups="network"/>
+  <syscall name="shutdown" number="210" groups="network"/>
+  <syscall name="sendmsg" number="211" groups="network"/>
+  <syscall name="recvmsg" number="212" groups="network"/>
+  <syscall name="readahead" number="213" groups="descriptor"/>
+  <syscall name="brk" number="214" groups="memory"/>
+  <syscall name="munmap" number="215" groups="memory"/>
+  <syscall name="mremap" number="216" groups="memory"/>
   <syscall name="add_key" number="217"/>
   <syscall name="request_key" number="218"/>
   <syscall name="keyctl" number="219"/>
-  <syscall name="clone" number="220"/>
-  <syscall name="execve" number="221"/>
-  <syscall name="mmap" number="222"/>
-  <syscall name="fadvise64" number="223"/>
-  <syscall name="swapon" number="224"/>
-  <syscall name="swapoff" number="225"/>
-  <syscall name="mprotect" number="226"/>
-  <syscall name="msync" number="227"/>
+  <syscall name="clone" number="220" groups="process"/>
+  <syscall name="execve" number="221" groups="file,process"/>
+  <syscall name="mmap" number="222" groups="descriptor,memory"/>
+  <syscall name="fadvise64" number="223" groups="descriptor"/>
+  <syscall name="swapon" number="224" groups="file"/>
+  <syscall name="swapoff" number="225" groups="file"/>
+  <syscall name="mprotect" number="226" groups="memory"/>
+  <syscall name="msync" number="227" groups="memory"/>
   <syscall name="mlock" number="228"/>
-  <syscall name="munlock" number="229"/>
-  <syscall name="mlockall" number="230"/>
-  <syscall name="munlockall" number="231"/>
-  <syscall name="mincore" number="232"/>
-  <syscall name="madvise" number="233"/>
-  <syscall name="remap_file_pages" number="234"/>
-  <syscall name="mbind" number="235"/>
-  <syscall name="get_mempolicy" number="236"/>
-  <syscall name="set_mempolicy" number="237"/>
-  <syscall name="migrate_pages" number="238"/>
-  <syscall name="move_pages" number="239"/>
-  <syscall name="rt_tgsigqueueinfo" number="240"/>
-  <syscall name="perf_event_open" number="241"/>
-  <syscall name="accept4" number="242"/>
-  <syscall name="recvmmsg" number="243"/>
+  <syscall name="munlock" number="229" groups="memory"/>
+  <syscall name="mlockall" number="230" groups="memory"/>
+  <syscall name="munlockall" number="231" groups="memory"/>
+  <syscall name="mincore" number="232" groups="memory"/>
+  <syscall name="madvise" number="233" groups="memory"/>
+  <syscall name="remap_file_pages" number="234" groups="memory"/>
+  <syscall name="mbind" number="235" groups="memory"/>
+  <syscall name="get_mempolicy" number="236" groups="memory"/>
+  <syscall name="set_mempolicy" number="237" groups="memory"/>
+  <syscall name="migrate_pages" number="238" groups="memory"/>
+  <syscall name="move_pages" number="239" groups="memory"/>
+  <syscall name="rt_tgsigqueueinfo" number="240" groups="process,signal"/>
+  <syscall name="perf_event_open" number="241" groups="descriptor"/>
+  <syscall name="accept4" number="242" groups="network"/>
+  <syscall name="recvmmsg" number="243" groups="network"/>
   <syscall name="arch_specific_syscall" number="244"/>
-  <syscall name="wait4" number="260"/>
+  <syscall name="wait4" number="260" groups="process"/>
   <syscall name="prlimit64" number="261"/>
-  <syscall name="fanotify_init" number="262"/>
-  <syscall name="fanotify_mark" number="263"/>
-  <syscall name="name_to_handle_at" number="264"/>
-  <syscall name="open_by_handle_at" number="265"/>
+  <syscall name="fanotify_init" number="262" groups="descriptor"/>
+  <syscall name="fanotify_mark" number="263" groups="descriptor,file"/>
+  <syscall name="name_to_handle_at" number="264" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" number="265" groups="descriptor"/>
   <syscall name="clock_adjtime" number="266"/>
-  <syscall name="syncfs" number="267"/>
-  <syscall name="setns" number="268"/>
-  <syscall name="sendmmsg" number="269"/>
+  <syscall name="syncfs" number="267" groups="descriptor"/>
+  <syscall name="setns" number="268" groups="descriptor"/>
+  <syscall name="sendmmsg" number="269" groups="network"/>
   <syscall name="process_vm_readv" number="270"/>
   <syscall name="process_vm_writev" number="271"/>
   <syscall name="kcmp" number="272"/>
-- 
1.9.3

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v3 04/17] Create syscall groups for amd64.
  2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
                   ` (3 preceding siblings ...)
  2015-04-26  1:26 ` [PATCH v3 09/17] Create syscall groups for bfin Gabriel Krisman Bertazi
@ 2015-04-26  1:26 ` Gabriel Krisman Bertazi
  2015-04-26  1:26 ` [PATCH v3 05/17] Create syscall groups for ppc Gabriel Krisman Bertazi
                   ` (13 subsequent siblings)
  18 siblings, 0 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-04-26  1:26 UTC (permalink / raw)
  To: gdb-patches; +Cc: dje, sergiodj, Gabriel Krisman Bertazi

This commit introduces the following syscall groups for the amd64
architecture: memory, ipc, process, descriptor, signal and file.

Please note that the sorting of the syscalls among these several groups
follows the same structure used in strace.

gdb/

	* syscalls/amd64-linux.xml: Add 'groups' attribute to several
	syscalls on amd64.  Create groups memory, ipc, file, descriptor,
	process and signal.
---
 gdb/syscalls/amd64-linux.xml | 364 ++++++++++++++++++++++---------------------
 1 file changed, 183 insertions(+), 181 deletions(-)

diff --git a/gdb/syscalls/amd64-linux.xml b/gdb/syscalls/amd64-linux.xml
index 171ca92..9f1404e 100644
--- a/gdb/syscalls/amd64-linux.xml
+++ b/gdb/syscalls/amd64-linux.xml
@@ -13,102 +13,104 @@
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+<!-- The group field was based on strace.  -->
+
 <syscalls_info>
-  <syscall name="read" number="0"/>
-  <syscall name="write" number="1"/>
-  <syscall name="open" number="2"/>
-  <syscall name="close" number="3"/>
-  <syscall name="stat" number="4"/>
-  <syscall name="fstat" number="5"/>
-  <syscall name="lstat" number="6"/>
-  <syscall name="poll" number="7"/>
-  <syscall name="lseek" number="8"/>
-  <syscall name="mmap" number="9"/>
-  <syscall name="mprotect" number="10"/>
-  <syscall name="munmap" number="11"/>
-  <syscall name="brk" number="12"/>
-  <syscall name="rt_sigaction" number="13"/>
-  <syscall name="rt_sigprocmask" number="14"/>
-  <syscall name="rt_sigreturn" number="15"/>
-  <syscall name="ioctl" number="16"/>
-  <syscall name="pread64" number="17"/>
-  <syscall name="pwrite64" number="18"/>
-  <syscall name="readv" number="19"/>
-  <syscall name="writev" number="20"/>
-  <syscall name="access" number="21"/>
-  <syscall name="pipe" number="22"/>
-  <syscall name="select" number="23"/>
+  <syscall name="read" number="0" groups="descriptor"/>
+  <syscall name="write" number="1" groups="descriptor"/>
+  <syscall name="open" number="2" groups="descriptor,file"/>
+  <syscall name="close" number="3" groups="descriptor"/>
+  <syscall name="stat" number="4" groups="file"/>
+  <syscall name="fstat" number="5" groups="descriptor"/>
+  <syscall name="lstat" number="6" groups="file"/>
+  <syscall name="poll" number="7" groups="descriptor"/>
+  <syscall name="lseek" number="8" groups="descriptor"/>
+  <syscall name="mmap" number="9" groups="descriptor,memory"/>
+  <syscall name="mprotect" number="10" groups="memory"/>
+  <syscall name="munmap" number="11" groups="memory"/>
+  <syscall name="brk" number="12" groups="memory"/>
+  <syscall name="rt_sigaction" number="13" groups="signal"/>
+  <syscall name="rt_sigprocmask" number="14" groups="signal"/>
+  <syscall name="rt_sigreturn" number="15" groups="signal"/>
+  <syscall name="ioctl" number="16" groups="descriptor"/>
+  <syscall name="pread64" number="17" groups="descriptor"/>
+  <syscall name="pwrite64" number="18" groups="descriptor"/>
+  <syscall name="readv" number="19" groups="descriptor"/>
+  <syscall name="writev" number="20" groups="descriptor"/>
+  <syscall name="access" number="21" groups="file"/>
+  <syscall name="pipe" number="22" groups="descriptor"/>
+  <syscall name="select" number="23" groups="descriptor"/>
   <syscall name="sched_yield" number="24"/>
-  <syscall name="mremap" number="25"/>
-  <syscall name="msync" number="26"/>
-  <syscall name="mincore" number="27"/>
-  <syscall name="madvise" number="28"/>
-  <syscall name="shmget" number="29"/>
-  <syscall name="shmat" number="30"/>
-  <syscall name="shmctl" number="31"/>
-  <syscall name="dup" number="32"/>
-  <syscall name="dup2" number="33"/>
-  <syscall name="pause" number="34"/>
+  <syscall name="mremap" number="25" groups="memory"/>
+  <syscall name="msync" number="26" groups="memory"/>
+  <syscall name="mincore" number="27" groups="memory"/>
+  <syscall name="madvise" number="28" groups="memory"/>
+  <syscall name="shmget" number="29" groups="ipc"/>
+  <syscall name="shmat" number="30" groups="ipc,memory"/>
+  <syscall name="shmctl" number="31" groups="ipc"/>
+  <syscall name="dup" number="32" groups="descriptor"/>
+  <syscall name="dup2" number="33" groups="descriptor"/>
+  <syscall name="pause" number="34" groups="signal"/>
   <syscall name="nanosleep" number="35"/>
   <syscall name="getitimer" number="36"/>
   <syscall name="alarm" number="37"/>
   <syscall name="setitimer" number="38"/>
   <syscall name="getpid" number="39"/>
-  <syscall name="sendfile" number="40"/>
-  <syscall name="socket" number="41"/>
-  <syscall name="connect" number="42"/>
-  <syscall name="accept" number="43"/>
-  <syscall name="sendto" number="44"/>
-  <syscall name="recvfrom" number="45"/>
-  <syscall name="sendmsg" number="46"/>
-  <syscall name="recvmsg" number="47"/>
-  <syscall name="shutdown" number="48"/>
-  <syscall name="bind" number="49"/>
-  <syscall name="listen" number="50"/>
-  <syscall name="getsockname" number="51"/>
-  <syscall name="getpeername" number="52"/>
-  <syscall name="socketpair" number="53"/>
-  <syscall name="setsockopt" number="54"/>
-  <syscall name="getsockopt" number="55"/>
-  <syscall name="clone" number="56"/>
-  <syscall name="fork" number="57"/>
-  <syscall name="vfork" number="58"/>
-  <syscall name="execve" number="59"/>
-  <syscall name="exit" number="60"/>
-  <syscall name="wait4" number="61"/>
-  <syscall name="kill" number="62"/>
+  <syscall name="sendfile" number="40" groups="descriptor,network"/>
+  <syscall name="socket" number="41" groups="network"/>
+  <syscall name="connect" number="42" groups="network"/>
+  <syscall name="accept" number="43" groups="network"/>
+  <syscall name="sendto" number="44" groups="network"/>
+  <syscall name="recvfrom" number="45" groups="network"/>
+  <syscall name="sendmsg" number="46" groups="network"/>
+  <syscall name="recvmsg" number="47" groups="network"/>
+  <syscall name="shutdown" number="48" groups="network"/>
+  <syscall name="bind" number="49" groups="network"/>
+  <syscall name="listen" number="50" groups="network"/>
+  <syscall name="getsockname" number="51" groups="network"/>
+  <syscall name="getpeername" number="52" groups="network"/>
+  <syscall name="socketpair" number="53" groups="network"/>
+  <syscall name="setsockopt" number="54" groups="network"/>
+  <syscall name="getsockopt" number="55" groups="network"/>
+  <syscall name="clone" number="56" groups="process"/>
+  <syscall name="fork" number="57" groups="process"/>
+  <syscall name="vfork" number="58" groups="process"/>
+  <syscall name="execve" number="59" groups="file,process"/>
+  <syscall name="exit" number="60" groups="process"/>
+  <syscall name="wait4" number="61" groups="process"/>
+  <syscall name="kill" number="62" groups="signal"/>
   <syscall name="uname" number="63"/>
-  <syscall name="semget" number="64"/>
-  <syscall name="semop" number="65"/>
-  <syscall name="semctl" number="66"/>
-  <syscall name="shmdt" number="67"/>
-  <syscall name="msgget" number="68"/>
-  <syscall name="msgsnd" number="69"/>
-  <syscall name="msgrcv" number="70"/>
-  <syscall name="msgctl" number="71"/>
-  <syscall name="fcntl" number="72"/>
-  <syscall name="flock" number="73"/>
-  <syscall name="fsync" number="74"/>
-  <syscall name="fdatasync" number="75"/>
-  <syscall name="truncate" number="76"/>
-  <syscall name="ftruncate" number="77"/>
-  <syscall name="getdents" number="78"/>
-  <syscall name="getcwd" number="79"/>
-  <syscall name="chdir" number="80"/>
-  <syscall name="fchdir" number="81"/>
-  <syscall name="rename" number="82"/>
-  <syscall name="mkdir" number="83"/>
-  <syscall name="rmdir" number="84"/>
-  <syscall name="creat" number="85"/>
-  <syscall name="link" number="86"/>
-  <syscall name="unlink" number="87"/>
-  <syscall name="symlink" number="88"/>
-  <syscall name="readlink" number="89"/>
-  <syscall name="chmod" number="90"/>
-  <syscall name="fchmod" number="91"/>
-  <syscall name="chown" number="92"/>
-  <syscall name="fchown" number="93"/>
-  <syscall name="lchown" number="94"/>
+  <syscall name="semget" number="64" groups="ipc"/>
+  <syscall name="semop" number="65" groups="ipc"/>
+  <syscall name="semctl" number="66" groups="ipc"/>
+  <syscall name="shmdt" number="67" groups="ipc,memory"/>
+  <syscall name="msgget" number="68" groups="ipc"/>
+  <syscall name="msgsnd" number="69" groups="ipc"/>
+  <syscall name="msgrcv" number="70" groups="ipc"/>
+  <syscall name="msgctl" number="71" groups="ipc"/>
+  <syscall name="fcntl" number="72" groups="descriptor"/>
+  <syscall name="flock" number="73" groups="descriptor"/>
+  <syscall name="fsync" number="74" groups="descriptor"/>
+  <syscall name="fdatasync" number="75" groups="descriptor"/>
+  <syscall name="truncate" number="76" groups="file"/>
+  <syscall name="ftruncate" number="77" groups="descriptor"/>
+  <syscall name="getdents" number="78" groups="descriptor"/>
+  <syscall name="getcwd" number="79" groups="file"/>
+  <syscall name="chdir" number="80" groups="file"/>
+  <syscall name="fchdir" number="81" groups="descriptor"/>
+  <syscall name="rename" number="82" groups="file"/>
+  <syscall name="mkdir" number="83" groups="file"/>
+  <syscall name="rmdir" number="84" groups="file"/>
+  <syscall name="creat" number="85" groups="descriptor,file"/>
+  <syscall name="link" number="86" groups="file"/>
+  <syscall name="unlink" number="87" groups="file"/>
+  <syscall name="symlink" number="88" groups="file"/>
+  <syscall name="readlink" number="89" groups="file"/>
+  <syscall name="chmod" number="90" groups="file"/>
+  <syscall name="fchmod" number="91" groups="descriptor"/>
+  <syscall name="chown" number="92" groups="file"/>
+  <syscall name="fchown" number="93" groups="descriptor"/>
+  <syscall name="lchown" number="94" groups="file"/>
   <syscall name="umask" number="95"/>
   <syscall name="gettimeofday" number="96"/>
   <syscall name="getrlimit" number="97"/>
@@ -141,18 +143,18 @@
   <syscall name="getsid" number="124"/>
   <syscall name="capget" number="125"/>
   <syscall name="capset" number="126"/>
-  <syscall name="rt_sigpending" number="127"/>
-  <syscall name="rt_sigtimedwait" number="128"/>
-  <syscall name="rt_sigqueueinfo" number="129"/>
-  <syscall name="rt_sigsuspend" number="130"/>
-  <syscall name="sigaltstack" number="131"/>
-  <syscall name="utime" number="132"/>
-  <syscall name="mknod" number="133"/>
-  <syscall name="uselib" number="134"/>
+  <syscall name="rt_sigpending" number="127" groups="signal"/>
+  <syscall name="rt_sigtimedwait" number="128" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="129" groups="signal"/>
+  <syscall name="rt_sigsuspend" number="130" groups="signal"/>
+  <syscall name="sigaltstack" number="131" groups="signal"/>
+  <syscall name="utime" number="132" groups="file"/>
+  <syscall name="mknod" number="133" groups="file"/>
+  <syscall name="uselib" number="134" groups="file"/>
   <syscall name="personality" number="135"/>
   <syscall name="ustat" number="136"/>
-  <syscall name="statfs" number="137"/>
-  <syscall name="fstatfs" number="138"/>
+  <syscall name="statfs" number="137" groups="file"/>
+  <syscall name="fstatfs" number="138" groups="descriptor"/>
   <syscall name="sysfs" number="139"/>
   <syscall name="getpriority" number="140"/>
   <syscall name="setpriority" number="141"/>
@@ -163,26 +165,26 @@
   <syscall name="sched_get_priority_max" number="146"/>
   <syscall name="sched_get_priority_min" number="147"/>
   <syscall name="sched_rr_get_interval" number="148"/>
-  <syscall name="mlock" number="149"/>
-  <syscall name="munlock" number="150"/>
-  <syscall name="mlockall" number="151"/>
-  <syscall name="munlockall" number="152"/>
+  <syscall name="mlock" number="149" groups="memory"/>
+  <syscall name="munlock" number="150" groups="memory"/>
+  <syscall name="mlockall" number="151" groups="memory"/>
+  <syscall name="munlockall" number="152" groups="memory"/>
   <syscall name="vhangup" number="153"/>
   <syscall name="modify_ldt" number="154"/>
-  <syscall name="pivot_root" number="155"/>
+  <syscall name="pivot_root" number="155" groups="file"/>
   <syscall name="_sysctl" number="156"/>
   <syscall name="prctl" number="157"/>
-  <syscall name="arch_prctl" number="158"/>
+  <syscall name="arch_prctl" number="158" groups="process"/>
   <syscall name="adjtimex" number="159"/>
   <syscall name="setrlimit" number="160"/>
-  <syscall name="chroot" number="161"/>
+  <syscall name="chroot" number="161" groups="file"/>
   <syscall name="sync" number="162"/>
-  <syscall name="acct" number="163"/>
+  <syscall name="acct" number="163" groups="file"/>
   <syscall name="settimeofday" number="164"/>
-  <syscall name="mount" number="165"/>
-  <syscall name="umount2" number="166"/>
-  <syscall name="swapon" number="167"/>
-  <syscall name="swapoff" number="168"/>
+  <syscall name="mount" number="165" groups="file"/>
+  <syscall name="umount2" number="166" groups="file"/>
+  <syscall name="swapon" number="167" groups="file"/>
+  <syscall name="swapoff" number="168" groups="file"/>
   <syscall name="reboot" number="169"/>
   <syscall name="sethostname" number="170"/>
   <syscall name="setdomainname" number="171"/>
@@ -193,7 +195,7 @@
   <syscall name="delete_module" number="176"/>
   <syscall name="get_kernel_syms" number="177"/>
   <syscall name="query_module" number="178"/>
-  <syscall name="quotactl" number="179"/>
+  <syscall name="quotactl" number="179" groups="file"/>
   <syscall name="nfsservctl" number="180"/>
   <syscall name="getpmsg" number="181"/>
   <syscall name="putpmsg" number="182"/>
@@ -201,20 +203,20 @@
   <syscall name="tuxcall" number="184"/>
   <syscall name="security" number="185"/>
   <syscall name="gettid" number="186"/>
-  <syscall name="readahead" number="187"/>
-  <syscall name="setxattr" number="188"/>
-  <syscall name="lsetxattr" number="189"/>
-  <syscall name="fsetxattr" number="190"/>
-  <syscall name="getxattr" number="191"/>
-  <syscall name="lgetxattr" number="192"/>
-  <syscall name="fgetxattr" number="193"/>
-  <syscall name="listxattr" number="194"/>
-  <syscall name="llistxattr" number="195"/>
-  <syscall name="flistxattr" number="196"/>
-  <syscall name="removexattr" number="197"/>
-  <syscall name="lremovexattr" number="198"/>
-  <syscall name="fremovexattr" number="199"/>
-  <syscall name="tkill" number="200"/>
+  <syscall name="readahead" number="187" groups="descriptor"/>
+  <syscall name="setxattr" number="188" groups="file"/>
+  <syscall name="lsetxattr" number="189" groups="file"/>
+  <syscall name="fsetxattr" number="190" groups="descriptor"/>
+  <syscall name="getxattr" number="191" groups="file"/>
+  <syscall name="lgetxattr" number="192" groups="file"/>
+  <syscall name="fgetxattr" number="193" groups="descriptor"/>
+  <syscall name="listxattr" number="194" groups="file"/>
+  <syscall name="llistxattr" number="195" groups="file"/>
+  <syscall name="flistxattr" number="196" groups="descriptor"/>
+  <syscall name="removexattr" number="197" groups="file"/>
+  <syscall name="lremovexattr" number="198" groups="file"/>
+  <syscall name="fremovexattr" number="199" groups="descriptor"/>
+  <syscall name="tkill" number="200" groups="signal"/>
   <syscall name="time" number="201"/>
   <syscall name="futex" number="202"/>
   <syscall name="sched_setaffinity" number="203"/>
@@ -227,15 +229,15 @@
   <syscall name="io_cancel" number="210"/>
   <syscall name="get_thread_area" number="211"/>
   <syscall name="lookup_dcookie" number="212"/>
-  <syscall name="epoll_create" number="213"/>
+  <syscall name="epoll_create" number="213" groups="descriptor"/>
   <syscall name="epoll_ctl_old" number="214"/>
   <syscall name="epoll_wait_old" number="215"/>
-  <syscall name="remap_file_pages" number="216"/>
-  <syscall name="getdents64" number="217"/>
+  <syscall name="remap_file_pages" number="216" groups="memory"/>
+  <syscall name="getdents64" number="217" groups="descriptor"/>
   <syscall name="set_tid_address" number="218"/>
   <syscall name="restart_syscall" number="219"/>
-  <syscall name="semtimedop" number="220"/>
-  <syscall name="fadvise64" number="221"/>
+  <syscall name="semtimedop" number="220" groups="ipc"/>
+  <syscall name="fadvise64" number="221" groups="descriptor"/>
   <syscall name="timer_create" number="222"/>
   <syscall name="timer_settime" number="223"/>
   <syscall name="timer_gettime" number="224"/>
@@ -245,15 +247,15 @@
   <syscall name="clock_gettime" number="228"/>
   <syscall name="clock_getres" number="229"/>
   <syscall name="clock_nanosleep" number="230"/>
-  <syscall name="exit_group" number="231"/>
-  <syscall name="epoll_wait" number="232"/>
-  <syscall name="epoll_ctl" number="233"/>
-  <syscall name="tgkill" number="234"/>
-  <syscall name="utimes" number="235"/>
+  <syscall name="exit_group" number="231" groups="process"/>
+  <syscall name="epoll_wait" number="232" groups="descriptor"/>
+  <syscall name="epoll_ctl" number="233" groups="descriptor"/>
+  <syscall name="tgkill" number="234" groups="signal"/>
+  <syscall name="utimes" number="235" groups="file"/>
   <syscall name="vserver" number="236"/>
-  <syscall name="mbind" number="237"/>
-  <syscall name="set_mempolicy" number="238"/>
-  <syscall name="get_mempolicy" number="239"/>
+  <syscall name="mbind" number="237" groups="memory"/>
+  <syscall name="set_mempolicy" number="238" groups="memory"/>
+  <syscall name="get_mempolicy" number="239" groups="memory"/>
   <syscall name="mq_open" number="240"/>
   <syscall name="mq_unlink" number="241"/>
   <syscall name="mq_timedsend" number="242"/>
@@ -261,54 +263,54 @@
   <syscall name="mq_notify" number="244"/>
   <syscall name="mq_getsetattr" number="245"/>
   <syscall name="kexec_load" number="246"/>
-  <syscall name="waitid" number="247"/>
+  <syscall name="waitid" number="247" groups="process"/>
   <syscall name="add_key" number="248"/>
   <syscall name="request_key" number="249"/>
   <syscall name="keyctl" number="250"/>
   <syscall name="ioprio_set" number="251"/>
   <syscall name="ioprio_get" number="252"/>
-  <syscall name="inotify_init" number="253"/>
-  <syscall name="inotify_add_watch" number="254"/>
-  <syscall name="inotify_rm_watch" number="255"/>
-  <syscall name="migrate_pages" number="256"/>
-  <syscall name="openat" number="257"/>
-  <syscall name="mkdirat" number="258"/>
-  <syscall name="mknodat" number="259"/>
-  <syscall name="fchownat" number="260"/>
-  <syscall name="futimesat" number="261"/>
-  <syscall name="newfstatat" number="262"/>
-  <syscall name="unlinkat" number="263"/>
-  <syscall name="renameat" number="264"/>
-  <syscall name="linkat" number="265"/>
-  <syscall name="symlinkat" number="266"/>
-  <syscall name="readlinkat" number="267"/>
-  <syscall name="fchmodat" number="268"/>
-  <syscall name="faccessat" number="269"/>
-  <syscall name="pselect6" number="270"/>
-  <syscall name="ppoll" number="271"/>
-  <syscall name="unshare" number="272"/>
+  <syscall name="inotify_init" number="253" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="254" groups="descriptor"/>
+  <syscall name="inotify_rm_watch" number="255" groups="descriptor"/>
+  <syscall name="migrate_pages" number="256" groups="memory"/>
+  <syscall name="openat" number="257" groups="descriptor,file"/>
+  <syscall name="mkdirat" number="258" groups="descriptor,file"/>
+  <syscall name="mknodat" number="259" groups="descriptor,file"/>
+  <syscall name="fchownat" number="260" groups="descriptor,file"/>
+  <syscall name="futimesat" number="261" groups="descriptor,file"/>
+  <syscall name="newfstatat" number="262" groups="descriptor,file"/>
+  <syscall name="unlinkat" number="263" groups="descriptor,file"/>
+  <syscall name="renameat" number="264" groups="descriptor,file"/>
+  <syscall name="linkat" number="265" groups="descriptor,file"/>
+  <syscall name="symlinkat" number="266" groups="descriptor,file"/>
+  <syscall name="readlinkat" number="267" groups="descriptor,file"/>
+  <syscall name="fchmodat" number="268" groups="descriptor,file"/>
+  <syscall name="faccessat" number="269" groups="descriptor,file"/>
+  <syscall name="pselect6" number="270" groups="descriptor"/>
+  <syscall name="ppoll" number="271" groups="descriptor"/>
+  <syscall name="unshare" number="272" groups="process"/>
   <syscall name="set_robust_list" number="273"/>
   <syscall name="get_robust_list" number="274"/>
-  <syscall name="splice" number="275"/>
-  <syscall name="tee" number="276"/>
-  <syscall name="sync_file_range" number="277"/>
-  <syscall name="vmsplice" number="278"/>
-  <syscall name="move_pages" number="279"/>
-  <syscall name="utimensat" number="280"/>
-  <syscall name="epoll_pwait" number="281"/>
-  <syscall name="signalfd" number="282"/>
-  <syscall name="timerfd_create" number="283"/>
-  <syscall name="eventfd" number="284"/>
-  <syscall name="fallocate" number="285"/>
-  <syscall name="timerfd_settime" number="286"/>
-  <syscall name="timerfd_gettime" number="287"/>
-  <syscall name="accept4" number="288"/>
-  <syscall name="signalfd4" number="289"/>
-  <syscall name="eventfd2" number="290"/>
-  <syscall name="epoll_create1" number="291"/>
-  <syscall name="dup3" number="292"/>
-  <syscall name="pipe2" number="293"/>
-  <syscall name="inotify_init1" number="294"/>
-  <syscall name="preadv" number="295"/>
-  <syscall name="pwritev" number="296"/>
+  <syscall name="splice" number="275" groups="descriptor"/>
+  <syscall name="tee" number="276" groups="descriptor"/>
+  <syscall name="sync_file_range" number="277" groups="descriptor"/>
+  <syscall name="vmsplice" number="278" groups="descriptor"/>
+  <syscall name="move_pages" number="279" groups="memory"/>
+  <syscall name="utimensat" number="280" groups="descriptor,file"/>
+  <syscall name="epoll_pwait" number="281" groups="descriptor"/>
+  <syscall name="signalfd" number="282" groups="descriptor,signal"/>
+  <syscall name="timerfd_create" number="283" groups="descriptor"/>
+  <syscall name="eventfd" number="284" groups="descriptor"/>
+  <syscall name="fallocate" number="285" groups="descriptor"/>
+  <syscall name="timerfd_settime" number="286" groups="descriptor"/>
+  <syscall name="timerfd_gettime" number="287" groups="descriptor"/>
+  <syscall name="accept4" number="288" groups="network"/>
+  <syscall name="signalfd4" number="289" groups="descriptor,signal"/>
+  <syscall name="eventfd2" number="290" groups="descriptor"/>
+  <syscall name="epoll_create1" number="291" groups="descriptor"/>
+  <syscall name="dup3" number="292" groups="descriptor"/>
+  <syscall name="pipe2" number="293" groups="descriptor"/>
+  <syscall name="inotify_init1" number="294" groups="descriptor"/>
+  <syscall name="preadv" number="295" groups="descriptor"/>
+  <syscall name="pwritev" number="296" groups="descriptor"/>
 </syscalls_info>
-- 
1.9.3

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v3 05/17] Create syscall groups for ppc.
  2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
                   ` (4 preceding siblings ...)
  2015-04-26  1:26 ` [PATCH v3 04/17] Create syscall groups for amd64 Gabriel Krisman Bertazi
@ 2015-04-26  1:26 ` Gabriel Krisman Bertazi
  2015-04-26  1:26 ` [PATCH v3 07/17] Create syscall groups for aarch64 Gabriel Krisman Bertazi
                   ` (12 subsequent siblings)
  18 siblings, 0 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-04-26  1:26 UTC (permalink / raw)
  To: gdb-patches; +Cc: dje, sergiodj, Gabriel Krisman Bertazi

This commit introduces the following syscall groups for the ppc
architecture: memory, ipc, process, descriptor, signal and file.

Please note that the sorting of the syscalls among these several groups
follows the same structure used in strace.

gdb/

	* syscalls/ppc-linux.xml: Add 'groups' attribute to several
	syscalls on ppc.  Create groups memory, ipc, file, descriptor,
	process and signal.
---
 gdb/syscalls/ppc-linux.xml | 316 +++++++++++++++++++++++----------------------
 1 file changed, 159 insertions(+), 157 deletions(-)

diff --git a/gdb/syscalls/ppc-linux.xml b/gdb/syscalls/ppc-linux.xml
index ce2d34f..a74c69b 100644
--- a/gdb/syscalls/ppc-linux.xml
+++ b/gdb/syscalls/ppc-linux.xml
@@ -13,81 +13,83 @@
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+<!-- The group field was based on strace.  -->
+
 <syscalls_info>
   <syscall name="restart_syscall" number="0"/>
-  <syscall name="exit" number="1"/>
-  <syscall name="fork" number="2"/>
-  <syscall name="read" number="3"/>
-  <syscall name="write" number="4"/>
-  <syscall name="open" number="5"/>
-  <syscall name="close" number="6"/>
-  <syscall name="waitpid" number="7"/>
-  <syscall name="creat" number="8"/>
-  <syscall name="link" number="9"/>
-  <syscall name="unlink" number="10"/>
-  <syscall name="execve" number="11"/>
-  <syscall name="chdir" number="12"/>
+  <syscall name="exit" number="1" groups="process"/>
+  <syscall name="fork" number="2" groups="process"/>
+  <syscall name="read" number="3" groups="descriptor"/>
+  <syscall name="write" number="4" groups="descriptor"/>
+  <syscall name="open" number="5" groups="descriptor,file"/>
+  <syscall name="close" number="6" groups="descriptor"/>
+  <syscall name="waitpid" number="7" groups="process"/>
+  <syscall name="creat" number="8" groups="descriptor,file"/>
+  <syscall name="link" number="9" groups="file"/>
+  <syscall name="unlink" number="10" groups="file"/>
+  <syscall name="execve" number="11" groups="file,process"/>
+  <syscall name="chdir" number="12" groups="file"/>
   <syscall name="time" number="13"/>
-  <syscall name="mknod" number="14"/>
-  <syscall name="chmod" number="15"/>
-  <syscall name="lchown" number="16"/>
-  <syscall name="break" number="17"/>
-  <syscall name="oldstat" number="18"/>
-  <syscall name="lseek" number="19"/>
+  <syscall name="mknod" number="14" groups="file"/>
+  <syscall name="chmod" number="15" groups="file"/>
+  <syscall name="lchown" number="16" groups="file"/>
+  <syscall name="break" number="17" groups="memory"/>
+  <syscall name="oldstat" number="18" groups="file"/>
+  <syscall name="lseek" number="19" groups="descriptor"/>
   <syscall name="getpid" number="20"/>
-  <syscall name="mount" number="21"/>
-  <syscall name="umount" number="22"/>
+  <syscall name="mount" number="21" groups="file"/>
+  <syscall name="umount" number="22" groups="file"/>
   <syscall name="setuid" number="23"/>
   <syscall name="getuid" number="24"/>
   <syscall name="stime" number="25"/>
   <syscall name="ptrace" number="26"/>
   <syscall name="alarm" number="27"/>
-  <syscall name="oldfstat" number="28"/>
-  <syscall name="pause" number="29"/>
-  <syscall name="utime" number="30"/>
+  <syscall name="oldfstat" number="28" groups="descriptor"/>
+  <syscall name="pause" number="29" groups="signal"/>
+  <syscall name="utime" number="30" groups="file"/>
   <syscall name="stty" number="31"/>
   <syscall name="gtty" number="32"/>
-  <syscall name="access" number="33"/>
+  <syscall name="access" number="33" groups="file"/>
   <syscall name="nice" number="34"/>
   <syscall name="ftime" number="35"/>
   <syscall name="sync" number="36"/>
-  <syscall name="kill" number="37"/>
-  <syscall name="rename" number="38"/>
-  <syscall name="mkdir" number="39"/>
-  <syscall name="rmdir" number="40"/>
-  <syscall name="dup" number="41"/>
-  <syscall name="pipe" number="42"/>
+  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="rename" number="38" groups="file"/>
+  <syscall name="mkdir" number="39" groups="file"/>
+  <syscall name="rmdir" number="40" groups="file"/>
+  <syscall name="dup" number="41" groups="descriptor"/>
+  <syscall name="pipe" number="42" groups="descriptor"/>
   <syscall name="times" number="43"/>
   <syscall name="prof" number="44"/>
-  <syscall name="brk" number="45"/>
+  <syscall name="brk" number="45" groups="memory"/>
   <syscall name="setgid" number="46"/>
   <syscall name="getgid" number="47"/>
-  <syscall name="signal" number="48"/>
+  <syscall name="signal" number="48" groups="signal"/>
   <syscall name="geteuid" number="49"/>
   <syscall name="getegid" number="50"/>
-  <syscall name="acct" number="51"/>
+  <syscall name="acct" number="51" groups="file"/>
   <syscall name="umount2" number="52"/>
   <syscall name="lock" number="53"/>
-  <syscall name="ioctl" number="54"/>
-  <syscall name="fcntl" number="55"/>
+  <syscall name="ioctl" number="54" groups="descriptor"/>
+  <syscall name="fcntl" number="55" groups="descriptor"/>
   <syscall name="mpx" number="56"/>
   <syscall name="setpgid" number="57"/>
   <syscall name="ulimit" number="58"/>
   <syscall name="oldolduname" number="59"/>
   <syscall name="umask" number="60"/>
-  <syscall name="chroot" number="61"/>
+  <syscall name="chroot" number="61" groups="file"/>
   <syscall name="ustat" number="62"/>
-  <syscall name="dup2" number="63"/>
+  <syscall name="dup2" number="63" groups="descriptor"/>
   <syscall name="getppid" number="64"/>
   <syscall name="getpgrp" number="65"/>
   <syscall name="setsid" number="66"/>
-  <syscall name="sigaction" number="67"/>
-  <syscall name="sgetmask" number="68"/>
-  <syscall name="ssetmask" number="69"/>
+  <syscall name="sigaction" number="67" groups="signal"/>
+  <syscall name="sgetmask" number="68" groups="signal"/>
+  <syscall name="ssetmask" number="69" groups="signal"/>
   <syscall name="setreuid" number="70"/>
   <syscall name="setregid" number="71"/>
-  <syscall name="sigsuspend" number="72"/>
-  <syscall name="sigpending" number="73"/>
+  <syscall name="sigsuspend" number="72" groups="signal"/>
+  <syscall name="sigpending" number="73" groups="signal"/>
   <syscall name="sethostname" number="74"/>
   <syscall name="setrlimit" number="75"/>
   <syscall name="getrlimit" number="76"/>
@@ -96,78 +98,78 @@
   <syscall name="settimeofday" number="79"/>
   <syscall name="getgroups" number="80"/>
   <syscall name="setgroups" number="81"/>
-  <syscall name="select" number="82"/>
-  <syscall name="symlink" number="83"/>
-  <syscall name="oldlstat" number="84"/>
-  <syscall name="readlink" number="85"/>
-  <syscall name="uselib" number="86"/>
-  <syscall name="swapon" number="87"/>
+  <syscall name="select" number="82" groups="descriptor"/>
+  <syscall name="symlink" number="83" groups="file"/>
+  <syscall name="oldlstat" number="84" groups="file"/>
+  <syscall name="readlink" number="85" groups="file"/>
+  <syscall name="uselib" number="86" groups="file"/>
+  <syscall name="swapon" number="87" groups="file"/>
   <syscall name="reboot" number="88"/>
-  <syscall name="readdir" number="89"/>
-  <syscall name="mmap" number="90"/>
-  <syscall name="munmap" number="91"/>
-  <syscall name="truncate" number="92"/>
-  <syscall name="ftruncate" number="93"/>
-  <syscall name="fchmod" number="94"/>
-  <syscall name="fchown" number="95"/>
+  <syscall name="readdir" number="89" groups="descriptor"/>
+  <syscall name="mmap" number="90" groups="descriptor,memory"/>
+  <syscall name="munmap" number="91" groups="memory"/>
+  <syscall name="truncate" number="92" groups="file"/>
+  <syscall name="ftruncate" number="93" groups="descriptor"/>
+  <syscall name="fchmod" number="94" groups="descriptor"/>
+  <syscall name="fchown" number="95" groups="descriptor"/>
   <syscall name="getpriority" number="96"/>
   <syscall name="setpriority" number="97"/>
   <syscall name="profil" number="98"/>
-  <syscall name="statfs" number="99"/>
-  <syscall name="fstatfs" number="100"/>
+  <syscall name="statfs" number="99" groups="file"/>
+  <syscall name="fstatfs" number="100" groups="descriptor"/>
   <syscall name="ioperm" number="101"/>
-  <syscall name="socketcall" number="102"/>
+  <syscall name="socketcall" number="102" groups="descriptor"/>
   <syscall name="syslog" number="103"/>
   <syscall name="setitimer" number="104"/>
   <syscall name="getitimer" number="105"/>
-  <syscall name="stat" number="106"/>
-  <syscall name="lstat" number="107"/>
-  <syscall name="fstat" number="108"/>
+  <syscall name="stat" number="106" groups="file"/>
+  <syscall name="lstat" number="107" groups="file"/>
+  <syscall name="fstat" number="108" groups="descriptor"/>
   <syscall name="olduname" number="109"/>
   <syscall name="iopl" number="110"/>
   <syscall name="vhangup" number="111"/>
   <syscall name="idle" number="112"/>
   <syscall name="vm86" number="113"/>
-  <syscall name="wait4" number="114"/>
-  <syscall name="swapoff" number="115"/>
+  <syscall name="wait4" number="114" groups="process"/>
+  <syscall name="swapoff" number="115" groups="file"/>
   <syscall name="sysinfo" number="116"/>
-  <syscall name="ipc" number="117"/>
-  <syscall name="fsync" number="118"/>
-  <syscall name="sigreturn" number="119"/>
-  <syscall name="clone" number="120"/>
+  <syscall name="ipc" number="117" groups="ipc"/>
+  <syscall name="fsync" number="118" groups="descriptor"/>
+  <syscall name="sigreturn" number="119" groups="signal"/>
+  <syscall name="clone" number="120" groups="process"/>
   <syscall name="setdomainname" number="121"/>
   <syscall name="uname" number="122"/>
   <syscall name="modify_ldt" number="123"/>
   <syscall name="adjtimex" number="124"/>
-  <syscall name="mprotect" number="125"/>
-  <syscall name="sigprocmask" number="126"/>
+  <syscall name="mprotect" number="125" groups="memory"/>
+  <syscall name="sigprocmask" number="126" groups="signal"/>
   <syscall name="create_module" number="127"/>
   <syscall name="init_module" number="128"/>
   <syscall name="delete_module" number="129"/>
   <syscall name="get_kernel_syms" number="130"/>
-  <syscall name="quotactl" number="131"/>
+  <syscall name="quotactl" number="131" groups="file"/>
   <syscall name="getpgid" number="132"/>
-  <syscall name="fchdir" number="133"/>
+  <syscall name="fchdir" number="133" groups="descriptor"/>
   <syscall name="bdflush" number="134"/>
   <syscall name="sysfs" number="135"/>
   <syscall name="personality" number="136"/>
   <syscall name="afs_syscall" number="137"/>
   <syscall name="setfsuid" number="138"/>
   <syscall name="setfsgid" number="139"/>
-  <syscall name="_llseek" number="140"/>
-  <syscall name="getdents" number="141"/>
+  <syscall name="_llseek" number="140" groups="descriptor"/>
+  <syscall name="getdents" number="141" groups="descriptor"/>
   <syscall name="_newselect" number="142"/>
-  <syscall name="flock" number="143"/>
-  <syscall name="msync" number="144"/>
-  <syscall name="readv" number="145"/>
-  <syscall name="writev" number="146"/>
+  <syscall name="flock" number="143" groups="descriptor"/>
+  <syscall name="msync" number="144" groups="memory"/>
+  <syscall name="readv" number="145" groups="descriptor"/>
+  <syscall name="writev" number="146" groups="descriptor"/>
   <syscall name="getsid" number="147"/>
-  <syscall name="fdatasync" number="148"/>
+  <syscall name="fdatasync" number="148" groups="descriptor"/>
   <syscall name="_sysctl" number="149"/>
-  <syscall name="mlock" number="150"/>
-  <syscall name="munlock" number="151"/>
-  <syscall name="mlockall" number="152"/>
-  <syscall name="munlockall" number="153"/>
+  <syscall name="mlock" number="150" groups="memory"/>
+  <syscall name="munlock" number="151" groups="memory"/>
+  <syscall name="mlockall" number="152" groups="memory"/>
+  <syscall name="munlockall" number="153" groups="memory"/>
   <syscall name="sched_setparam" number="154"/>
   <syscall name="sched_getparam" number="155"/>
   <syscall name="sched_setscheduler" number="156"/>
@@ -177,82 +179,82 @@
   <syscall name="sched_get_priority_min" number="160"/>
   <syscall name="sched_rr_get_interval" number="161"/>
   <syscall name="nanosleep" number="162"/>
-  <syscall name="mremap" number="163"/>
+  <syscall name="mremap" number="163" groups="memory"/>
   <syscall name="setresuid" number="164"/>
   <syscall name="getresuid" number="165"/>
   <syscall name="query_module" number="166"/>
-  <syscall name="poll" number="167"/>
+  <syscall name="poll" number="167" groups="descriptor"/>
   <syscall name="nfsservctl" number="168"/>
   <syscall name="setresgid" number="169"/>
   <syscall name="getresgid" number="170"/>
   <syscall name="prctl" number="171"/>
-  <syscall name="rt_sigreturn" number="172"/>
-  <syscall name="rt_sigaction" number="173"/>
-  <syscall name="rt_sigprocmask" number="174"/>
-  <syscall name="rt_sigpending" number="175"/>
-  <syscall name="rt_sigtimedwait" number="176"/>
-  <syscall name="rt_sigqueueinfo" number="177"/>
-  <syscall name="rt_sigsuspend" number="178"/>
-  <syscall name="pread64" number="179"/>
-  <syscall name="pwrite64" number="180"/>
-  <syscall name="chown" number="181"/>
-  <syscall name="getcwd" number="182"/>
+  <syscall name="rt_sigreturn" number="172" groups="signal"/>
+  <syscall name="rt_sigaction" number="173" groups="signal"/>
+  <syscall name="rt_sigprocmask" number="174" groups="signal"/>
+  <syscall name="rt_sigpending" number="175" groups="signal"/>
+  <syscall name="rt_sigtimedwait" number="176" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="177" groups="signal"/>
+  <syscall name="rt_sigsuspend" number="178" groups="signal"/>
+  <syscall name="pread64" number="179" groups="descriptor"/>
+  <syscall name="pwrite64" number="180" groups="descriptor"/>
+  <syscall name="chown" number="181" groups="file"/>
+  <syscall name="getcwd" number="182" groups="file"/>
   <syscall name="capget" number="183"/>
   <syscall name="capset" number="184"/>
-  <syscall name="sigaltstack" number="185"/>
-  <syscall name="sendfile" number="186"/>
+  <syscall name="sigaltstack" number="185" groups="signal"/>
+  <syscall name="sendfile" number="186" groups="descriptor,network"/>
   <syscall name="getpmsg" number="187"/>
   <syscall name="putpmsg" number="188"/>
-  <syscall name="vfork" number="189"/>
+  <syscall name="vfork" number="189" groups="process"/>
   <syscall name="ugetrlimit" number="190"/>
-  <syscall name="readahead" number="191"/>
-  <syscall name="mmap2" number="192"/>
-  <syscall name="truncate64" number="193"/>
-  <syscall name="ftruncate64" number="194"/>
-  <syscall name="stat64" number="195"/>
-  <syscall name="lstat64" number="196"/>
-  <syscall name="fstat64" number="197"/>
+  <syscall name="readahead" number="191" groups="descriptor"/>
+  <syscall name="mmap2" number="192" groups="descriptor,memory"/>
+  <syscall name="truncate64" number="193" groups="file"/>
+  <syscall name="ftruncate64" number="194" groups="descriptor"/>
+  <syscall name="stat64" number="195" groups="file"/>
+  <syscall name="lstat64" number="196" groups="file"/>
+  <syscall name="fstat64" number="197" groups="descriptor"/>
   <syscall name="pciconfig_read" number="198"/>
   <syscall name="pciconfig_write" number="199"/>
   <syscall name="pciconfig_iobase" number="200"/>
   <syscall name="multiplexer" number="201"/>
-  <syscall name="getdents64" number="202"/>
-  <syscall name="pivot_root" number="203"/>
-  <syscall name="fcntl64" number="204"/>
-  <syscall name="madvise" number="205"/>
-  <syscall name="mincore" number="206"/>
+  <syscall name="getdents64" number="202" groups="descriptor"/>
+  <syscall name="pivot_root" number="203" groups="file"/>
+  <syscall name="fcntl64" number="204" groups="descriptor"/>
+  <syscall name="madvise" number="205" groups="memory"/>
+  <syscall name="mincore" number="206" groups="memory"/>
   <syscall name="gettid" number="207"/>
-  <syscall name="tkill" number="208"/>
-  <syscall name="setxattr" number="209"/>
-  <syscall name="lsetxattr" number="210"/>
-  <syscall name="fsetxattr" number="211"/>
-  <syscall name="getxattr" number="212"/>
-  <syscall name="lgetxattr" number="213"/>
-  <syscall name="fgetxattr" number="214"/>
-  <syscall name="listxattr" number="215"/>
-  <syscall name="llistxattr" number="216"/>
-  <syscall name="flistxattr" number="217"/>
-  <syscall name="removexattr" number="218"/>
-  <syscall name="lremovexattr" number="219"/>
-  <syscall name="fremovexattr" number="220"/>
+  <syscall name="tkill" number="208" groups="signal"/>
+  <syscall name="setxattr" number="209" groups="file"/>
+  <syscall name="lsetxattr" number="210" groups="file"/>
+  <syscall name="fsetxattr" number="211" groups="descriptor"/>
+  <syscall name="getxattr" number="212" groups="file"/>
+  <syscall name="lgetxattr" number="213" groups="file"/>
+  <syscall name="fgetxattr" number="214" groups="descriptor"/>
+  <syscall name="listxattr" number="215" groups="file"/>
+  <syscall name="llistxattr" number="216" groups="file"/>
+  <syscall name="flistxattr" number="217" groups="descriptor"/>
+  <syscall name="removexattr" number="218" groups="file"/>
+  <syscall name="lremovexattr" number="219" groups="file"/>
+  <syscall name="fremovexattr" number="220" groups="descriptor"/>
   <syscall name="futex" number="221"/>
   <syscall name="sched_setaffinity" number="222"/>
   <syscall name="sched_getaffinity" number="223"/>
   <syscall name="tuxcall" number="225"/>
-  <syscall name="sendfile64" number="226"/>
+  <syscall name="sendfile64" number="226" groups="descriptor,network"/>
   <syscall name="io_setup" number="227"/>
   <syscall name="io_destroy" number="228"/>
   <syscall name="io_getevents" number="229"/>
   <syscall name="io_submit" number="230"/>
   <syscall name="io_cancel" number="231"/>
   <syscall name="set_tid_address" number="232"/>
-  <syscall name="fadvise64" number="233"/>
-  <syscall name="exit_group" number="234"/>
+  <syscall name="fadvise64" number="233" groups="descriptor"/>
+  <syscall name="exit_group" number="234" groups="process"/>
   <syscall name="lookup_dcookie" number="235"/>
-  <syscall name="epoll_create" number="236"/>
-  <syscall name="epoll_ctl" number="237"/>
-  <syscall name="epoll_wait" number="238"/>
-  <syscall name="remap_file_pages" number="239"/>
+  <syscall name="epoll_create" number="236" groups="descriptor"/>
+  <syscall name="epoll_ctl" number="237" groups="descriptor"/>
+  <syscall name="epoll_wait" number="238" groups="descriptor"/>
+  <syscall name="remap_file_pages" number="239" groups="memory"/>
   <syscall name="timer_create" number="240"/>
   <syscall name="timer_settime" number="241"/>
   <syscall name="timer_gettime" number="242"/>
@@ -263,16 +265,16 @@
   <syscall name="clock_getres" number="247"/>
   <syscall name="clock_nanosleep" number="248"/>
   <syscall name="swapcontext" number="249"/>
-  <syscall name="tgkill" number="250"/>
-  <syscall name="utimes" number="251"/>
-  <syscall name="statfs64" number="252"/>
-  <syscall name="fstatfs64" number="253"/>
-  <syscall name="fadvise64_64" number="254"/>
+  <syscall name="tgkill" number="250" groups="signal"/>
+  <syscall name="utimes" number="251" groups="file"/>
+  <syscall name="statfs64" number="252" groups="file"/>
+  <syscall name="fstatfs64" number="253" groups="descriptor"/>
+  <syscall name="fadvise64_64" number="254" groups="descriptor"/>
   <syscall name="rtas" number="255"/>
   <syscall name="sys_debug_setcontext" number="256"/>
-  <syscall name="mbind" number="259"/>
-  <syscall name="get_mempolicy" number="260"/>
-  <syscall name="set_mempolicy" number="261"/>
+  <syscall name="mbind" number="259" groups="memory"/>
+  <syscall name="get_mempolicy" number="260" groups="memory"/>
+  <syscall name="set_mempolicy" number="261" groups="memory"/>
   <syscall name="mq_open" number="262"/>
   <syscall name="mq_unlink" number="263"/>
   <syscall name="mq_timedsend" number="264"/>
@@ -283,28 +285,28 @@
   <syscall name="add_key" number="269"/>
   <syscall name="request_key" number="270"/>
   <syscall name="keyctl" number="271"/>
-  <syscall name="waitid" number="272"/>
+  <syscall name="waitid" number="272" groups="process"/>
   <syscall name="ioprio_set" number="273"/>
   <syscall name="ioprio_get" number="274"/>
-  <syscall name="inotify_init" number="275"/>
-  <syscall name="inotify_add_watch" number="276"/>
-  <syscall name="inotify_rm_watch" number="277"/>
+  <syscall name="inotify_init" number="275" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="276" groups="descriptor"/>
+  <syscall name="inotify_rm_watch" number="277" groups="descriptor"/>
   <syscall name="spu_run" number="278"/>
   <syscall name="spu_create" number="279"/>
-  <syscall name="pselect6" number="280"/>
-  <syscall name="ppoll" number="281"/>
-  <syscall name="unshare" number="282"/>
-  <syscall name="openat" number="286"/>
-  <syscall name="mkdirat" number="287"/>
-  <syscall name="mknodat" number="288"/>
-  <syscall name="fchownat" number="289"/>
-  <syscall name="futimesat" number="290"/>
+  <syscall name="pselect6" number="280" groups="descriptor"/>
+  <syscall name="ppoll" number="281" groups="descriptor"/>
+  <syscall name="unshare" number="282" groups="process"/>
+  <syscall name="openat" number="286" groups="descriptor,file"/>
+  <syscall name="mkdirat" number="287" groups="descriptor,file"/>
+  <syscall name="mknodat" number="288" groups="descriptor,file"/>
+  <syscall name="fchownat" number="289" groups="descriptor,file"/>
+  <syscall name="futimesat" number="290" groups="descriptor,file"/>
   <syscall name="fstatat64" number="291"/>
-  <syscall name="unlinkat" number="292"/>
-  <syscall name="renameat" number="293"/>
-  <syscall name="linkat" number="294"/>
-  <syscall name="symlinkat" number="295"/>
-  <syscall name="readlinkat" number="296"/>
-  <syscall name="fchmodat" number="297"/>
-  <syscall name="faccessat" number="298"/>
+  <syscall name="unlinkat" number="292" groups="descriptor,file"/>
+  <syscall name="renameat" number="293" groups="descriptor,file"/>
+  <syscall name="linkat" number="294" groups="descriptor,file"/>
+  <syscall name="symlinkat" number="295" groups="descriptor,file"/>
+  <syscall name="readlinkat" number="296" groups="descriptor,file"/>
+  <syscall name="fchmodat" number="297" groups="descriptor,file"/>
+  <syscall name="faccessat" number="298" groups="descriptor,file"/>
 </syscalls_info>
-- 
1.9.3

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v3 12/17] Create syscall groups for mips-n64.
  2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
                   ` (9 preceding siblings ...)
  2015-04-26  1:26 ` [PATCH v3 08/17] Create syscall groups for arm Gabriel Krisman Bertazi
@ 2015-04-26  1:26 ` Gabriel Krisman Bertazi
  2015-04-26  1:47 ` [PATCH v3 13/17] Create syscall groups for mips-o32 Gabriel Krisman Bertazi
                   ` (7 subsequent siblings)
  18 siblings, 0 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-04-26  1:26 UTC (permalink / raw)
  To: gdb-patches; +Cc: dje, sergiodj, Gabriel Krisman Bertazi

This commit introduces the following syscall groups for the mips-64
architecture: memory, ipc, process, descriptor, signal and file.

Please note that the sorting of the syscalls among these several groups
follows the same structure used in strace.

gdb/

	* syscalls/mips-n64-linux.xml: Add 'groups' attribute to several
	syscalls on mips-n64.  Create groups memory, ipc, file,
	descriptor, process and signal.
---
 gdb/syscalls/mips-n64-linux.xml | 362 ++++++++++++++++++++--------------------
 1 file changed, 182 insertions(+), 180 deletions(-)

diff --git a/gdb/syscalls/mips-n64-linux.xml b/gdb/syscalls/mips-n64-linux.xml
index 3c89c2a..ed1e4f1 100644
--- a/gdb/syscalls/mips-n64-linux.xml
+++ b/gdb/syscalls/mips-n64-linux.xml
@@ -13,100 +13,102 @@
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+<!-- The group field was based on strace.  -->
+
 <syscalls_info>
-  <syscall name="read" number="5000"/>
-  <syscall name="write" number="5001"/>
-  <syscall name="open" number="5002"/>
-  <syscall name="close" number="5003"/>
-  <syscall name="stat" number="5004"/>
-  <syscall name="fstat" number="5005"/>
-  <syscall name="lstat" number="5006"/>
-  <syscall name="poll" number="5007"/>
-  <syscall name="lseek" number="5008"/>
-  <syscall name="mmap" number="5009"/>
-  <syscall name="mprotect" number="5010"/>
-  <syscall name="munmap" number="5011"/>
-  <syscall name="brk" number="5012"/>
-  <syscall name="rt_sigaction" number="5013"/>
-  <syscall name="rt_sigprocmask" number="5014"/>
-  <syscall name="ioctl" number="5015"/>
-  <syscall name="pread64" number="5016"/>
-  <syscall name="pwrite64" number="5017"/>
-  <syscall name="readv" number="5018"/>
-  <syscall name="writev" number="5019"/>
-  <syscall name="access" number="5020"/>
-  <syscall name="pipe" number="5021"/>
-  <syscall name="_newselect" number="5022"/>
+  <syscall name="read" number="5000" groups="descriptor"/>
+  <syscall name="write" number="5001" groups="descriptor"/>
+  <syscall name="open" number="5002" groups="descriptor,file"/>
+  <syscall name="close" number="5003" groups="descriptor"/>
+  <syscall name="stat" number="5004" groups="file"/>
+  <syscall name="fstat" number="5005" groups="descriptor"/>
+  <syscall name="lstat" number="5006" groups="file"/>
+  <syscall name="poll" number="5007" groups="descriptor"/>
+  <syscall name="lseek" number="5008" groups="descriptor"/>
+  <syscall name="mmap" number="5009" groups="descriptor,memory"/>
+  <syscall name="mprotect" number="5010" groups="memory"/>
+  <syscall name="munmap" number="5011" groups="memory"/>
+  <syscall name="brk" number="5012" groups="memory"/>
+  <syscall name="rt_sigaction" number="5013" groups="signal"/>
+  <syscall name="rt_sigprocmask" number="5014" groups="signal"/>
+  <syscall name="ioctl" number="5015" groups="descriptor"/>
+  <syscall name="pread64" number="5016" groups="descriptor"/>
+  <syscall name="pwrite64" number="5017" groups="descriptor"/>
+  <syscall name="readv" number="5018" groups="descriptor"/>
+  <syscall name="writev" number="5019" groups="descriptor"/>
+  <syscall name="access" number="5020" groups="file"/>
+  <syscall name="pipe" number="5021" groups="descriptor"/>
+  <syscall name="_newselect" number="5022" groups="descriptor"/>
   <syscall name="sched_yield" number="5023"/>
-  <syscall name="mremap" number="5024"/>
-  <syscall name="msync" number="5025"/>
-  <syscall name="mincore" number="5026"/>
-  <syscall name="madvise" number="5027"/>
-  <syscall name="shmget" number="5028"/>
-  <syscall name="shmat" number="5029"/>
-  <syscall name="shmctl" number="5030"/>
-  <syscall name="dup" number="5031"/>
-  <syscall name="dup2" number="5032"/>
-  <syscall name="pause" number="5033"/>
+  <syscall name="mremap" number="5024" groups="memory"/>
+  <syscall name="msync" number="5025" groups="memory"/>
+  <syscall name="mincore" number="5026" groups="memory"/>
+  <syscall name="madvise" number="5027" groups="memory"/>
+  <syscall name="shmget" number="5028" groups="ipc"/>
+  <syscall name="shmat" number="5029" groups="ipc,memory"/>
+  <syscall name="shmctl" number="5030" groups="ipc"/>
+  <syscall name="dup" number="5031" groups="descriptor"/>
+  <syscall name="dup2" number="5032" groups="descriptor"/>
+  <syscall name="pause" number="5033" groups="signal"/>
   <syscall name="nanosleep" number="5034"/>
   <syscall name="getitimer" number="5035"/>
   <syscall name="setitimer" number="5036"/>
   <syscall name="alarm" number="5037"/>
   <syscall name="getpid" number="5038"/>
-  <syscall name="sendfile" number="5039"/>
-  <syscall name="socket" number="5040"/>
-  <syscall name="connect" number="5041"/>
-  <syscall name="accept" number="5042"/>
-  <syscall name="sendto" number="5043"/>
-  <syscall name="recvfrom" number="5044"/>
-  <syscall name="sendmsg" number="5045"/>
-  <syscall name="recvmsg" number="5046"/>
-  <syscall name="shutdown" number="5047"/>
-  <syscall name="bind" number="5048"/>
-  <syscall name="listen" number="5049"/>
-  <syscall name="getsockname" number="5050"/>
-  <syscall name="getpeername" number="5051"/>
-  <syscall name="socketpair" number="5052"/>
-  <syscall name="setsockopt" number="5053"/>
-  <syscall name="getsockopt" number="5054"/>
-  <syscall name="clone" number="5055"/>
-  <syscall name="fork" number="5056"/>
-  <syscall name="execve" number="5057"/>
-  <syscall name="exit" number="5058"/>
-  <syscall name="wait4" number="5059"/>
-  <syscall name="kill" number="5060"/>
+  <syscall name="sendfile" number="5039" groups="descriptor,network"/>
+  <syscall name="socket" number="5040" groups="network"/>
+  <syscall name="connect" number="5041" groups="network"/>
+  <syscall name="accept" number="5042" groups="network"/>
+  <syscall name="sendto" number="5043" groups="network"/>
+  <syscall name="recvfrom" number="5044" groups="network"/>
+  <syscall name="sendmsg" number="5045" groups="network"/>
+  <syscall name="recvmsg" number="5046" groups="network"/>
+  <syscall name="shutdown" number="5047" groups="network"/>
+  <syscall name="bind" number="5048" groups="network"/>
+  <syscall name="listen" number="5049" groups="network"/>
+  <syscall name="getsockname" number="5050" groups="network"/>
+  <syscall name="getpeername" number="5051" groups="network"/>
+  <syscall name="socketpair" number="5052" groups="network"/>
+  <syscall name="setsockopt" number="5053" groups="network"/>
+  <syscall name="getsockopt" number="5054" groups="network"/>
+  <syscall name="clone" number="5055" groups="process"/>
+  <syscall name="fork" number="5056" groups="process"/>
+  <syscall name="execve" number="5057" groups="file,process"/>
+  <syscall name="exit" number="5058" groups="process"/>
+  <syscall name="wait4" number="5059" groups="process"/>
+  <syscall name="kill" number="5060" groups="signal"/>
   <syscall name="uname" number="5061"/>
-  <syscall name="semget" number="5062"/>
+  <syscall name="semget" number="5062" groups="ipc"/>
   <syscall name="semop" number="5063"/>
-  <syscall name="semctl" number="5064"/>
-  <syscall name="shmdt" number="5065"/>
-  <syscall name="msgget" number="5066"/>
-  <syscall name="msgsnd" number="5067"/>
-  <syscall name="msgrcv" number="5068"/>
-  <syscall name="msgctl" number="5069"/>
-  <syscall name="fcntl" number="5070"/>
-  <syscall name="flock" number="5071"/>
-  <syscall name="fsync" number="5072"/>
-  <syscall name="fdatasync" number="5073"/>
-  <syscall name="truncate" number="5074"/>
-  <syscall name="ftruncate" number="5075"/>
-  <syscall name="getdents" number="5076"/>
-  <syscall name="getcwd" number="5077"/>
-  <syscall name="chdir" number="5078"/>
-  <syscall name="fchdir" number="5079"/>
-  <syscall name="rename" number="5080"/>
-  <syscall name="mkdir" number="5081"/>
-  <syscall name="rmdir" number="5082"/>
-  <syscall name="creat" number="5083"/>
-  <syscall name="link" number="5084"/>
-  <syscall name="unlink" number="5085"/>
-  <syscall name="symlink" number="5086"/>
-  <syscall name="readlink" number="5087"/>
-  <syscall name="chmod" number="5088"/>
-  <syscall name="fchmod" number="5089"/>
-  <syscall name="chown" number="5090"/>
-  <syscall name="fchown" number="5091"/>
-  <syscall name="lchown" number="5092"/>
+  <syscall name="semctl" number="5064" groups="ipc"/>
+  <syscall name="shmdt" number="5065" groups="ipc,memory"/>
+  <syscall name="msgget" number="5066" groups="ipc"/>
+  <syscall name="msgsnd" number="5067" groups="ipc"/>
+  <syscall name="msgrcv" number="5068" groups="ipc"/>
+  <syscall name="msgctl" number="5069" groups="ipc"/>
+  <syscall name="fcntl" number="5070" groups="descriptor"/>
+  <syscall name="flock" number="5071" groups="descriptor"/>
+  <syscall name="fsync" number="5072" groups="descriptor"/>
+  <syscall name="fdatasync" number="5073" groups="descriptor"/>
+  <syscall name="truncate" number="5074" groups="file"/>
+  <syscall name="ftruncate" number="5075" groups="descriptor"/>
+  <syscall name="getdents" number="5076" groups="descriptor"/>
+  <syscall name="getcwd" number="5077" groups="file"/>
+  <syscall name="chdir" number="5078" groups="file"/>
+  <syscall name="fchdir" number="5079" groups="descriptor"/>
+  <syscall name="rename" number="5080" groups="file"/>
+  <syscall name="mkdir" number="5081" groups="file"/>
+  <syscall name="rmdir" number="5082" groups="file"/>
+  <syscall name="creat" number="5083" groups="descriptor,file"/>
+  <syscall name="link" number="5084" groups="file"/>
+  <syscall name="unlink" number="5085" groups="file"/>
+  <syscall name="symlink" number="5086" groups="file"/>
+  <syscall name="readlink" number="5087" groups="file"/>
+  <syscall name="chmod" number="5088" groups="file"/>
+  <syscall name="fchmod" number="5089" groups="descriptor"/>
+  <syscall name="chown" number="5090" groups="file"/>
+  <syscall name="fchown" number="5091" groups="descriptor"/>
+  <syscall name="lchown" number="5092" groups="file"/>
   <syscall name="umask" number="5093"/>
   <syscall name="gettimeofday" number="5094"/>
   <syscall name="getrlimit" number="5095"/>
@@ -139,17 +141,17 @@
   <syscall name="getsid" number="5122"/>
   <syscall name="capget" number="5123"/>
   <syscall name="capset" number="5124"/>
-  <syscall name="rt_sigpending" number="5125"/>
-  <syscall name="rt_sigtimedwait" number="5126"/>
-  <syscall name="rt_sigqueueinfo" number="5127"/>
-  <syscall name="rt_sigsuspend" number="5128"/>
-  <syscall name="sigaltstack" number="5129"/>
-  <syscall name="utime" number="5130"/>
-  <syscall name="mknod" number="5131"/>
+  <syscall name="rt_sigpending" number="5125" groups="signal"/>
+  <syscall name="rt_sigtimedwait" number="5126" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="5127" groups="signal"/>
+  <syscall name="rt_sigsuspend" number="5128" groups="signal"/>
+  <syscall name="sigaltstack" number="5129" groups="signal"/>
+  <syscall name="utime" number="5130" groups="file"/>
+  <syscall name="mknod" number="5131" groups="file"/>
   <syscall name="personality" number="5132"/>
   <syscall name="ustat" number="5133"/>
-  <syscall name="statfs" number="5134"/>
-  <syscall name="fstatfs" number="5135"/>
+  <syscall name="statfs" number="5134" groups="file"/>
+  <syscall name="fstatfs" number="5135" groups="descriptor"/>
   <syscall name="sysfs" number="5136"/>
   <syscall name="getpriority" number="5137"/>
   <syscall name="setpriority" number="5138"/>
@@ -160,24 +162,24 @@
   <syscall name="sched_get_priority_max" number="5143"/>
   <syscall name="sched_get_priority_min" number="5144"/>
   <syscall name="sched_rr_get_interval" number="5145"/>
-  <syscall name="mlock" number="5146"/>
-  <syscall name="munlock" number="5147"/>
-  <syscall name="mlockall" number="5148"/>
-  <syscall name="munlockall" number="5149"/>
+  <syscall name="mlock" number="5146" groups="memory"/>
+  <syscall name="munlock" number="5147" groups="memory"/>
+  <syscall name="mlockall" number="5148" groups="memory"/>
+  <syscall name="munlockall" number="5149" groups="memory"/>
   <syscall name="vhangup" number="5150"/>
-  <syscall name="pivot_root" number="5151"/>
+  <syscall name="pivot_root" number="5151" groups="file"/>
   <syscall name="_sysctl" number="5152"/>
   <syscall name="prctl" number="5153"/>
   <syscall name="adjtimex" number="5154"/>
   <syscall name="setrlimit" number="5155"/>
-  <syscall name="chroot" number="5156"/>
+  <syscall name="chroot" number="5156" groups="file"/>
   <syscall name="sync" number="5157"/>
-  <syscall name="acct" number="5158"/>
+  <syscall name="acct" number="5158" groups="file"/>
   <syscall name="settimeofday" number="5159"/>
-  <syscall name="mount" number="5160"/>
-  <syscall name="umount2" number="5161"/>
-  <syscall name="swapon" number="5162"/>
-  <syscall name="swapoff" number="5163"/>
+  <syscall name="mount" number="5160" groups="file"/>
+  <syscall name="umount2" number="5161" groups="file"/>
+  <syscall name="swapon" number="5162" groups="file"/>
+  <syscall name="swapoff" number="5163" groups="file"/>
   <syscall name="reboot" number="5164"/>
   <syscall name="sethostname" number="5165"/>
   <syscall name="setdomainname" number="5166"/>
@@ -186,26 +188,26 @@
   <syscall name="delete_module" number="5169"/>
   <syscall name="get_kernel_syms" number="5170"/>
   <syscall name="query_module" number="5171"/>
-  <syscall name="quotactl" number="5172"/>
+  <syscall name="quotactl" number="5172" groups="file"/>
   <syscall name="nfsservctl" number="5173"/>
   <syscall name="getpmsg" number="5174"/>
   <syscall name="putpmsg" number="5175"/>
   <syscall name="afs_syscall" number="5176"/>
   <syscall name="gettid" number="5178"/>
-  <syscall name="readahead" number="5179"/>
-  <syscall name="setxattr" number="5180"/>
-  <syscall name="lsetxattr" number="5181"/>
-  <syscall name="fsetxattr" number="5182"/>
-  <syscall name="getxattr" number="5183"/>
-  <syscall name="lgetxattr" number="5184"/>
-  <syscall name="fgetxattr" number="5185"/>
-  <syscall name="listxattr" number="5186"/>
-  <syscall name="llistxattr" number="5187"/>
-  <syscall name="flistxattr" number="5188"/>
-  <syscall name="removexattr" number="5189"/>
-  <syscall name="lremovexattr" number="5190"/>
-  <syscall name="fremovexattr" number="5191"/>
-  <syscall name="tkill" number="5192"/>
+  <syscall name="readahead" number="5179" groups="descriptor"/>
+  <syscall name="setxattr" number="5180" groups="file"/>
+  <syscall name="lsetxattr" number="5181" groups="file"/>
+  <syscall name="fsetxattr" number="5182" groups="descriptor"/>
+  <syscall name="getxattr" number="5183" groups="file"/>
+  <syscall name="lgetxattr" number="5184" groups="file"/>
+  <syscall name="fgetxattr" number="5185" groups="descriptor"/>
+  <syscall name="listxattr" number="5186" groups="file"/>
+  <syscall name="llistxattr" number="5187" groups="file"/>
+  <syscall name="flistxattr" number="5188" groups="descriptor"/>
+  <syscall name="removexattr" number="5189" groups="file"/>
+  <syscall name="lremovexattr" number="5190" groups="file"/>
+  <syscall name="fremovexattr" number="5191" groups="descriptor"/>
+  <syscall name="tkill" number="5192" groups="signal"/>
   <syscall name="futex" number="5194"/>
   <syscall name="sched_setaffinity" number="5195"/>
   <syscall name="sched_getaffinity" number="5196"/>
@@ -217,16 +219,16 @@
   <syscall name="io_getevents" number="5202"/>
   <syscall name="io_submit" number="5203"/>
   <syscall name="io_cancel" number="5204"/>
-  <syscall name="exit_group" number="5205"/>
+  <syscall name="exit_group" number="5205" groups="process"/>
   <syscall name="lookup_dcookie" number="5206"/>
-  <syscall name="epoll_create" number="5207"/>
-  <syscall name="epoll_ctl" number="5208"/>
-  <syscall name="epoll_wait" number="5209"/>
-  <syscall name="remap_file_pages" number="5210"/>
-  <syscall name="rt_sigreturn" number="5211"/>
+  <syscall name="epoll_create" number="5207" groups="descriptor"/>
+  <syscall name="epoll_ctl" number="5208" groups="descriptor"/>
+  <syscall name="epoll_wait" number="5209" groups="descriptor"/>
+  <syscall name="remap_file_pages" number="5210" groups="memory"/>
+  <syscall name="rt_sigreturn" number="5211" groups="signal"/>
   <syscall name="set_tid_address" number="5212"/>
   <syscall name="restart_syscall" number="5213"/>
-  <syscall name="semtimedop" number="5214"/>
+  <syscall name="semtimedop" number="5214" groups="ipc"/>
   <syscall name="fadvise64" number="5215"/>
   <syscall name="timer_create" number="5216"/>
   <syscall name="timer_settime" number="5217"/>
@@ -237,11 +239,11 @@
   <syscall name="clock_gettime" number="5222"/>
   <syscall name="clock_getres" number="5223"/>
   <syscall name="clock_nanosleep" number="5224"/>
-  <syscall name="tgkill" number="5225"/>
-  <syscall name="utimes" number="5226"/>
-  <syscall name="mbind" number="5227"/>
-  <syscall name="get_mempolicy" number="5228"/>
-  <syscall name="set_mempolicy" number="5229"/>
+  <syscall name="tgkill" number="5225" groups="signal"/>
+  <syscall name="utimes" number="5226" groups="file"/>
+  <syscall name="mbind" number="5227" groups="memory"/>
+  <syscall name="get_mempolicy" number="5228" groups="memory"/>
+  <syscall name="set_mempolicy" number="5229" groups="memory"/>
   <syscall name="mq_open" number="5230"/>
   <syscall name="mq_unlink" number="5231"/>
   <syscall name="mq_timedsend" number="5232"/>
@@ -249,64 +251,64 @@
   <syscall name="mq_notify" number="5234"/>
   <syscall name="mq_getsetattr" number="5235"/>
   <syscall name="vserver" number="5236"/>
-  <syscall name="waitid" number="5237"/>
+  <syscall name="waitid" number="5237" groups="process"/>
   <syscall name="add_key" number="5239"/>
   <syscall name="request_key" number="5240"/>
   <syscall name="keyctl" number="5241"/>
   <syscall name="set_thread_area" number="5242"/>
-  <syscall name="inotify_init" number="5243"/>
-  <syscall name="inotify_add_watch" number="5244"/>
-  <syscall name="inotify_rm_watch" number="5245"/>
-  <syscall name="migrate_pages" number="5246"/>
-  <syscall name="openat" number="5247"/>
-  <syscall name="mkdirat" number="5248"/>
-  <syscall name="mknodat" number="5249"/>
-  <syscall name="fchownat" number="5250"/>
-  <syscall name="futimesat" number="5251"/>
-  <syscall name="newfstatat" number="5252"/>
-  <syscall name="unlinkat" number="5253"/>
-  <syscall name="renameat" number="5254"/>
-  <syscall name="linkat" number="5255"/>
-  <syscall name="symlinkat" number="5256"/>
-  <syscall name="readlinkat" number="5257"/>
-  <syscall name="fchmodat" number="5258"/>
-  <syscall name="faccessat" number="5259"/>
-  <syscall name="pselect6" number="5260"/>
-  <syscall name="ppoll" number="5261"/>
-  <syscall name="unshare" number="5262"/>
-  <syscall name="splice" number="5263"/>
-  <syscall name="sync_file_range" number="5264"/>
-  <syscall name="tee" number="5265"/>
-  <syscall name="vmsplice" number="5266"/>
+  <syscall name="inotify_init" number="5243" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="5244" groups="descriptor"/>
+  <syscall name="inotify_rm_watch" number="5245" groups="descriptor"/>
+  <syscall name="migrate_pages" number="5246" groups="memory"/>
+  <syscall name="openat" number="5247" groups="descriptor,file"/>
+  <syscall name="mkdirat" number="5248" groups="descriptor,file"/>
+  <syscall name="mknodat" number="5249" groups="descriptor,file"/>
+  <syscall name="fchownat" number="5250" groups="descriptor,file"/>
+  <syscall name="futimesat" number="5251" groups="descriptor,file"/>
+  <syscall name="newfstatat" number="5252" groups="descriptor,file"/>
+  <syscall name="unlinkat" number="5253" groups="descriptor,file"/>
+  <syscall name="renameat" number="5254" groups="descriptor,file"/>
+  <syscall name="linkat" number="5255" groups="descriptor,file"/>
+  <syscall name="symlinkat" number="5256" groups="descriptor,file"/>
+  <syscall name="readlinkat" number="5257" groups="descriptor,file"/>
+  <syscall name="fchmodat" number="5258" groups="descriptor,file"/>
+  <syscall name="faccessat" number="5259" groups="descriptor,file"/>
+  <syscall name="pselect6" number="5260" groups="descriptor"/>
+  <syscall name="ppoll" number="5261" groups="descriptor"/>
+  <syscall name="unshare" number="5262" groups="process"/>
+  <syscall name="splice" number="5263" groups="descriptor"/>
+  <syscall name="sync_file_range" number="5264" groups="descriptor"/>
+  <syscall name="tee" number="5265" groups="descriptor"/>
+  <syscall name="vmsplice" number="5266" groups="descriptor"/>
   <syscall name="move_pages" number="5267"/>
   <syscall name="set_robust_list" number="5268"/>
   <syscall name="get_robust_list" number="5269"/>
   <syscall name="kexec_load" number="5270"/>
   <syscall name="getcpu" number="5271"/>
-  <syscall name="epoll_pwait" number="5272"/>
+  <syscall name="epoll_pwait" number="5272" groups="descriptor"/>
   <syscall name="ioprio_set" number="5273"/>
   <syscall name="ioprio_get" number="5274"/>
-  <syscall name="utimensat" number="5275"/>
-  <syscall name="signalfd" number="5276"/>
-  <syscall name="timerfd" number="5277"/>
-  <syscall name="eventfd" number="5278"/>
-  <syscall name="fallocate" number="5279"/>
-  <syscall name="timerfd_create" number="5280"/>
-  <syscall name="timerfd_gettime" number="5281"/>
-  <syscall name="timerfd_settime" number="5282"/>
-  <syscall name="signalfd4" number="5283"/>
-  <syscall name="eventfd2" number="5284"/>
-  <syscall name="epoll_create1" number="5285"/>
-  <syscall name="dup3" number="5286"/>
-  <syscall name="pipe2" number="5287"/>
-  <syscall name="inotify_init1" number="5288"/>
-  <syscall name="preadv" number="5289"/>
-  <syscall name="pwritev" number="5290"/>
-  <syscall name="rt_tgsigqueueinfo" number="5291"/>
-  <syscall name="perf_event_open" number="5292"/>
-  <syscall name="accept4" number="5293"/>
-  <syscall name="recvmmsg" number="5294"/>
-  <syscall name="fanotify_init" number="5295"/>
-  <syscall name="fanotify_mark" number="5296"/>
+  <syscall name="utimensat" number="5275" groups="descriptor,file"/>
+  <syscall name="signalfd" number="5276" groups="descriptor,signal"/>
+  <syscall name="timerfd" number="5277" groups="descriptor"/>
+  <syscall name="eventfd" number="5278" groups="descriptor"/>
+  <syscall name="fallocate" number="5279" groups="descriptor"/>
+  <syscall name="timerfd_create" number="5280" groups="descriptor"/>
+  <syscall name="timerfd_gettime" number="5281" groups="descriptor"/>
+  <syscall name="timerfd_settime" number="5282" groups="descriptor"/>
+  <syscall name="signalfd4" number="5283" groups="descriptor,signal"/>
+  <syscall name="eventfd2" number="5284" groups="descriptor"/>
+  <syscall name="epoll_create1" number="5285" groups="descriptor"/>
+  <syscall name="dup3" number="5286" groups="descriptor"/>
+  <syscall name="pipe2" number="5287" groups="descriptor"/>
+  <syscall name="inotify_init1" number="5288" groups="descriptor"/>
+  <syscall name="preadv" number="5289" groups="descriptor"/>
+  <syscall name="pwritev" number="5290" groups="descriptor"/>
+  <syscall name="rt_tgsigqueueinfo" number="5291" groups="process,signal"/>
+  <syscall name="perf_event_open" number="5292" groups="descriptor"/>
+  <syscall name="accept4" number="5293" groups="network"/>
+  <syscall name="recvmmsg" number="5294" groups="network"/>
+  <syscall name="fanotify_init" number="5295" groups="descriptor"/>
+  <syscall name="fanotify_mark" number="5296" groups="descriptor,file"/>
   <syscall name="prlimit64" number="5297"/>
 </syscalls_info>
-- 
1.9.3

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v3 10/17] Create syscall groups for i386.
  2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
                   ` (6 preceding siblings ...)
  2015-04-26  1:26 ` [PATCH v3 07/17] Create syscall groups for aarch64 Gabriel Krisman Bertazi
@ 2015-04-26  1:26 ` Gabriel Krisman Bertazi
  2015-04-26  1:26 ` [PATCH v3 06/17] Create syscall groups for ppc64 Gabriel Krisman Bertazi
                   ` (10 subsequent siblings)
  18 siblings, 0 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-04-26  1:26 UTC (permalink / raw)
  To: gdb-patches; +Cc: dje, sergiodj, Gabriel Krisman Bertazi

This commit introduces the following syscall groups for the i386
architecture: memory, ipc, process, descriptor, signal and file.

Please note that the sorting of the syscalls among these several groups
follows the same structure used in strace.

gdb/

	* syscalls/i386-linux.xml: Add 'groups' attribute to several
	syscalls on i386.  Create groups memory, ipc, file, descriptor,
	process and signal.
---
 gdb/syscalls/i386-linux.xml | 346 ++++++++++++++++++++++----------------------
 1 file changed, 174 insertions(+), 172 deletions(-)

diff --git a/gdb/syscalls/i386-linux.xml b/gdb/syscalls/i386-linux.xml
index 7121af5..a96217c 100644
--- a/gdb/syscalls/i386-linux.xml
+++ b/gdb/syscalls/i386-linux.xml
@@ -13,81 +13,83 @@
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+<!-- The group field was based on strace.  -->
+
 <syscalls_info>
   <syscall name="restart_syscall" number="0"/>
   <syscall name="exit" number="1"/>
-  <syscall name="fork" number="2"/>
-  <syscall name="read" number="3"/>
-  <syscall name="write" number="4"/>
-  <syscall name="open" number="5"/>
-  <syscall name="close" number="6"/>
-  <syscall name="waitpid" number="7"/>
-  <syscall name="creat" number="8"/>
-  <syscall name="link" number="9"/>
-  <syscall name="unlink" number="10"/>
-  <syscall name="execve" number="11"/>
-  <syscall name="chdir" number="12"/>
+  <syscall name="fork" number="2" groups="process"/>
+  <syscall name="read" number="3" groups="descriptor"/>
+  <syscall name="write" number="4" groups="descriptor"/>
+  <syscall name="open" number="5" groups="descriptor,file"/>
+  <syscall name="close" number="6" groups="descriptor"/>
+  <syscall name="waitpid" number="7" groups="process"/>
+  <syscall name="creat" number="8" groups="descriptor,file"/>
+  <syscall name="link" number="9" groups="file"/>
+  <syscall name="unlink" number="10" groups="file"/>
+  <syscall name="execve" number="11" groups="file,process"/>
+  <syscall name="chdir" number="12" groups="file"/>
   <syscall name="time" number="13"/>
-  <syscall name="mknod" number="14"/>
-  <syscall name="chmod" number="15"/>
-  <syscall name="lchown" number="16"/>
-  <syscall name="break" number="17"/>
-  <syscall name="oldstat" number="18"/>
-  <syscall name="lseek" number="19"/>
+  <syscall name="mknod" number="14" groups="file"/>
+  <syscall name="chmod" number="15" groups="file"/>
+  <syscall name="lchown" number="16" groups="file"/>
+  <syscall name="break" number="17" groups="memory"/>
+  <syscall name="oldstat" number="18" groups="file"/>
+  <syscall name="lseek" number="19" groups="descriptor"/>
   <syscall name="getpid" number="20"/>
-  <syscall name="mount" number="21"/>
-  <syscall name="umount" number="22"/>
+  <syscall name="mount" number="21" groups="file"/>
+  <syscall name="umount" number="22" groups="file"/>
   <syscall name="setuid" number="23"/>
   <syscall name="getuid" number="24"/>
   <syscall name="stime" number="25"/>
   <syscall name="ptrace" number="26"/>
   <syscall name="alarm" number="27"/>
-  <syscall name="oldfstat" number="28"/>
-  <syscall name="pause" number="29"/>
-  <syscall name="utime" number="30"/>
+  <syscall name="oldfstat" number="28" groups="descriptor"/>
+  <syscall name="pause" number="29" groups="signal"/>
+  <syscall name="utime" number="30" groups="file"/>
   <syscall name="stty" number="31"/>
   <syscall name="gtty" number="32"/>
-  <syscall name="access" number="33"/>
+  <syscall name="access" number="33" groups="file"/>
   <syscall name="nice" number="34"/>
   <syscall name="ftime" number="35"/>
   <syscall name="sync" number="36"/>
-  <syscall name="kill" number="37"/>
-  <syscall name="rename" number="38"/>
-  <syscall name="mkdir" number="39"/>
-  <syscall name="rmdir" number="40"/>
-  <syscall name="dup" number="41"/>
-  <syscall name="pipe" number="42"/>
+  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="rename" number="38" groups="file"/>
+  <syscall name="mkdir" number="39" groups="file"/>
+  <syscall name="rmdir" number="40" groups="file"/>
+  <syscall name="dup" number="41" groups="descriptor"/>
+  <syscall name="pipe" number="42" groups="descriptor"/>
   <syscall name="times" number="43"/>
   <syscall name="prof" number="44"/>
-  <syscall name="brk" number="45"/>
+  <syscall name="brk" number="45" groups="memory"/>
   <syscall name="setgid" number="46"/>
   <syscall name="getgid" number="47"/>
-  <syscall name="signal" number="48"/>
+  <syscall name="signal" number="48" groups="signal"/>
   <syscall name="geteuid" number="49"/>
   <syscall name="getegid" number="50"/>
-  <syscall name="acct" number="51"/>
+  <syscall name="acct" number="51" groups="file"/>
   <syscall name="umount2" number="52"/>
   <syscall name="lock" number="53"/>
-  <syscall name="ioctl" number="54"/>
-  <syscall name="fcntl" number="55"/>
+  <syscall name="ioctl" number="54" groups="descriptor"/>
+  <syscall name="fcntl" number="55" groups="descriptor"/>
   <syscall name="mpx" number="56"/>
   <syscall name="setpgid" number="57"/>
   <syscall name="ulimit" number="58"/>
   <syscall name="oldolduname" number="59"/>
   <syscall name="umask" number="60"/>
-  <syscall name="chroot" number="61"/>
+  <syscall name="chroot" number="61" groups="file"/>
   <syscall name="ustat" number="62"/>
-  <syscall name="dup2" number="63"/>
+  <syscall name="dup2" number="63" groups="descriptor"/>
   <syscall name="getppid" number="64"/>
   <syscall name="getpgrp" number="65"/>
   <syscall name="setsid" number="66"/>
-  <syscall name="sigaction" number="67"/>
-  <syscall name="sgetmask" number="68"/>
-  <syscall name="ssetmask" number="69"/>
+  <syscall name="sigaction" number="67" groups="signal"/>
+  <syscall name="sgetmask" number="68" groups="signal"/>
+  <syscall name="ssetmask" number="69" groups="signal"/>
   <syscall name="setreuid" number="70"/>
   <syscall name="setregid" number="71"/>
-  <syscall name="sigsuspend" number="72"/>
-  <syscall name="sigpending" number="73"/>
+  <syscall name="sigsuspend" number="72" groups="signal"/>
+  <syscall name="sigpending" number="73" groups="signal"/>
   <syscall name="sethostname" number="74"/>
   <syscall name="setrlimit" number="75"/>
   <syscall name="getrlimit" number="76"/>
@@ -96,78 +98,78 @@
   <syscall name="settimeofday" number="79"/>
   <syscall name="getgroups" number="80"/>
   <syscall name="setgroups" number="81"/>
-  <syscall name="select" number="82"/>
-  <syscall name="symlink" number="83"/>
-  <syscall name="oldlstat" number="84"/>
-  <syscall name="readlink" number="85"/>
-  <syscall name="uselib" number="86"/>
-  <syscall name="swapon" number="87"/>
+  <syscall name="select" number="82" groups="descriptor"/>
+  <syscall name="symlink" number="83" groups="file"/>
+  <syscall name="oldlstat" number="84" groups="file"/>
+  <syscall name="readlink" number="85" groups="file"/>
+  <syscall name="uselib" number="86" groups="file"/>
+  <syscall name="swapon" number="87" groups="file"/>
   <syscall name="reboot" number="88"/>
-  <syscall name="readdir" number="89"/>
+  <syscall name="readdir" number="89" groups="descriptor"/>
   <syscall name="mmap" number="90"/>
-  <syscall name="munmap" number="91"/>
-  <syscall name="truncate" number="92"/>
-  <syscall name="ftruncate" number="93"/>
-  <syscall name="fchmod" number="94"/>
-  <syscall name="fchown" number="95"/>
+  <syscall name="munmap" number="91" groups="memory"/>
+  <syscall name="truncate" number="92" groups="file"/>
+  <syscall name="ftruncate" number="93" groups="descriptor"/>
+  <syscall name="fchmod" number="94" groups="descriptor"/>
+  <syscall name="fchown" number="95" groups="descriptor"/>
   <syscall name="getpriority" number="96"/>
   <syscall name="setpriority" number="97"/>
   <syscall name="profil" number="98"/>
-  <syscall name="statfs" number="99"/>
-  <syscall name="fstatfs" number="100"/>
+  <syscall name="statfs" number="99" groups="file"/>
+  <syscall name="fstatfs" number="100" groups="descriptor"/>
   <syscall name="ioperm" number="101"/>
-  <syscall name="socketcall" number="102"/>
+  <syscall name="socketcall" number="102" groups="descriptor"/>
   <syscall name="syslog" number="103"/>
   <syscall name="setitimer" number="104"/>
   <syscall name="getitimer" number="105"/>
-  <syscall name="stat" number="106"/>
-  <syscall name="lstat" number="107"/>
-  <syscall name="fstat" number="108"/>
+  <syscall name="stat" number="106" groups="file"/>
+  <syscall name="lstat" number="107" groups="file"/>
+  <syscall name="fstat" number="108" groups="descriptor"/>
   <syscall name="olduname" number="109"/>
   <syscall name="iopl" number="110"/>
   <syscall name="vhangup" number="111"/>
   <syscall name="idle" number="112"/>
   <syscall name="vm86old" number="113"/>
-  <syscall name="wait4" number="114"/>
-  <syscall name="swapoff" number="115"/>
+  <syscall name="wait4" number="114" groups="process"/>
+  <syscall name="swapoff" number="115" groups="file"/>
   <syscall name="sysinfo" number="116"/>
-  <syscall name="ipc" number="117"/>
-  <syscall name="fsync" number="118"/>
-  <syscall name="sigreturn" number="119"/>
-  <syscall name="clone" number="120"/>
+  <syscall name="ipc" number="117" groups="ipc"/>
+  <syscall name="fsync" number="118" groups="descriptor"/>
+  <syscall name="sigreturn" number="119" groups="signal"/>
+  <syscall name="clone" number="120" groups="process"/>
   <syscall name="setdomainname" number="121"/>
   <syscall name="uname" number="122"/>
   <syscall name="modify_ldt" number="123"/>
   <syscall name="adjtimex" number="124"/>
-  <syscall name="mprotect" number="125"/>
-  <syscall name="sigprocmask" number="126"/>
+  <syscall name="mprotect" number="125" groups="memory"/>
+  <syscall name="sigprocmask" number="126" groups="signal"/>
   <syscall name="create_module" number="127"/>
   <syscall name="init_module" number="128"/>
   <syscall name="delete_module" number="129"/>
   <syscall name="get_kernel_syms" number="130"/>
-  <syscall name="quotactl" number="131"/>
+  <syscall name="quotactl" number="131" groups="file"/>
   <syscall name="getpgid" number="132"/>
-  <syscall name="fchdir" number="133"/>
+  <syscall name="fchdir" number="133" groups="descriptor"/>
   <syscall name="bdflush" number="134"/>
   <syscall name="sysfs" number="135"/>
   <syscall name="personality" number="136"/>
   <syscall name="afs_syscall" number="137"/>
   <syscall name="setfsuid" number="138"/>
   <syscall name="setfsgid" number="139"/>
-  <syscall name="_llseek" number="140"/>
-  <syscall name="getdents" number="141"/>
+  <syscall name="_llseek" number="140" groups="descriptor"/>
+  <syscall name="getdents" number="141" groups="descriptor"/>
   <syscall name="_newselect" number="142"/>
-  <syscall name="flock" number="143"/>
-  <syscall name="msync" number="144"/>
-  <syscall name="readv" number="145"/>
-  <syscall name="writev" number="146"/>
+  <syscall name="flock" number="143" groups="descriptor"/>
+  <syscall name="msync" number="144" groups="memory"/>
+  <syscall name="readv" number="145" groups="descriptor"/>
+  <syscall name="writev" number="146" groups="descriptor"/>
   <syscall name="getsid" number="147"/>
-  <syscall name="fdatasync" number="148"/>
+  <syscall name="fdatasync" number="148" groups="descriptor"/>
   <syscall name="_sysctl" number="149"/>
-  <syscall name="mlock" number="150"/>
-  <syscall name="munlock" number="151"/>
-  <syscall name="mlockall" number="152"/>
-  <syscall name="munlockall" number="153"/>
+  <syscall name="mlock" number="150" groups="memory"/>
+  <syscall name="munlock" number="151" groups="memory"/>
+  <syscall name="mlockall" number="152" groups="memory"/>
+  <syscall name="munlockall" number="153" groups="memory"/>
   <syscall name="sched_setparam" number="154"/>
   <syscall name="sched_getparam" number="155"/>
   <syscall name="sched_setscheduler" number="156"/>
@@ -177,42 +179,42 @@
   <syscall name="sched_get_priority_min" number="160"/>
   <syscall name="sched_rr_get_interval" number="161"/>
   <syscall name="nanosleep" number="162"/>
-  <syscall name="mremap" number="163"/>
+  <syscall name="mremap" number="163" groups="memory"/>
   <syscall name="setresuid" number="164"/>
   <syscall name="getresuid" number="165"/>
   <syscall name="vm86" number="166"/>
   <syscall name="query_module" number="167"/>
-  <syscall name="poll" number="168"/>
+  <syscall name="poll" number="168" groups="descriptor"/>
   <syscall name="nfsservctl" number="169"/>
   <syscall name="setresgid" number="170"/>
   <syscall name="getresgid" number="171"/>
   <syscall name="prctl" number="172"/>
-  <syscall name="rt_sigreturn" number="173"/>
-  <syscall name="rt_sigaction" number="174"/>
-  <syscall name="rt_sigprocmask" number="175"/>
-  <syscall name="rt_sigpending" number="176"/>
-  <syscall name="rt_sigtimedwait" number="177"/>
-  <syscall name="rt_sigqueueinfo" number="178"/>
-  <syscall name="rt_sigsuspend" number="179"/>
-  <syscall name="pread64" number="180"/>
-  <syscall name="pwrite64" number="181"/>
-  <syscall name="chown" number="182"/>
-  <syscall name="getcwd" number="183"/>
+  <syscall name="rt_sigreturn" number="173" groups="signal"/>
+  <syscall name="rt_sigaction" number="174" groups="signal"/>
+  <syscall name="rt_sigprocmask" number="175" groups="signal"/>
+  <syscall name="rt_sigpending" number="176" groups="signal"/>
+  <syscall name="rt_sigtimedwait" number="177" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="178" groups="signal"/>
+  <syscall name="rt_sigsuspend" number="179" groups="signal"/>
+  <syscall name="pread64" number="180" groups="descriptor"/>
+  <syscall name="pwrite64" number="181" groups="descriptor"/>
+  <syscall name="chown" number="182" groups="file"/>
+  <syscall name="getcwd" number="183" groups="file"/>
   <syscall name="capget" number="184"/>
   <syscall name="capset" number="185"/>
-  <syscall name="sigaltstack" number="186"/>
-  <syscall name="sendfile" number="187"/>
+  <syscall name="sigaltstack" number="186" groups="signal"/>
+  <syscall name="sendfile" number="187" groups="descriptor,network"/>
   <syscall name="getpmsg" number="188"/>
   <syscall name="putpmsg" number="189"/>
-  <syscall name="vfork" number="190"/>
+  <syscall name="vfork" number="190" groups="process"/>
   <syscall name="ugetrlimit" number="191"/>
-  <syscall name="mmap2" number="192"/>
-  <syscall name="truncate64" number="193"/>
-  <syscall name="ftruncate64" number="194"/>
-  <syscall name="stat64" number="195"/>
-  <syscall name="lstat64" number="196"/>
-  <syscall name="fstat64" number="197"/>
-  <syscall name="lchown32" number="198"/>
+  <syscall name="mmap2" number="192" groups="descriptor,memory"/>
+  <syscall name="truncate64" number="193" groups="file"/>
+  <syscall name="ftruncate64" number="194" groups="descriptor"/>
+  <syscall name="stat64" number="195" groups="file"/>
+  <syscall name="lstat64" number="196" groups="file"/>
+  <syscall name="fstat64" number="197" groups="descriptor"/>
+  <syscall name="lchown32" number="198" groups="file"/>
   <syscall name="getuid32" number="199"/>
   <syscall name="getgid32" number="200"/>
   <syscall name="geteuid32" number="201"/>
@@ -221,38 +223,38 @@
   <syscall name="setregid32" number="204"/>
   <syscall name="getgroups32" number="205"/>
   <syscall name="setgroups32" number="206"/>
-  <syscall name="fchown32" number="207"/>
+  <syscall name="fchown32" number="207" groups="descriptor"/>
   <syscall name="setresuid32" number="208"/>
   <syscall name="getresuid32" number="209"/>
   <syscall name="setresgid32" number="210"/>
   <syscall name="getresgid32" number="211"/>
-  <syscall name="chown32" number="212"/>
+  <syscall name="chown32" number="212" groups="file"/>
   <syscall name="setuid32" number="213"/>
   <syscall name="setgid32" number="214"/>
   <syscall name="setfsuid32" number="215"/>
   <syscall name="setfsgid32" number="216"/>
-  <syscall name="pivot_root" number="217"/>
-  <syscall name="mincore" number="218"/>
-  <syscall name="madvise" number="219"/>
+  <syscall name="pivot_root" number="217" groups="file"/>
+  <syscall name="mincore" number="218" groups="memory"/>
+  <syscall name="madvise" number="219" groups="memory"/>
   <syscall name="madvise1" number="220"/>
-  <syscall name="getdents64" number="221"/>
-  <syscall name="fcntl64" number="222"/>
+  <syscall name="getdents64" number="221" groups="descriptor"/>
+  <syscall name="fcntl64" number="222" groups="descriptor"/>
   <syscall name="gettid" number="224"/>
-  <syscall name="readahead" number="225"/>
-  <syscall name="setxattr" number="226"/>
-  <syscall name="lsetxattr" number="227"/>
-  <syscall name="fsetxattr" number="228"/>
-  <syscall name="getxattr" number="229"/>
-  <syscall name="lgetxattr" number="230"/>
-  <syscall name="fgetxattr" number="231"/>
-  <syscall name="listxattr" number="232"/>
-  <syscall name="llistxattr" number="233"/>
-  <syscall name="flistxattr" number="234"/>
-  <syscall name="removexattr" number="235"/>
-  <syscall name="lremovexattr" number="236"/>
-  <syscall name="fremovexattr" number="237"/>
-  <syscall name="tkill" number="238"/>
-  <syscall name="sendfile64" number="239"/>
+  <syscall name="readahead" number="225" groups="descriptor"/>
+  <syscall name="setxattr" number="226" groups="file"/>
+  <syscall name="lsetxattr" number="227" groups="file"/>
+  <syscall name="fsetxattr" number="228" groups="descriptor"/>
+  <syscall name="getxattr" number="229" groups="file"/>
+  <syscall name="lgetxattr" number="230" groups="file"/>
+  <syscall name="fgetxattr" number="231" groups="descriptor"/>
+  <syscall name="listxattr" number="232" groups="file"/>
+  <syscall name="llistxattr" number="233" groups="file"/>
+  <syscall name="flistxattr" number="234" groups="descriptor"/>
+  <syscall name="removexattr" number="235" groups="file"/>
+  <syscall name="lremovexattr" number="236" groups="file"/>
+  <syscall name="fremovexattr" number="237" groups="descriptor"/>
+  <syscall name="tkill" number="238" groups="signal"/>
+  <syscall name="sendfile64" number="239" groups="descriptor,network"/>
   <syscall name="futex" number="240"/>
   <syscall name="sched_setaffinity" number="241"/>
   <syscall name="sched_getaffinity" number="242"/>
@@ -263,13 +265,13 @@
   <syscall name="io_getevents" number="247"/>
   <syscall name="io_submit" number="248"/>
   <syscall name="io_cancel" number="249"/>
-  <syscall name="fadvise64" number="250"/>
-  <syscall name="exit_group" number="252"/>
+  <syscall name="fadvise64" number="250" groups="descriptor"/>
+  <syscall name="exit_group" number="252" groups="process"/>
   <syscall name="lookup_dcookie" number="253"/>
-  <syscall name="epoll_create" number="254"/>
-  <syscall name="epoll_ctl" number="255"/>
-  <syscall name="epoll_wait" number="256"/>
-  <syscall name="remap_file_pages" number="257"/>
+  <syscall name="epoll_create" number="254" groups="descriptor"/>
+  <syscall name="epoll_ctl" number="255" groups="descriptor"/>
+  <syscall name="epoll_wait" number="256" groups="descriptor"/>
+  <syscall name="remap_file_pages" number="257" groups="memory"/>
   <syscall name="set_tid_address" number="258"/>
   <syscall name="timer_create" number="259"/>
   <syscall name="timer_settime" number="260"/>
@@ -280,15 +282,15 @@
   <syscall name="clock_gettime" number="265"/>
   <syscall name="clock_getres" number="266"/>
   <syscall name="clock_nanosleep" number="267"/>
-  <syscall name="statfs64" number="268"/>
-  <syscall name="fstatfs64" number="269"/>
-  <syscall name="tgkill" number="270"/>
-  <syscall name="utimes" number="271"/>
-  <syscall name="fadvise64_64" number="272"/>
+  <syscall name="statfs64" number="268" groups="file"/>
+  <syscall name="fstatfs64" number="269" groups="descriptor"/>
+  <syscall name="tgkill" number="270" groups="signal"/>
+  <syscall name="utimes" number="271" groups="file"/>
+  <syscall name="fadvise64_64" number="272" groups="descriptor"/>
   <syscall name="vserver" number="273"/>
-  <syscall name="mbind" number="274"/>
-  <syscall name="get_mempolicy" number="275"/>
-  <syscall name="set_mempolicy" number="276"/>
+  <syscall name="mbind" number="274" groups="memory"/>
+  <syscall name="get_mempolicy" number="275" groups="memory"/>
+  <syscall name="set_mempolicy" number="276" groups="memory"/>
   <syscall name="mq_open" number="277"/>
   <syscall name="mq_unlink" number="278"/>
   <syscall name="mq_timedsend" number="279"/>
@@ -296,45 +298,45 @@
   <syscall name="mq_notify" number="281"/>
   <syscall name="mq_getsetattr" number="282"/>
   <syscall name="kexec_load" number="283"/>
-  <syscall name="waitid" number="284"/>
+  <syscall name="waitid" number="284" groups="process"/>
   <syscall name="add_key" number="286"/>
   <syscall name="request_key" number="287"/>
   <syscall name="keyctl" number="288"/>
   <syscall name="ioprio_set" number="289"/>
   <syscall name="ioprio_get" number="290"/>
-  <syscall name="inotify_init" number="291"/>
-  <syscall name="inotify_add_watch" number="292"/>
-  <syscall name="inotify_rm_watch" number="293"/>
-  <syscall name="migrate_pages" number="294"/>
-  <syscall name="openat" number="295"/>
-  <syscall name="mkdirat" number="296"/>
-  <syscall name="mknodat" number="297"/>
-  <syscall name="fchownat" number="298"/>
-  <syscall name="futimesat" number="299"/>
-  <syscall name="fstatat64" number="300"/>
-  <syscall name="unlinkat" number="301"/>
-  <syscall name="renameat" number="302"/>
-  <syscall name="linkat" number="303"/>
-  <syscall name="symlinkat" number="304"/>
-  <syscall name="readlinkat" number="305"/>
-  <syscall name="fchmodat" number="306"/>
-  <syscall name="faccessat" number="307"/>
-  <syscall name="pselect6" number="308"/>
-  <syscall name="ppoll" number="309"/>
-  <syscall name="unshare" number="310"/>
+  <syscall name="inotify_init" number="291" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="292" groups="descriptor"/>
+  <syscall name="inotify_rm_watch" number="293" groups="descriptor"/>
+  <syscall name="migrate_pages" number="294" groups="memory"/>
+  <syscall name="openat" number="295" groups="descriptor,file"/>
+  <syscall name="mkdirat" number="296" groups="descriptor,file"/>
+  <syscall name="mknodat" number="297" groups="descriptor,file"/>
+  <syscall name="fchownat" number="298" groups="descriptor,file"/>
+  <syscall name="futimesat" number="299" groups="descriptor,file"/>
+  <syscall name="fstatat64" number="300" groups="descriptor,file"/>
+  <syscall name="unlinkat" number="301" groups="descriptor,file"/>
+  <syscall name="renameat" number="302" groups="descriptor,file"/>
+  <syscall name="linkat" number="303" groups="descriptor,file"/>
+  <syscall name="symlinkat" number="304" groups="descriptor,file"/>
+  <syscall name="readlinkat" number="305" groups="descriptor,file"/>
+  <syscall name="fchmodat" number="306" groups="descriptor,file"/>
+  <syscall name="faccessat" number="307" groups="descriptor,file"/>
+  <syscall name="pselect6" number="308" groups="descriptor"/>
+  <syscall name="ppoll" number="309" groups="descriptor"/>
+  <syscall name="unshare" number="310" groups="process"/>
   <syscall name="set_robust_list" number="311"/>
   <syscall name="get_robust_list" number="312"/>
-  <syscall name="splice" number="313"/>
-  <syscall name="sync_file_range" number="314"/>
-  <syscall name="tee" number="315"/>
-  <syscall name="vmsplice" number="316"/>
-  <syscall name="move_pages" number="317"/>
+  <syscall name="splice" number="313" groups="descriptor"/>
+  <syscall name="sync_file_range" number="314" groups="descriptor"/>
+  <syscall name="tee" number="315" groups="descriptor"/>
+  <syscall name="vmsplice" number="316" groups="descriptor"/>
+  <syscall name="move_pages" number="317" groups="memory"/>
   <syscall name="getcpu" number="318"/>
-  <syscall name="epoll_pwait" number="319"/>
-  <syscall name="utimensat" number="320"/>
-  <syscall name="signalfd" number="321"/>
-  <syscall name="timerfd_create" number="322"/>
-  <syscall name="eventfd" number="323"/>
-  <syscall name="fallocate" number="324"/>
-  <syscall name="timerfd_settime" number="325"/>
+  <syscall name="epoll_pwait" number="319" groups="descriptor"/>
+  <syscall name="utimensat" number="320" groups="descriptor,file"/>
+  <syscall name="signalfd" number="321" groups="descriptor,signal"/>
+  <syscall name="timerfd_create" number="322" groups="descriptor"/>
+  <syscall name="eventfd" number="323" groups="descriptor"/>
+  <syscall name="fallocate" number="324" groups="descriptor"/>
+  <syscall name="timerfd_settime" number="325" groups="descriptor"/>
 </syscalls_info>
-- 
1.9.3

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v3 08/17] Create syscall groups for arm.
  2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
                   ` (8 preceding siblings ...)
  2015-04-26  1:26 ` [PATCH v3 06/17] Create syscall groups for ppc64 Gabriel Krisman Bertazi
@ 2015-04-26  1:26 ` Gabriel Krisman Bertazi
  2015-04-26  1:26 ` [PATCH v3 12/17] Create syscall groups for mips-n64 Gabriel Krisman Bertazi
                   ` (8 subsequent siblings)
  18 siblings, 0 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-04-26  1:26 UTC (permalink / raw)
  To: gdb-patches; +Cc: dje, sergiodj, Gabriel Krisman Bertazi

This commit introduces the following syscall groups for the arm
architecture: memory, ipc, process, descriptor, signal and file.

Please note that the sorting of the syscalls among these several groups
follows the same structure used in strace.

gdb/

	* syscalls/arm-linux.xml: Add 'groups' attribute to several
	syscalls on arm.  Create groups memory, ipc, file, descriptor,
	process and signal.
---
 gdb/syscalls/arm-linux.xml | 470 +++++++++++++++++++++++----------------------
 1 file changed, 236 insertions(+), 234 deletions(-)

diff --git a/gdb/syscalls/arm-linux.xml b/gdb/syscalls/arm-linux.xml
index 5f7a35a..1e94579 100644
--- a/gdb/syscalls/arm-linux.xml
+++ b/gdb/syscalls/arm-linux.xml
@@ -15,81 +15,83 @@
      The file mentioned above belongs to the Linux Kernel.
      Some small hand-edits were made. -->
 
+<!-- The group field was based on strace.  -->
+
 <syscalls_info>
   <syscall name="restart_syscall" number="0"/>
-  <syscall name="exit" number="1"/>
-  <syscall name="fork" number="2"/>
-  <syscall name="read" number="3"/>
-  <syscall name="write" number="4"/>
-  <syscall name="open" number="5"/>
-  <syscall name="close" number="6"/>
-  <syscall name="waitpid" number="7"/> <!-- removed -->
-  <syscall name="creat" number="8"/>
-  <syscall name="link" number="9"/>
-  <syscall name="unlink" number="10"/>
-  <syscall name="execve" number="11"/>
-  <syscall name="chdir" number="12"/>
+  <syscall name="exit" number="1" groups="process"/>
+  <syscall name="fork" number="2" groups="process"/>
+  <syscall name="read" number="3" groups="descriptor"/>
+  <syscall name="write" number="4" groups="descriptor"/>
+  <syscall name="open" number="5" groups="descriptor,file"/>
+  <syscall name="close" number="6" groups="descriptor"/>
+  <syscall name="waitpid" number="7" groups="process"/>
+  <syscall name="creat" number="8" groups="descriptor,file"/>
+  <syscall name="link" number="9" groups="file"/>
+  <syscall name="unlink" number="10" groups="file"/>
+  <syscall name="execve" number="11" groups="file,process"/>
+  <syscall name="chdir" number="12" groups="file"/>
   <syscall name="time" number="13"/>
-  <syscall name="mknod" number="14"/>
-  <syscall name="chmod" number="15"/>
-  <syscall name="lchown" number="16"/>
-  <syscall name="break" number="17"/> <!-- removed -->
-  <syscall name="oldstat" number="18"/> <!-- removed -->
-  <syscall name="lseek" number="19"/>
+  <syscall name="mknod" number="14" groups="file"/>
+  <syscall name="chmod" number="15" groups="file"/>
+  <syscall name="lchown" number="16" groups="file"/>
+  <syscall name="break" number="17" groups="memory"/>
+  <syscall name="oldstat" number="18" groups="file"/>
+  <syscall name="lseek" number="19" groups="descriptor"/>
   <syscall name="getpid" number="20"/>
-  <syscall name="mount" number="21"/>
-  <syscall name="umount" number="22"/>
+  <syscall name="mount" number="21" groups="file"/>
+  <syscall name="umount" number="22" groups="file"/>
   <syscall name="setuid" number="23"/>
   <syscall name="getuid" number="24"/>
   <syscall name="stime" number="25"/>
   <syscall name="ptrace" number="26"/>
   <syscall name="alarm" number="27"/>
-  <syscall name="oldfstat" number="28"/> <!-- removed -->
-  <syscall name="pause" number="29"/>
-  <syscall name="utime" number="30"/>
-  <syscall name="stty" number="31"/> <!-- removed -->
-  <syscall name="gtty" number="32"/> <!-- removed -->
-  <syscall name="access" number="33"/>
+  <syscall name="oldfstat" number="28" groups="descriptor"/>
+  <syscall name="pause" number="29" groups="signal"/>
+  <syscall name="utime" number="30" groups="file"/>
+  <syscall name="stty" number="31"/>
+  <syscall name="gtty" number="32"/>
+  <syscall name="access" number="33" groups="file"/>
   <syscall name="nice" number="34"/>
-  <syscall name="ftime" number="35"/> <!-- removed -->
+  <syscall name="ftime" number="35"/>
   <syscall name="sync" number="36"/>
-  <syscall name="kill" number="37"/>
-  <syscall name="rename" number="38"/>
-  <syscall name="mkdir" number="39"/>
-  <syscall name="rmdir" number="40"/>
-  <syscall name="dup" number="41"/>
-  <syscall name="pipe" number="42"/>
+  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="rename" number="38" groups="file"/>
+  <syscall name="mkdir" number="39" groups="file"/>
+  <syscall name="rmdir" number="40" groups="file"/>
+  <syscall name="dup" number="41" groups="descriptor"/>
+  <syscall name="pipe" number="42" groups="descriptor"/>
   <syscall name="times" number="43"/>
-  <syscall name="prof" number="44"/> <!-- removed -->
-  <syscall name="brk" number="45"/>
+  <syscall name="prof" number="44"/>
+  <syscall name="brk" number="45" groups="memory"/>
   <syscall name="setgid" number="46"/>
   <syscall name="getgid" number="47"/>
-  <syscall name="signal" number="48"/> <!-- removed -->
+  <syscall name="signal" number="48" groups="signal"/>
   <syscall name="geteuid" number="49"/>
   <syscall name="getegid" number="50"/>
-  <syscall name="acct" number="51"/>
+  <syscall name="acct" number="51" groups="file"/>
   <syscall name="umount2" number="52"/>
-  <syscall name="lock" number="53"/> <!-- removed -->
-  <syscall name="ioctl" number="54"/>
-  <syscall name="fcntl" number="55"/>
-  <syscall name="mpx" number="56"/> <!-- removed -->
+  <syscall name="lock" number="53"/>
+  <syscall name="ioctl" number="54" groups="descriptor"/>
+  <syscall name="fcntl" number="55" groups="descriptor"/>
+  <syscall name="mpx" number="56"/>
   <syscall name="setpgid" number="57"/>
-  <syscall name="ulimit" number="58"/> <!-- removed -->
-  <syscall name="oldolduname" number="59"/> <!-- removed -->
+  <syscall name="ulimit" number="58"/>
+  <syscall name="oldolduname" number="59"/>
   <syscall name="umask" number="60"/>
-  <syscall name="chroot" number="61"/>
+  <syscall name="chroot" number="61" groups="file"/>
   <syscall name="ustat" number="62"/>
-  <syscall name="dup2" number="63"/>
+  <syscall name="dup2" number="63" groups="descriptor"/>
   <syscall name="getppid" number="64"/>
   <syscall name="getpgrp" number="65"/>
   <syscall name="setsid" number="66"/>
-  <syscall name="sigaction" number="67"/>
-  <syscall name="sgetmask" number="68"/> <!-- removed -->
-  <syscall name="ssetmask" number="69"/> <!-- removed -->
+  <syscall name="sigaction" number="67" groups="signal"/>
+  <syscall name="sgetmask" number="68" groups="signal"/>
+  <syscall name="ssetmask" number="69" groups="signal"/>
   <syscall name="setreuid" number="70"/>
   <syscall name="setregid" number="71"/>
-  <syscall name="sigsuspend" number="72"/>
-  <syscall name="sigpending" number="73"/>
+  <syscall name="sigsuspend" number="72" groups="signal"/>
+  <syscall name="sigpending" number="73" groups="signal"/>
   <syscall name="sethostname" number="74"/>
   <syscall name="setrlimit" number="75"/>
   <syscall name="getrlimit" number="76"/>
@@ -98,78 +100,78 @@
   <syscall name="settimeofday" number="79"/>
   <syscall name="getgroups" number="80"/>
   <syscall name="setgroups" number="81"/>
-  <syscall name="select" number="82"/>
-  <syscall name="symlink" number="83"/>
-  <syscall name="oldlstat" number="84"/> <!-- removed -->
-  <syscall name="readlink" number="85"/>
-  <syscall name="uselib" number="86"/>
-  <syscall name="swapon" number="87"/>
+  <syscall name="select" number="82" groups="descriptor"/>
+  <syscall name="symlink" number="83" groups="file"/>
+  <syscall name="oldlstat" number="84" groups="file"/>
+  <syscall name="readlink" number="85" groups="file"/>
+  <syscall name="uselib" number="86" groups="file"/>
+  <syscall name="swapon" number="87" groups="file"/>
   <syscall name="reboot" number="88"/>
-  <syscall name="readdir" number="89"/>
+  <syscall name="readdir" number="89" groups="descriptor"/>
   <syscall name="mmap" number="90"/>
-  <syscall name="munmap" number="91"/>
-  <syscall name="truncate" number="92"/>
-  <syscall name="ftruncate" number="93"/>
-  <syscall name="fchmod" number="94"/>
-  <syscall name="fchown" number="95"/>
+  <syscall name="munmap" number="91" groups="memory"/>
+  <syscall name="truncate" number="92" groups="file"/>
+  <syscall name="ftruncate" number="93" groups="descriptor"/>
+  <syscall name="fchmod" number="94" groups="descriptor"/>
+  <syscall name="fchown" number="95" groups="descriptor"/>
   <syscall name="getpriority" number="96"/>
   <syscall name="setpriority" number="97"/>
-  <syscall name="profil" number="98"/> <!-- removed -->
-  <syscall name="statfs" number="99"/>
-  <syscall name="fstatfs" number="100"/>
-  <syscall name="ioperm" number="101"/> <!-- removed -->
-  <syscall name="socketcall" number="102"/>
+  <syscall name="profil" number="98"/>
+  <syscall name="statfs" number="99" groups="file"/>
+  <syscall name="fstatfs" number="100" groups="descriptor"/>
+  <syscall name="ioperm" number="101"/>
+  <syscall name="socketcall" number="102" groups="descriptor"/>
   <syscall name="syslog" number="103"/>
   <syscall name="setitimer" number="104"/>
   <syscall name="getitimer" number="105"/>
-  <syscall name="stat" number="106"/>
-  <syscall name="lstat" number="107"/>
-  <syscall name="fstat" number="108"/>
-  <syscall name="olduname" number="109"/> <!-- removed -->
-  <syscall name="iopl" number="110"/> <!-- removed -->
+  <syscall name="stat" number="106" groups="file"/>
+  <syscall name="lstat" number="107" groups="file"/>
+  <syscall name="fstat" number="108" groups="descriptor"/>
+  <syscall name="olduname" number="109"/>
+  <syscall name="iopl" number="110"/>
   <syscall name="vhangup" number="111"/>
-  <syscall name="idle" number="112"/> <!-- removed -->
+  <syscall name="idle" number="112"/>
   <syscall name="syscall" number="113"/>
-  <syscall name="wait4" number="114"/>
-  <syscall name="swapoff" number="115"/>
+  <syscall name="wait4" number="114" groups="process"/>
+  <syscall name="swapoff" number="115" groups="file"/>
   <syscall name="sysinfo" number="116"/>
-  <syscall name="ipc" number="117"/>
-  <syscall name="fsync" number="118"/>
-  <syscall name="sigreturn" number="119"/>
-  <syscall name="clone" number="120"/>
+  <syscall name="ipc" number="117" groups="ipc"/>
+  <syscall name="fsync" number="118" groups="descriptor"/>
+  <syscall name="sigreturn" number="119" groups="signal"/>
+  <syscall name="clone" number="120" groups="process"/>
   <syscall name="setdomainname" number="121"/>
   <syscall name="uname" number="122"/>
-  <syscall name="modify_ldt" number="123"/> <!-- removed -->
+  <syscall name="modify_ldt" number="123"/>
   <syscall name="adjtimex" number="124"/>
-  <syscall name="mprotect" number="125"/>
-  <syscall name="sigprocmask" number="126"/>
-  <syscall name="create_module" number="127"/> <!-- removed -->
+  <syscall name="mprotect" number="125" groups="memory"/>
+  <syscall name="sigprocmask" number="126" groups="signal"/>
+  <syscall name="create_module" number="127"/>
   <syscall name="init_module" number="128"/>
   <syscall name="delete_module" number="129"/>
-  <syscall name="get_kernel_syms" number="130"/> <!-- removed -->
-  <syscall name="quotactl" number="131"/>
+  <syscall name="get_kernel_syms" number="130"/>
+  <syscall name="quotactl" number="131" groups="file"/>
   <syscall name="getpgid" number="132"/>
-  <syscall name="fchdir" number="133"/>
+  <syscall name="fchdir" number="133" groups="descriptor"/>
   <syscall name="bdflush" number="134"/>
   <syscall name="sysfs" number="135"/>
   <syscall name="personality" number="136"/>
-  <syscall name="afs_syscall" number="137"/> <!-- removed -->
+  <syscall name="afs_syscall" number="137"/>
   <syscall name="setfsuid" number="138"/>
   <syscall name="setfsgid" number="139"/>
-  <syscall name="_llseek" number="140"/>
-  <syscall name="getdents" number="141"/>
+  <syscall name="_llseek" number="140" groups="descriptor"/>
+  <syscall name="getdents" number="141" groups="descriptor"/>
   <syscall name="_newselect" number="142"/>
-  <syscall name="flock" number="143"/>
-  <syscall name="msync" number="144"/>
-  <syscall name="readv" number="145"/>
-  <syscall name="writev" number="146"/>
+  <syscall name="flock" number="143" groups="descriptor"/>
+  <syscall name="msync" number="144" groups="memory"/>
+  <syscall name="readv" number="145" groups="descriptor"/>
+  <syscall name="writev" number="146" groups="descriptor"/>
   <syscall name="getsid" number="147"/>
-  <syscall name="fdatasync" number="148"/>
+  <syscall name="fdatasync" number="148" groups="descriptor"/>
   <syscall name="_sysctl" number="149"/>
-  <syscall name="mlock" number="150"/>
-  <syscall name="munlock" number="151"/>
-  <syscall name="mlockall" number="152"/>
-  <syscall name="munlockall" number="153"/>
+  <syscall name="mlock" number="150" groups="memory"/>
+  <syscall name="munlock" number="151" groups="memory"/>
+  <syscall name="mlockall" number="152" groups="memory"/>
+  <syscall name="munlockall" number="153" groups="memory"/>
   <syscall name="sched_setparam" number="154"/>
   <syscall name="sched_getparam" number="155"/>
   <syscall name="sched_setscheduler" number="156"/>
@@ -179,40 +181,40 @@
   <syscall name="sched_get_priority_min" number="160"/>
   <syscall name="sched_rr_get_interval" number="161"/>
   <syscall name="nanosleep" number="162"/>
-  <syscall name="mremap" number="163"/>
+  <syscall name="mremap" number="163" groups="memory"/>
   <syscall name="setresuid" number="164"/>
   <syscall name="getresuid" number="165"/>
-  <syscall name="vm86" number="166"/> <!-- removed -->
-  <syscall name="query_module" number="167"/> <!-- removed -->
-  <syscall name="poll" number="168"/>
+  <syscall name="vm86" number="166"/>
+  <syscall name="query_module" number="167"/>
+  <syscall name="poll" number="168" groups="descriptor"/>
   <syscall name="nfsservctl" number="169"/>
   <syscall name="setresgid" number="170"/>
   <syscall name="getresgid" number="171"/>
   <syscall name="prctl" number="172"/>
-  <syscall name="rt_sigreturn" number="173"/>
-  <syscall name="rt_sigaction" number="174"/>
-  <syscall name="rt_sigprocmask" number="175"/>
-  <syscall name="rt_sigpending" number="176"/>
-  <syscall name="rt_sigtimedwait" number="177"/>
-  <syscall name="rt_sigqueueinfo" number="178"/>
-  <syscall name="rt_sigsuspend" number="179"/>
+  <syscall name="rt_sigreturn" number="173" groups="signal"/>
+  <syscall name="rt_sigaction" number="174" groups="signal"/>
+  <syscall name="rt_sigprocmask" number="175" groups="signal"/>
+  <syscall name="rt_sigpending" number="176" groups="signal"/>
+  <syscall name="rt_sigtimedwait" number="177" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="178" groups="signal"/>
+  <syscall name="rt_sigsuspend" number="179" groups="signal"/>
   <syscall name="pread64" number="180"/>
   <syscall name="pwrite64" number="181"/>
-  <syscall name="chown" number="182"/>
-  <syscall name="getcwd" number="183"/>
+  <syscall name="chown" number="182" groups="file"/>
+  <syscall name="getcwd" number="183" groups="file"/>
   <syscall name="capget" number="184"/>
   <syscall name="capset" number="185"/>
-  <syscall name="sigaltstack" number="186"/>
-  <syscall name="sendfile" number="187"/>
-  <syscall name="vfork" number="190"/>
+  <syscall name="sigaltstack" number="186" groups="signal"/>
+  <syscall name="sendfile" number="187" groups="descriptor,network"/>
+  <syscall name="vfork" number="190" groups="process"/>
   <syscall name="ugetrlimit" number="191"/>
-  <syscall name="mmap2" number="192"/>
-  <syscall name="truncate64" number="193"/>
-  <syscall name="ftruncate64" number="194"/>
-  <syscall name="stat64" number="195"/>
-  <syscall name="lstat64" number="196"/>
-  <syscall name="fstat64" number="197"/>
-  <syscall name="lchown32" number="198"/>
+  <syscall name="mmap2" number="192" groups="descriptor,memory"/>
+  <syscall name="truncate64" number="193" groups="file"/>
+  <syscall name="ftruncate64" number="194" groups="descriptor"/>
+  <syscall name="stat64" number="195" groups="file"/>
+  <syscall name="lstat64" number="196" groups="file"/>
+  <syscall name="fstat64" number="197" groups="descriptor"/>
+  <syscall name="lchown32" number="198" groups="file"/>
   <syscall name="getuid32" number="199"/>
   <syscall name="getgid32" number="200"/>
   <syscall name="geteuid32" number="201"/>
@@ -221,37 +223,37 @@
   <syscall name="setregid32" number="204"/>
   <syscall name="getgroups32" number="205"/>
   <syscall name="setgroups32" number="206"/>
-  <syscall name="fchown32" number="207"/>
+  <syscall name="fchown32" number="207" groups="descriptor"/>
   <syscall name="setresuid32" number="208"/>
   <syscall name="getresuid32" number="209"/>
   <syscall name="setresgid32" number="210"/>
   <syscall name="getresgid32" number="211"/>
-  <syscall name="chown32" number="212"/>
+  <syscall name="chown32" number="212" groups="file"/>
   <syscall name="setuid32" number="213"/>
   <syscall name="setgid32" number="214"/>
   <syscall name="setfsuid32" number="215"/>
   <syscall name="setfsgid32" number="216"/>
-  <syscall name="getdents64" number="217"/>
-  <syscall name="pivot_root" number="218"/>
-  <syscall name="mincore" number="219"/>
-  <syscall name="madvise" number="220"/>
-  <syscall name="fcntl64" number="221"/>
+  <syscall name="getdents64" number="217" groups="descriptor"/>
+  <syscall name="pivot_root" number="218" groups="file"/>
+  <syscall name="mincore" number="219" groups="memory"/>
+  <syscall name="madvise" number="220" groups="memory"/>
+  <syscall name="fcntl64" number="221" groups="descriptor"/>
   <syscall name="gettid" number="224"/>
-  <syscall name="readahead" number="225"/>
-  <syscall name="setxattr" number="226"/>
-  <syscall name="lsetxattr" number="227"/>
-  <syscall name="fsetxattr" number="228"/>
-  <syscall name="getxattr" number="229"/>
-  <syscall name="lgetxattr" number="230"/>
-  <syscall name="fgetxattr" number="231"/>
-  <syscall name="listxattr" number="232"/>
-  <syscall name="llistxattr" number="233"/>
-  <syscall name="flistxattr" number="234"/>
-  <syscall name="removexattr" number="235"/>
-  <syscall name="lremovexattr" number="236"/>
-  <syscall name="fremovexattr" number="237"/>
-  <syscall name="tkill" number="238"/>
-  <syscall name="sendfile64" number="239"/>
+  <syscall name="readahead" number="225" groups="descriptor"/>
+  <syscall name="setxattr" number="226" groups="file"/>
+  <syscall name="lsetxattr" number="227" groups="file"/>
+  <syscall name="fsetxattr" number="228" groups="descriptor"/>
+  <syscall name="getxattr" number="229" groups="file"/>
+  <syscall name="lgetxattr" number="230" groups="file"/>
+  <syscall name="fgetxattr" number="231" groups="descriptor"/>
+  <syscall name="listxattr" number="232" groups="file"/>
+  <syscall name="llistxattr" number="233" groups="file"/>
+  <syscall name="flistxattr" number="234" groups="descriptor"/>
+  <syscall name="removexattr" number="235" groups="file"/>
+  <syscall name="lremovexattr" number="236" groups="file"/>
+  <syscall name="fremovexattr" number="237" groups="descriptor"/>
+  <syscall name="tkill" number="238" groups="signal"/>
+  <syscall name="sendfile64" number="239" groups="descriptor,network"/>
   <syscall name="futex" number="240"/>
   <syscall name="sched_setaffinity" number="241"/>
   <syscall name="sched_getaffinity" number="242"/>
@@ -260,12 +262,12 @@
   <syscall name="io_getevents" number="245"/>
   <syscall name="io_submit" number="246"/>
   <syscall name="io_cancel" number="247"/>
-  <syscall name="exit_group" number="248"/>
+  <syscall name="exit_group" number="248" groups="process"/>
   <syscall name="lookup_dcookie" number="249"/>
-  <syscall name="epoll_create" number="250"/>
-  <syscall name="epoll_ctl" number="251"/>
-  <syscall name="epoll_wait" number="252"/>
-  <syscall name="remap_file_pages" number="253"/>
+  <syscall name="epoll_create" number="250" groups="descriptor"/>
+  <syscall name="epoll_ctl" number="251" groups="descriptor"/>
+  <syscall name="epoll_wait" number="252" groups="descriptor"/>
+  <syscall name="remap_file_pages" number="253" groups="memory"/>
   <syscall name="set_tid_address" number="256"/>
   <syscall name="timer_create" number="257"/>
   <syscall name="timer_settime" number="258"/>
@@ -276,10 +278,10 @@
   <syscall name="clock_gettime" number="263"/>
   <syscall name="clock_getres" number="264"/>
   <syscall name="clock_nanosleep" number="265"/>
-  <syscall name="statfs64" number="266"/>
-  <syscall name="fstatfs64" number="267"/>
-  <syscall name="tgkill" number="268"/>
-  <syscall name="utimes" number="269"/>
+  <syscall name="statfs64" number="266" groups="file"/>
+  <syscall name="fstatfs64" number="267" groups="descriptor"/>
+  <syscall name="tgkill" number="268" groups="signal"/>
+  <syscall name="utimes" number="269" groups="file"/>
   <syscall name="arm_fadvise64_64" number="270"/>
   <syscall name="pciconfig_iobase" number="271"/>
   <syscall name="pciconfig_read" number="272"/>
@@ -290,106 +292,106 @@
   <syscall name="mq_timedreceive" number="277"/>
   <syscall name="mq_notify" number="278"/>
   <syscall name="mq_getsetattr" number="279"/>
-  <syscall name="waitid" number="280"/>
-  <syscall name="socket" number="281"/>
-  <syscall name="bind" number="282"/>
-  <syscall name="connect" number="283"/>
-  <syscall name="listen" number="284"/>
-  <syscall name="accept" number="285"/>
-  <syscall name="getsockname" number="286"/>
-  <syscall name="getpeername" number="287"/>
-  <syscall name="socketpair" number="288"/>
-  <syscall name="send" number="289"/>
-  <syscall name="sendto" number="290"/>
-  <syscall name="recv" number="291"/>
-  <syscall name="recvfrom" number="292"/>
-  <syscall name="shutdown" number="293"/>
-  <syscall name="setsockopt" number="294"/>
-  <syscall name="getsockopt" number="295"/>
-  <syscall name="sendmsg" number="296"/>
-  <syscall name="recvmsg" number="297"/>
-  <syscall name="semop" number="298"/>
-  <syscall name="semget" number="299"/>
-  <syscall name="semctl" number="300"/>
-  <syscall name="msgsnd" number="301"/>
-  <syscall name="msgrcv" number="302"/>
-  <syscall name="msgget" number="303"/>
-  <syscall name="msgctl" number="304"/>
-  <syscall name="shmat" number="305"/>
-  <syscall name="shmdt" number="306"/>
-  <syscall name="shmget" number="307"/>
-  <syscall name="shmctl" number="308"/>
+  <syscall name="waitid" number="280" groups="process"/>
+  <syscall name="socket" number="281" groups="network"/>
+  <syscall name="bind" number="282" groups="network"/>
+  <syscall name="connect" number="283" groups="network"/>
+  <syscall name="listen" number="284" groups="network"/>
+  <syscall name="accept" number="285" groups="network"/>
+  <syscall name="getsockname" number="286" groups="network"/>
+  <syscall name="getpeername" number="287" groups="network"/>
+  <syscall name="socketpair" number="288" groups="network"/>
+  <syscall name="send" number="289" groups="network"/>
+  <syscall name="sendto" number="290" groups="network"/>
+  <syscall name="recv" number="291" groups="network"/>
+  <syscall name="recvfrom" number="292" groups="network"/>
+  <syscall name="shutdown" number="293" groups="network"/>
+  <syscall name="setsockopt" number="294" groups="network"/>
+  <syscall name="getsockopt" number="295" groups="network"/>
+  <syscall name="sendmsg" number="296" groups="network"/>
+  <syscall name="recvmsg" number="297" groups="network"/>
+  <syscall name="semop" number="298" groups="ipc"/>
+  <syscall name="semget" number="299" groups="ipc"/>
+  <syscall name="semctl" number="300" groups="ipc"/>
+  <syscall name="msgsnd" number="301" groups="ipc"/>
+  <syscall name="msgrcv" number="302" groups="ipc"/>
+  <syscall name="msgget" number="303" groups="ipc"/>
+  <syscall name="msgctl" number="304" groups="ipc"/>
+  <syscall name="shmat" number="305" groups="ipc,memory"/>
+  <syscall name="shmdt" number="306" groups="ipc,memory"/>
+  <syscall name="shmget" number="307" groups="ipc"/>
+  <syscall name="shmctl" number="308" groups="ipc"/>
   <syscall name="add_key" number="309"/>
   <syscall name="request_key" number="310"/>
   <syscall name="keyctl" number="311"/>
-  <syscall name="semtimedop" number="312"/>
+  <syscall name="semtimedop" number="312" groups="ipc"/>
   <syscall name="vserver" number="313"/>
   <syscall name="ioprio_set" number="314"/>
   <syscall name="ioprio_get" number="315"/>
-  <syscall name="inotify_init" number="316"/>
-  <syscall name="inotify_add_watch" number="317"/>
-  <syscall name="inotify_rm_watch" number="318"/>
-  <syscall name="mbind" number="319"/>
-  <syscall name="get_mempolicy" number="320"/>
-  <syscall name="set_mempolicy" number="321"/>
-  <syscall name="openat" number="322"/>
-  <syscall name="mkdirat" number="323"/>
-  <syscall name="mknodat" number="324"/>
-  <syscall name="fchownat" number="325"/>
-  <syscall name="futimesat" number="326"/>
+  <syscall name="inotify_init" number="316" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="317" groups="descriptor"/>
+  <syscall name="inotify_rm_watch" number="318" groups="descriptor"/>
+  <syscall name="mbind" number="319" groups="memory"/>
+  <syscall name="get_mempolicy" number="320" groups="memory"/>
+  <syscall name="set_mempolicy" number="321" groups="memory"/>
+  <syscall name="openat" number="322" groups="descriptor,file"/>
+  <syscall name="mkdirat" number="323" groups="descriptor,file"/>
+  <syscall name="mknodat" number="324" groups="descriptor,file"/>
+  <syscall name="fchownat" number="325" groups="descriptor,file"/>
+  <syscall name="futimesat" number="326" groups="descriptor,file"/>
   <syscall name="fstatat64" number="327"/>
-  <syscall name="unlinkat" number="328"/>
-  <syscall name="renameat" number="329"/>
-  <syscall name="linkat" number="330"/>
-  <syscall name="symlinkat" number="331"/>
-  <syscall name="readlinkat" number="332"/>
-  <syscall name="fchmodat" number="333"/>
-  <syscall name="faccessat" number="334"/>
-  <syscall name="pselect6" number="335"/>
-  <syscall name="ppoll" number="336"/>
-  <syscall name="unshare" number="337"/>
+  <syscall name="unlinkat" number="328" groups="descriptor,file"/>
+  <syscall name="renameat" number="329" groups="descriptor,file"/>
+  <syscall name="linkat" number="330" groups="descriptor,file"/>
+  <syscall name="symlinkat" number="331" groups="descriptor,file"/>
+  <syscall name="readlinkat" number="332" groups="descriptor,file"/>
+  <syscall name="fchmodat" number="333" groups="descriptor,file"/>
+  <syscall name="faccessat" number="334" groups="descriptor,file"/>
+  <syscall name="pselect6" number="335" groups="descriptor"/>
+  <syscall name="ppoll" number="336" groups="descriptor"/>
+  <syscall name="unshare" number="337" groups="process"/>
   <syscall name="set_robust_list" number="338"/>
   <syscall name="get_robust_list" number="339"/>
-  <syscall name="splice" number="340"/>
+  <syscall name="splice" number="340" groups="descriptor"/>
   <syscall name="arm_sync_file_range" number="341"/>
-  <syscall name="tee" number="342"/>
-  <syscall name="vmsplice" number="343"/>
-  <syscall name="move_pages" number="344"/>
+  <syscall name="tee" number="342" groups="descriptor"/>
+  <syscall name="vmsplice" number="343" groups="descriptor"/>
+  <syscall name="move_pages" number="344" groups="memory"/>
   <syscall name="getcpu" number="345"/>
-  <syscall name="epoll_pwait" number="346"/>
+  <syscall name="epoll_pwait" number="346" groups="descriptor"/>
   <syscall name="kexec_load" number="347"/>
-  <syscall name="utimensat" number="348"/>
-  <syscall name="signalfd" number="349"/>
+  <syscall name="utimensat" number="348" groups="descriptor,file"/>
+  <syscall name="signalfd" number="349" groups="descriptor,signal"/>
   <syscall name="timerfd_create" number="350"/>
-  <syscall name="eventfd" number="351"/>
-  <syscall name="fallocate" number="352"/>
-  <syscall name="timerfd_settime" number="353"/>
-  <syscall name="timerfd_gettime" number="354"/>
-  <syscall name="signalfd4" number="355"/>
-  <syscall name="eventfd2" number="356"/>
-  <syscall name="epoll_create1" number="357"/>
-  <syscall name="dup3" number="358"/>
-  <syscall name="pipe2" number="359"/>
-  <syscall name="inotify_init1" number="360"/>
-  <syscall name="preadv" number="361"/>
-  <syscall name="pwritev" number="362"/>
-  <syscall name="rt_tgsigqueueinfo" number="363"/>
-  <syscall name="perf_event_open" number="364"/>
-  <syscall name="recvmmsg" number="365"/>
-  <syscall name="accept4" number="366"/>
-  <syscall name="fanotify_init" number="367"/>
-  <syscall name="fanotify_mark" number="368"/>
+  <syscall name="eventfd" number="351" groups="descriptor"/>
+  <syscall name="fallocate" number="352" groups="descriptor"/>
+  <syscall name="timerfd_settime" number="353" groups="descriptor"/>
+  <syscall name="timerfd_gettime" number="354" groups="descriptor"/>
+  <syscall name="signalfd4" number="355" groups="descriptor,signal"/>
+  <syscall name="eventfd2" number="356" groups="descriptor"/>
+  <syscall name="epoll_create1" number="357" groups="descriptor"/>
+  <syscall name="dup3" number="358" groups="descriptor"/>
+  <syscall name="pipe2" number="359" groups="descriptor"/>
+  <syscall name="inotify_init1" number="360" groups="descriptor"/>
+  <syscall name="preadv" number="361" groups="descriptor"/>
+  <syscall name="pwritev" number="362" groups="descriptor"/>
+  <syscall name="rt_tgsigqueueinfo" number="363" groups="process,signal"/>
+  <syscall name="perf_event_open" number="364" groups="descriptor"/>
+  <syscall name="recvmmsg" number="365" groups="network"/>
+  <syscall name="accept4" number="366" groups="network"/>
+  <syscall name="fanotify_init" number="367" groups="descriptor"/>
+  <syscall name="fanotify_mark" number="368" groups="descriptor,file"/>
   <syscall name="prlimit64" number="369"/>
-  <syscall name="name_to_handle_at" number="370"/>
-  <syscall name="open_by_handle_at" number="371"/>
+  <syscall name="name_to_handle_at" number="370" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" number="371" groups="descriptor"/>
   <syscall name="clock_adjtime" number="372"/>
-  <syscall name="syncfs" number="373"/>
-  <syscall name="sendmmsg" number="374"/>
-  <syscall name="setns" number="375"/>
+  <syscall name="syncfs" number="373" groups="descriptor"/>
+  <syscall name="sendmmsg" number="374" groups="network"/>
+  <syscall name="setns" number="375" groups="descriptor"/>
   <syscall name="process_vm_readv" number="376"/>
   <syscall name="process_vm_writev" number="377"/>
   <syscall name="kcmp" number="378"/>
-  <syscall name="finit_module" number="379"/>
+  <syscall name="finit_module" number="379" groups="descriptor"/>
   <syscall name="ARM_breakpoint" number="983041"/>
   <syscall name="ARM_cacheflush" number="983042"/>
   <syscall name="ARM_usr26" number="983043"/>
-- 
1.9.3

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v3 06/17] Create syscall groups for ppc64.
  2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
                   ` (7 preceding siblings ...)
  2015-04-26  1:26 ` [PATCH v3 10/17] Create syscall groups for i386 Gabriel Krisman Bertazi
@ 2015-04-26  1:26 ` Gabriel Krisman Bertazi
  2015-04-26  1:26 ` [PATCH v3 08/17] Create syscall groups for arm Gabriel Krisman Bertazi
                   ` (9 subsequent siblings)
  18 siblings, 0 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-04-26  1:26 UTC (permalink / raw)
  To: gdb-patches; +Cc: dje, sergiodj, Gabriel Krisman Bertazi

This commit introduces the following syscall groups for the ppc64
architecture: memory, ipc, process, descriptor, signal and file.

Please note that the sorting of the syscalls among these several groups
follows the same structure used in strace.

gdb/

	* syscalls/ppc64-linux.xml: Add 'groups' attribute to several
	syscalls on ppc64.  Create groups memory, ipc, file, descriptor,
	process and signal.
---
 gdb/syscalls/ppc64-linux.xml | 288 ++++++++++++++++++++++---------------------
 1 file changed, 145 insertions(+), 143 deletions(-)

diff --git a/gdb/syscalls/ppc64-linux.xml b/gdb/syscalls/ppc64-linux.xml
index a456317..e596091 100644
--- a/gdb/syscalls/ppc64-linux.xml
+++ b/gdb/syscalls/ppc64-linux.xml
@@ -13,81 +13,83 @@
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+<!-- The group field was based on strace.  -->
+
 <syscalls_info>
   <syscall name="restart_syscall" number="0"/>
-  <syscall name="exit" number="1"/>
-  <syscall name="fork" number="2"/>
-  <syscall name="read" number="3"/>
-  <syscall name="write" number="4"/>
-  <syscall name="open" number="5"/>
-  <syscall name="close" number="6"/>
-  <syscall name="waitpid" number="7"/>
-  <syscall name="creat" number="8"/>
-  <syscall name="link" number="9"/>
-  <syscall name="unlink" number="10"/>
-  <syscall name="execve" number="11"/>
-  <syscall name="chdir" number="12"/>
+  <syscall name="exit" number="1" groups="process"/>
+  <syscall name="fork" number="2" groups="process"/>
+  <syscall name="read" number="3" groups="descriptor"/>
+  <syscall name="write" number="4" groups="descriptor"/>
+  <syscall name="open" number="5" groups="descriptor,file"/>
+  <syscall name="close" number="6" groups="descriptor"/>
+  <syscall name="waitpid" number="7" groups="process"/>
+  <syscall name="creat" number="8" groups="descriptor,file"/>
+  <syscall name="link" number="9" groups="file"/>
+  <syscall name="unlink" number="10" groups="file"/>
+  <syscall name="execve" number="11" groups="file,process"/>
+  <syscall name="chdir" number="12" groups="file"/>
   <syscall name="time" number="13"/>
-  <syscall name="mknod" number="14"/>
-  <syscall name="chmod" number="15"/>
-  <syscall name="lchown" number="16"/>
-  <syscall name="break" number="17"/>
-  <syscall name="oldstat" number="18"/>
-  <syscall name="lseek" number="19"/>
+  <syscall name="mknod" number="14" groups="file"/>
+  <syscall name="chmod" number="15" groups="file"/>
+  <syscall name="lchown" number="16" groups="file"/>
+  <syscall name="break" number="17" groups="memory"/>
+  <syscall name="oldstat" number="18" groups="file"/>
+  <syscall name="lseek" number="19" groups="descriptor"/>
   <syscall name="getpid" number="20"/>
-  <syscall name="mount" number="21"/>
-  <syscall name="umount" number="22"/>
+  <syscall name="mount" number="21" groups="file"/>
+  <syscall name="umount" number="22" groups="file"/>
   <syscall name="setuid" number="23"/>
   <syscall name="getuid" number="24"/>
   <syscall name="stime" number="25"/>
   <syscall name="ptrace" number="26"/>
   <syscall name="alarm" number="27"/>
-  <syscall name="oldfstat" number="28"/>
-  <syscall name="pause" number="29"/>
-  <syscall name="utime" number="30"/>
+  <syscall name="oldfstat" number="28" groups="descriptor"/>
+  <syscall name="pause" number="29" groups="signal"/>
+  <syscall name="utime" number="30" groups="file"/>
   <syscall name="stty" number="31"/>
   <syscall name="gtty" number="32"/>
-  <syscall name="access" number="33"/>
+  <syscall name="access" number="33" groups="file"/>
   <syscall name="nice" number="34"/>
   <syscall name="ftime" number="35"/>
   <syscall name="sync" number="36"/>
-  <syscall name="kill" number="37"/>
-  <syscall name="rename" number="38"/>
-  <syscall name="mkdir" number="39"/>
-  <syscall name="rmdir" number="40"/>
-  <syscall name="dup" number="41"/>
-  <syscall name="pipe" number="42"/>
+  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="rename" number="38" groups="file"/>
+  <syscall name="mkdir" number="39" groups="file"/>
+  <syscall name="rmdir" number="40" groups="file"/>
+  <syscall name="dup" number="41" groups="descriptor"/>
+  <syscall name="pipe" number="42" groups="descriptor"/>
   <syscall name="times" number="43"/>
   <syscall name="prof" number="44"/>
-  <syscall name="brk" number="45"/>
+  <syscall name="brk" number="45" groups="memory"/>
   <syscall name="setgid" number="46"/>
   <syscall name="getgid" number="47"/>
-  <syscall name="signal" number="48"/>
+  <syscall name="signal" number="48" groups="signal"/>
   <syscall name="geteuid" number="49"/>
   <syscall name="getegid" number="50"/>
-  <syscall name="acct" number="51"/>
+  <syscall name="acct" number="51" groups="file"/>
   <syscall name="umount2" number="52"/>
   <syscall name="lock" number="53"/>
-  <syscall name="ioctl" number="54"/>
-  <syscall name="fcntl" number="55"/>
+  <syscall name="ioctl" number="54" groups="descriptor"/>
+  <syscall name="fcntl" number="55" groups="descriptor"/>
   <syscall name="mpx" number="56"/>
   <syscall name="setpgid" number="57"/>
   <syscall name="ulimit" number="58"/>
   <syscall name="oldolduname" number="59"/>
   <syscall name="umask" number="60"/>
-  <syscall name="chroot" number="61"/>
+  <syscall name="chroot" number="61" groups="file"/>
   <syscall name="ustat" number="62"/>
-  <syscall name="dup2" number="63"/>
+  <syscall name="dup2" number="63" groups="descriptor"/>
   <syscall name="getppid" number="64"/>
   <syscall name="getpgrp" number="65"/>
   <syscall name="setsid" number="66"/>
-  <syscall name="sigaction" number="67"/>
-  <syscall name="sgetmask" number="68"/>
-  <syscall name="ssetmask" number="69"/>
+  <syscall name="sigaction" number="67" groups="signal"/>
+  <syscall name="sgetmask" number="68" groups="signal"/>
+  <syscall name="ssetmask" number="69" groups="signal"/>
   <syscall name="setreuid" number="70"/>
   <syscall name="setregid" number="71"/>
-  <syscall name="sigsuspend" number="72"/>
-  <syscall name="sigpending" number="73"/>
+  <syscall name="sigsuspend" number="72" groups="signal"/>
+  <syscall name="sigpending" number="73" groups="signal"/>
   <syscall name="sethostname" number="74"/>
   <syscall name="setrlimit" number="75"/>
   <syscall name="getrlimit" number="76"/>
@@ -96,78 +98,78 @@
   <syscall name="settimeofday" number="79"/>
   <syscall name="getgroups" number="80"/>
   <syscall name="setgroups" number="81"/>
-  <syscall name="select" number="82"/>
-  <syscall name="symlink" number="83"/>
-  <syscall name="oldlstat" number="84"/>
-  <syscall name="readlink" number="85"/>
-  <syscall name="uselib" number="86"/>
-  <syscall name="swapon" number="87"/>
+  <syscall name="select" number="82" groups="descriptor"/>
+  <syscall name="symlink" number="83" groups="file"/>
+  <syscall name="oldlstat" number="84" groups="file"/>
+  <syscall name="readlink" number="85" groups="file"/>
+  <syscall name="uselib" number="86" groups="file"/>
+  <syscall name="swapon" number="87" groups="file"/>
   <syscall name="reboot" number="88"/>
-  <syscall name="readdir" number="89"/>
-  <syscall name="mmap" number="90"/>
-  <syscall name="munmap" number="91"/>
-  <syscall name="truncate" number="92"/>
-  <syscall name="ftruncate" number="93"/>
-  <syscall name="fchmod" number="94"/>
-  <syscall name="fchown" number="95"/>
+  <syscall name="readdir" number="89" groups="descriptor"/>
+  <syscall name="mmap" number="90" groups="descriptor,memory"/>
+  <syscall name="munmap" number="91" groups="memory"/>
+  <syscall name="truncate" number="92" groups="file"/>
+  <syscall name="ftruncate" number="93" groups="descriptor"/>
+  <syscall name="fchmod" number="94" groups="descriptor"/>
+  <syscall name="fchown" number="95" groups="descriptor"/>
   <syscall name="getpriority" number="96"/>
   <syscall name="setpriority" number="97"/>
   <syscall name="profil" number="98"/>
-  <syscall name="statfs" number="99"/>
-  <syscall name="fstatfs" number="100"/>
+  <syscall name="statfs" number="99" groups="file"/>
+  <syscall name="fstatfs" number="100" groups="descriptor"/>
   <syscall name="ioperm" number="101"/>
-  <syscall name="socketcall" number="102"/>
+  <syscall name="socketcall" number="102" groups="descriptor"/>
   <syscall name="syslog" number="103"/>
   <syscall name="setitimer" number="104"/>
   <syscall name="getitimer" number="105"/>
-  <syscall name="stat" number="106"/>
-  <syscall name="lstat" number="107"/>
-  <syscall name="fstat" number="108"/>
+  <syscall name="stat" number="106" groups="file"/>
+  <syscall name="lstat" number="107" groups="file"/>
+  <syscall name="fstat" number="108" groups="descriptor"/>
   <syscall name="olduname" number="109"/>
   <syscall name="iopl" number="110"/>
   <syscall name="vhangup" number="111"/>
   <syscall name="idle" number="112"/>
   <syscall name="vm86" number="113"/>
-  <syscall name="wait4" number="114"/>
-  <syscall name="swapoff" number="115"/>
+  <syscall name="wait4" number="114" groups="process"/>
+  <syscall name="swapoff" number="115" groups="file"/>
   <syscall name="sysinfo" number="116"/>
-  <syscall name="ipc" number="117"/>
-  <syscall name="fsync" number="118"/>
-  <syscall name="sigreturn" number="119"/>
-  <syscall name="clone" number="120"/>
+  <syscall name="ipc" number="117" groups="ipc"/>
+  <syscall name="fsync" number="118" groups="descriptor"/>
+  <syscall name="sigreturn" number="119" groups="signal"/>
+  <syscall name="clone" number="120" groups="process"/>
   <syscall name="setdomainname" number="121"/>
   <syscall name="uname" number="122"/>
   <syscall name="modify_ldt" number="123"/>
   <syscall name="adjtimex" number="124"/>
-  <syscall name="mprotect" number="125"/>
-  <syscall name="sigprocmask" number="126"/>
+  <syscall name="mprotect" number="125" groups="memory"/>
+  <syscall name="sigprocmask" number="126" groups="signal"/>
   <syscall name="create_module" number="127"/>
   <syscall name="init_module" number="128"/>
   <syscall name="delete_module" number="129"/>
   <syscall name="get_kernel_syms" number="130"/>
-  <syscall name="quotactl" number="131"/>
+  <syscall name="quotactl" number="131" groups="file"/>
   <syscall name="getpgid" number="132"/>
-  <syscall name="fchdir" number="133"/>
+  <syscall name="fchdir" number="133" groups="descriptor"/>
   <syscall name="bdflush" number="134"/>
   <syscall name="sysfs" number="135"/>
   <syscall name="personality" number="136"/>
   <syscall name="afs_syscall" number="137"/>
   <syscall name="setfsuid" number="138"/>
   <syscall name="setfsgid" number="139"/>
-  <syscall name="_llseek" number="140"/>
-  <syscall name="getdents" number="141"/>
+  <syscall name="_llseek" number="140" groups="descriptor"/>
+  <syscall name="getdents" number="141" groups="descriptor"/>
   <syscall name="_newselect" number="142"/>
-  <syscall name="flock" number="143"/>
-  <syscall name="msync" number="144"/>
-  <syscall name="readv" number="145"/>
-  <syscall name="writev" number="146"/>
+  <syscall name="flock" number="143" groups="descriptor"/>
+  <syscall name="msync" number="144" groups="memory"/>
+  <syscall name="readv" number="145" groups="descriptor"/>
+  <syscall name="writev" number="146" groups="descriptor"/>
   <syscall name="getsid" number="147"/>
-  <syscall name="fdatasync" number="148"/>
+  <syscall name="fdatasync" number="148" groups="descriptor"/>
   <syscall name="_sysctl" number="149"/>
-  <syscall name="mlock" number="150"/>
-  <syscall name="munlock" number="151"/>
-  <syscall name="mlockall" number="152"/>
-  <syscall name="munlockall" number="153"/>
+  <syscall name="mlock" number="150" groups="memory"/>
+  <syscall name="munlock" number="151" groups="memory"/>
+  <syscall name="mlockall" number="152" groups="memory"/>
+  <syscall name="munlockall" number="153" groups="memory"/>
   <syscall name="sched_setparam" number="154"/>
   <syscall name="sched_getparam" number="155"/>
   <syscall name="sched_setscheduler" number="156"/>
@@ -177,57 +179,57 @@
   <syscall name="sched_get_priority_min" number="160"/>
   <syscall name="sched_rr_get_interval" number="161"/>
   <syscall name="nanosleep" number="162"/>
-  <syscall name="mremap" number="163"/>
+  <syscall name="mremap" number="163" groups="memory"/>
   <syscall name="setresuid" number="164"/>
   <syscall name="getresuid" number="165"/>
   <syscall name="query_module" number="166"/>
-  <syscall name="poll" number="167"/>
+  <syscall name="poll" number="167" groups="descriptor"/>
   <syscall name="nfsservctl" number="168"/>
   <syscall name="setresgid" number="169"/>
   <syscall name="getresgid" number="170"/>
   <syscall name="prctl" number="171"/>
-  <syscall name="rt_sigreturn" number="172"/>
-  <syscall name="rt_sigaction" number="173"/>
-  <syscall name="rt_sigprocmask" number="174"/>
-  <syscall name="rt_sigpending" number="175"/>
-  <syscall name="rt_sigtimedwait" number="176"/>
-  <syscall name="rt_sigqueueinfo" number="177"/>
-  <syscall name="rt_sigsuspend" number="178"/>
-  <syscall name="pread64" number="179"/>
-  <syscall name="pwrite64" number="180"/>
-  <syscall name="chown" number="181"/>
-  <syscall name="getcwd" number="182"/>
+  <syscall name="rt_sigreturn" number="172" groups="signal"/>
+  <syscall name="rt_sigaction" number="173" groups="signal"/>
+  <syscall name="rt_sigprocmask" number="174" groups="signal"/>
+  <syscall name="rt_sigpending" number="175" groups="signal"/>
+  <syscall name="rt_sigtimedwait" number="176" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="177" groups="signal"/>
+  <syscall name="rt_sigsuspend" number="178" groups="signal"/>
+  <syscall name="pread64" number="179" groups="descriptor"/>
+  <syscall name="pwrite64" number="180" groups="descriptor"/>
+  <syscall name="chown" number="181" groups="file"/>
+  <syscall name="getcwd" number="182" groups="file"/>
   <syscall name="capget" number="183"/>
   <syscall name="capset" number="184"/>
-  <syscall name="sigaltstack" number="185"/>
-  <syscall name="sendfile" number="186"/>
+  <syscall name="sigaltstack" number="185" groups="signal"/>
+  <syscall name="sendfile" number="186" groups="descriptor,network"/>
   <syscall name="getpmsg" number="187"/>
   <syscall name="putpmsg" number="188"/>
-  <syscall name="vfork" number="189"/>
+  <syscall name="vfork" number="189" groups="process"/>
   <syscall name="ugetrlimit" number="190"/>
-  <syscall name="readahead" number="191"/>
+  <syscall name="readahead" number="191" groups="descriptor"/>
   <syscall name="pciconfig_read" number="198"/>
   <syscall name="pciconfig_write" number="199"/>
   <syscall name="pciconfig_iobase" number="200"/>
   <syscall name="multiplexer" number="201"/>
-  <syscall name="getdents64" number="202"/>
-  <syscall name="pivot_root" number="203"/>
-  <syscall name="madvise" number="205"/>
-  <syscall name="mincore" number="206"/>
+  <syscall name="getdents64" number="202" groups="descriptor"/>
+  <syscall name="pivot_root" number="203" groups="file"/>
+  <syscall name="madvise" number="205" groups="memory"/>
+  <syscall name="mincore" number="206" groups="memory"/>
   <syscall name="gettid" number="207"/>
-  <syscall name="tkill" number="208"/>
-  <syscall name="setxattr" number="209"/>
-  <syscall name="lsetxattr" number="210"/>
-  <syscall name="fsetxattr" number="211"/>
-  <syscall name="getxattr" number="212"/>
-  <syscall name="lgetxattr" number="213"/>
-  <syscall name="fgetxattr" number="214"/>
-  <syscall name="listxattr" number="215"/>
-  <syscall name="llistxattr" number="216"/>
-  <syscall name="flistxattr" number="217"/>
-  <syscall name="removexattr" number="218"/>
-  <syscall name="lremovexattr" number="219"/>
-  <syscall name="fremovexattr" number="220"/>
+  <syscall name="tkill" number="208" groups="signal"/>
+  <syscall name="setxattr" number="209" groups="file"/>
+  <syscall name="lsetxattr" number="210" groups="file"/>
+  <syscall name="fsetxattr" number="211" groups="descriptor"/>
+  <syscall name="getxattr" number="212" groups="file"/>
+  <syscall name="lgetxattr" number="213" groups="file"/>
+  <syscall name="fgetxattr" number="214" groups="descriptor"/>
+  <syscall name="listxattr" number="215" groups="file"/>
+  <syscall name="llistxattr" number="216" groups="file"/>
+  <syscall name="flistxattr" number="217" groups="descriptor"/>
+  <syscall name="removexattr" number="218" groups="file"/>
+  <syscall name="lremovexattr" number="219" groups="file"/>
+  <syscall name="fremovexattr" number="220" groups="descriptor"/>
   <syscall name="futex" number="221"/>
   <syscall name="sched_setaffinity" number="222"/>
   <syscall name="sched_getaffinity" number="223"/>
@@ -238,13 +240,13 @@
   <syscall name="io_submit" number="230"/>
   <syscall name="io_cancel" number="231"/>
   <syscall name="set_tid_address" number="232"/>
-  <syscall name="fadvise64" number="233"/>
-  <syscall name="exit_group" number="234"/>
+  <syscall name="fadvise64" number="233" groups="descriptor"/>
+  <syscall name="exit_group" number="234" groups="process"/>
   <syscall name="lookup_dcookie" number="235"/>
-  <syscall name="epoll_create" number="236"/>
-  <syscall name="epoll_ctl" number="237"/>
-  <syscall name="epoll_wait" number="238"/>
-  <syscall name="remap_file_pages" number="239"/>
+  <syscall name="epoll_create" number="236" groups="descriptor"/>
+  <syscall name="epoll_ctl" number="237" groups="descriptor"/>
+  <syscall name="epoll_wait" number="238" groups="descriptor"/>
+  <syscall name="remap_file_pages" number="239" groups="memory"/>
   <syscall name="timer_create" number="240"/>
   <syscall name="timer_settime" number="241"/>
   <syscall name="timer_gettime" number="242"/>
@@ -255,15 +257,15 @@
   <syscall name="clock_getres" number="247"/>
   <syscall name="clock_nanosleep" number="248"/>
   <syscall name="swapcontext" number="249"/>
-  <syscall name="tgkill" number="250"/>
-  <syscall name="utimes" number="251"/>
-  <syscall name="statfs64" number="252"/>
-  <syscall name="fstatfs64" number="253"/>
+  <syscall name="tgkill" number="250" groups="signal"/>
+  <syscall name="utimes" number="251" groups="file"/>
+  <syscall name="statfs64" number="252" groups="file"/>
+  <syscall name="fstatfs64" number="253" groups="descriptor"/>
   <syscall name="rtas" number="255"/>
   <syscall name="sys_debug_setcontext" number="256"/>
-  <syscall name="mbind" number="259"/>
-  <syscall name="get_mempolicy" number="260"/>
-  <syscall name="set_mempolicy" number="261"/>
+  <syscall name="mbind" number="259" groups="memory"/>
+  <syscall name="get_mempolicy" number="260" groups="memory"/>
+  <syscall name="set_mempolicy" number="261" groups="memory"/>
   <syscall name="mq_open" number="262"/>
   <syscall name="mq_unlink" number="263"/>
   <syscall name="mq_timedsend" number="264"/>
@@ -274,22 +276,22 @@
   <syscall name="add_key" number="269"/>
   <syscall name="request_key" number="270"/>
   <syscall name="keyctl" number="271"/>
-  <syscall name="waitid" number="272"/>
+  <syscall name="waitid" number="272" groups="process"/>
   <syscall name="ioprio_set" number="273"/>
   <syscall name="ioprio_get" number="274"/>
-  <syscall name="inotify_init" number="275"/>
-  <syscall name="inotify_add_watch" number="276"/>
-  <syscall name="inotify_rm_watch" number="277"/>
+  <syscall name="inotify_init" number="275" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="276" groups="descriptor"/>
+  <syscall name="inotify_rm_watch" number="277" groups="descriptor"/>
   <syscall name="spu_run" number="278"/>
   <syscall name="spu_create" number="279"/>
-  <syscall name="pselect6" number="280"/>
-  <syscall name="ppoll" number="281"/>
-  <syscall name="unshare" number="282"/>
-  <syscall name="unlinkat" number="286"/>
-  <syscall name="renameat" number="287"/>
-  <syscall name="linkat" number="288"/>
-  <syscall name="symlinkat" number="289"/>
-  <syscall name="readlinkat" number="290"/>
-  <syscall name="fchmodat" number="291"/>
-  <syscall name="faccessat" number="292"/>
+  <syscall name="pselect6" number="280" groups="descriptor"/>
+  <syscall name="ppoll" number="281" groups="descriptor"/>
+  <syscall name="unshare" number="282" groups="process"/>
+  <syscall name="unlinkat" number="286" groups="descriptor,file"/>
+  <syscall name="renameat" number="287" groups="descriptor,file"/>
+  <syscall name="linkat" number="288" groups="descriptor,file"/>
+  <syscall name="symlinkat" number="289" groups="descriptor,file"/>
+  <syscall name="readlinkat" number="290" groups="descriptor,file"/>
+  <syscall name="fchmodat" number="291" groups="descriptor,file"/>
+  <syscall name="faccessat" number="292" groups="descriptor,file"/>
 </syscalls_info>
-- 
1.9.3

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v3 09/17] Create syscall groups for bfin.
  2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
                   ` (2 preceding siblings ...)
  2015-04-26  1:25 ` [PATCH v3 01/17] Implemement support for groups of syscalls in the xml-syscall interface Gabriel Krisman Bertazi
@ 2015-04-26  1:26 ` Gabriel Krisman Bertazi
  2015-04-26  1:26 ` [PATCH v3 04/17] Create syscall groups for amd64 Gabriel Krisman Bertazi
                   ` (14 subsequent siblings)
  18 siblings, 0 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-04-26  1:26 UTC (permalink / raw)
  To: gdb-patches; +Cc: dje, sergiodj, Gabriel Krisman Bertazi

This commit introduces the following syscall groups for the bfin
architecture: memory, ipc, process, descriptor, signal and file.

Please note that the sorting of the syscalls among these several groups
follows the same structure used in strace.

gdb/

	* syscalls/bfin-linux.xml: Add 'groups' attribute to several
	syscalls on bfin.  Create groups memory, ipc, file, descriptor,
	process and signal.
---
 gdb/syscalls/bfin-linux.xml | 368 ++++++++++++++++++++++----------------------
 1 file changed, 185 insertions(+), 183 deletions(-)

diff --git a/gdb/syscalls/bfin-linux.xml b/gdb/syscalls/bfin-linux.xml
index e167e78..190170d 100644
--- a/gdb/syscalls/bfin-linux.xml
+++ b/gdb/syscalls/bfin-linux.xml
@@ -14,61 +14,63 @@
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+<!-- The group field was based on strace.  -->
+
 <syscalls_info>
   <syscall name="restart_syscall" number="0"/>
   <syscall name="exit" number="1"/>
-  <syscall name="fork" number="2"/>
-  <syscall name="read" number="3"/>
-  <syscall name="write" number="4"/>
-  <syscall name="open" number="5"/>
-  <syscall name="close" number="6"/>
-  <syscall name="creat" number="8"/>
-  <syscall name="link" number="9"/>
-  <syscall name="unlink" number="10"/>
-  <syscall name="execve" number="11"/>
-  <syscall name="chdir" number="12"/>
+  <syscall name="fork" number="2" groups="process"/>
+  <syscall name="read" number="3" groups="descriptor"/>
+  <syscall name="write" number="4" groups="descriptor"/>
+  <syscall name="open" number="5" groups="descriptor,file"/>
+  <syscall name="close" number="6" groups="descriptor"/>
+  <syscall name="creat" number="8" groups="descriptor,file"/>
+  <syscall name="link" number="9" groups="file"/>
+  <syscall name="unlink" number="10" groups="file"/>
+  <syscall name="execve" number="11" groups="file,process"/>
+  <syscall name="chdir" number="12" groups="file"/>
   <syscall name="time" number="13"/>
-  <syscall name="mknod" number="14"/>
-  <syscall name="chmod" number="15"/>
-  <syscall name="chown" number="16"/>
-  <syscall name="lseek" number="19"/>
+  <syscall name="mknod" number="14" groups="file"/>
+  <syscall name="chmod" number="15" groups="file"/>
+  <syscall name="chown" number="16" groups="file"/>
+  <syscall name="lseek" number="19" groups="descriptor"/>
   <syscall name="getpid" number="20"/>
-  <syscall name="mount" number="21"/>
+  <syscall name="mount" number="21" groups="file"/>
   <syscall name="setuid" number="23"/>
   <syscall name="getuid" number="24"/>
   <syscall name="stime" number="25"/>
   <syscall name="ptrace" number="26"/>
   <syscall name="alarm" number="27"/>
-  <syscall name="pause" number="29"/>
-  <syscall name="access" number="33"/>
+  <syscall name="pause" number="29" groups="signal"/>
+  <syscall name="access" number="33" groups="file"/>
   <syscall name="nice" number="34"/>
   <syscall name="sync" number="36"/>
-  <syscall name="kill" number="37"/>
-  <syscall name="rename" number="38"/>
-  <syscall name="mkdir" number="39"/>
-  <syscall name="rmdir" number="40"/>
-  <syscall name="dup" number="41"/>
-  <syscall name="pipe" number="42"/>
+  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="rename" number="38" groups="file"/>
+  <syscall name="mkdir" number="39" groups="file"/>
+  <syscall name="rmdir" number="40" groups="file"/>
+  <syscall name="dup" number="41" groups="descriptor"/>
+  <syscall name="pipe" number="42" groups="descriptor"/>
   <syscall name="times" number="43"/>
-  <syscall name="brk" number="45"/>
+  <syscall name="brk" number="45" groups="memory"/>
   <syscall name="setgid" number="46"/>
   <syscall name="getgid" number="47"/>
   <syscall name="geteuid" number="49"/>
   <syscall name="getegid" number="50"/>
-  <syscall name="acct" number="51"/>
+  <syscall name="acct" number="51" groups="file"/>
   <syscall name="umount2" number="52"/>
-  <syscall name="ioctl" number="54"/>
-  <syscall name="fcntl" number="55"/>
+  <syscall name="ioctl" number="54" groups="descriptor"/>
+  <syscall name="fcntl" number="55" groups="descriptor"/>
   <syscall name="setpgid" number="57"/>
   <syscall name="umask" number="60"/>
-  <syscall name="chroot" number="61"/>
+  <syscall name="chroot" number="61" groups="file"/>
   <syscall name="ustat" number="62"/>
-  <syscall name="dup2" number="63"/>
+  <syscall name="dup2" number="63" groups="descriptor"/>
   <syscall name="getppid" number="64"/>
   <syscall name="getpgrp" number="65"/>
   <syscall name="setsid" number="66"/>
-  <syscall name="sgetmask" number="68"/>
-  <syscall name="ssetmask" number="69"/>
+  <syscall name="sgetmask" number="68" groups="signal"/>
+  <syscall name="ssetmask" number="69" groups="signal"/>
   <syscall name="setreuid" number="70"/>
   <syscall name="setregid" number="71"/>
   <syscall name="sethostname" number="74"/>
@@ -78,49 +80,49 @@
   <syscall name="settimeofday" number="79"/>
   <syscall name="getgroups" number="80"/>
   <syscall name="setgroups" number="81"/>
-  <syscall name="symlink" number="83"/>
-  <syscall name="readlink" number="85"/>
+  <syscall name="symlink" number="83" groups="file"/>
+  <syscall name="readlink" number="85" groups="file"/>
   <syscall name="reboot" number="88"/>
-  <syscall name="munmap" number="91"/>
-  <syscall name="truncate" number="92"/>
-  <syscall name="ftruncate" number="93"/>
-  <syscall name="fchmod" number="94"/>
-  <syscall name="fchown" number="95"/>
+  <syscall name="munmap" number="91" groups="memory"/>
+  <syscall name="truncate" number="92" groups="file"/>
+  <syscall name="ftruncate" number="93" groups="descriptor"/>
+  <syscall name="fchmod" number="94" groups="descriptor"/>
+  <syscall name="fchown" number="95" groups="descriptor"/>
   <syscall name="getpriority" number="96"/>
   <syscall name="setpriority" number="97"/>
-  <syscall name="statfs" number="99"/>
-  <syscall name="fstatfs" number="100"/>
+  <syscall name="statfs" number="99" groups="file"/>
+  <syscall name="fstatfs" number="100" groups="descriptor"/>
   <syscall name="syslog" number="103"/>
   <syscall name="setitimer" number="104"/>
   <syscall name="getitimer" number="105"/>
-  <syscall name="stat" number="106"/>
-  <syscall name="lstat" number="107"/>
-  <syscall name="fstat" number="108"/>
+  <syscall name="stat" number="106" groups="file"/>
+  <syscall name="lstat" number="107" groups="file"/>
+  <syscall name="fstat" number="108" groups="descriptor"/>
   <syscall name="vhangup" number="111"/>
-  <syscall name="wait4" number="114"/>
+  <syscall name="wait4" number="114" groups="process"/>
   <syscall name="sysinfo" number="116"/>
-  <syscall name="fsync" number="118"/>
-  <syscall name="clone" number="120"/>
+  <syscall name="fsync" number="118" groups="descriptor"/>
+  <syscall name="clone" number="120" groups="process"/>
   <syscall name="setdomainname" number="121"/>
   <syscall name="uname" number="122"/>
   <syscall name="adjtimex" number="124"/>
-  <syscall name="mprotect" number="125"/>
+  <syscall name="mprotect" number="125" groups="memory"/>
   <syscall name="init_module" number="128"/>
   <syscall name="delete_module" number="129"/>
-  <syscall name="quotactl" number="131"/>
+  <syscall name="quotactl" number="131" groups="file"/>
   <syscall name="getpgid" number="132"/>
-  <syscall name="fchdir" number="133"/>
+  <syscall name="fchdir" number="133" groups="descriptor"/>
   <syscall name="bdflush" number="134"/>
   <syscall name="personality" number="136"/>
   <syscall name="setfsuid" number="138"/>
   <syscall name="setfsgid" number="139"/>
-  <syscall name="_llseek" number="140"/>
-  <syscall name="getdents" number="141"/>
-  <syscall name="flock" number="143"/>
-  <syscall name="readv" number="145"/>
-  <syscall name="writev" number="146"/>
+  <syscall name="_llseek" number="140" groups="descriptor"/>
+  <syscall name="getdents" number="141" groups="descriptor"/>
+  <syscall name="flock" number="143" groups="descriptor"/>
+  <syscall name="readv" number="145" groups="descriptor"/>
+  <syscall name="writev" number="146" groups="descriptor"/>
   <syscall name="getsid" number="147"/>
-  <syscall name="fdatasync" number="148"/>
+  <syscall name="fdatasync" number="148" groups="descriptor"/>
   <syscall name="_sysctl" number="149"/>
   <syscall name="sched_setparam" number="154"/>
   <syscall name="sched_getparam" number="155"/>
@@ -131,37 +133,37 @@
   <syscall name="sched_get_priority_min" number="160"/>
   <syscall name="sched_rr_get_interval" number="161"/>
   <syscall name="nanosleep" number="162"/>
-  <syscall name="mremap" number="163"/>
+  <syscall name="mremap" number="163" groups="memory"/>
   <syscall name="setresuid" number="164"/>
   <syscall name="getresuid" number="165"/>
   <syscall name="nfsservctl" number="169"/>
   <syscall name="setresgid" number="170"/>
   <syscall name="getresgid" number="171"/>
   <syscall name="prctl" number="172"/>
-  <syscall name="rt_sigreturn" number="173"/>
-  <syscall name="rt_sigaction" number="174"/>
-  <syscall name="rt_sigprocmask" number="175"/>
-  <syscall name="rt_sigpending" number="176"/>
-  <syscall name="rt_sigtimedwait" number="177"/>
-  <syscall name="rt_sigqueueinfo" number="178"/>
-  <syscall name="rt_sigsuspend" number="179"/>
-  <syscall name="pread" number="180"/>
-  <syscall name="pwrite" number="181"/>
-  <syscall name="lchown" number="182"/>
-  <syscall name="getcwd" number="183"/>
+  <syscall name="rt_sigreturn" number="173" groups="signal"/>
+  <syscall name="rt_sigaction" number="174" groups="signal"/>
+  <syscall name="rt_sigprocmask" number="175" groups="signal"/>
+  <syscall name="rt_sigpending" number="176" groups="signal"/>
+  <syscall name="rt_sigtimedwait" number="177" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="178" groups="signal"/>
+  <syscall name="rt_sigsuspend" number="179" groups="signal"/>
+  <syscall name="pread" number="180" groups="descriptor"/>
+  <syscall name="pwrite" number="181" groups="descriptor"/>
+  <syscall name="lchown" number="182" groups="file"/>
+  <syscall name="getcwd" number="183" groups="file"/>
   <syscall name="capget" number="184"/>
   <syscall name="capset" number="185"/>
-  <syscall name="sigaltstack" number="186"/>
-  <syscall name="sendfile" number="187"/>
-  <syscall name="vfork" number="190"/>
+  <syscall name="sigaltstack" number="186" groups="signal"/>
+  <syscall name="sendfile" number="187" groups="descriptor,network"/>
+  <syscall name="vfork" number="190" groups="process"/>
   <syscall name="getrlimit" number="191"/>
-  <syscall name="mmap2" number="192"/>
-  <syscall name="truncate64" number="193"/>
-  <syscall name="ftruncate64" number="194"/>
-  <syscall name="stat64" number="195"/>
-  <syscall name="lstat64" number="196"/>
-  <syscall name="fstat64" number="197"/>
-  <syscall name="chown32" number="198"/>
+  <syscall name="mmap2" number="192" groups="descriptor,memory"/>
+  <syscall name="truncate64" number="193" groups="file"/>
+  <syscall name="ftruncate64" number="194" groups="descriptor"/>
+  <syscall name="stat64" number="195" groups="file"/>
+  <syscall name="lstat64" number="196" groups="file"/>
+  <syscall name="fstat64" number="197" groups="descriptor"/>
+  <syscall name="chown32" number="198" groups="file"/>
   <syscall name="getuid32" number="199"/>
   <syscall name="getgid32" number="200"/>
   <syscall name="geteuid32" number="201"/>
@@ -170,35 +172,35 @@
   <syscall name="setregid32" number="204"/>
   <syscall name="getgroups32" number="205"/>
   <syscall name="setgroups32" number="206"/>
-  <syscall name="fchown32" number="207"/>
+  <syscall name="fchown32" number="207" groups="descriptor"/>
   <syscall name="setresuid32" number="208"/>
   <syscall name="getresuid32" number="209"/>
   <syscall name="setresgid32" number="210"/>
   <syscall name="getresgid32" number="211"/>
-  <syscall name="lchown32" number="212"/>
+  <syscall name="lchown32" number="212" groups="file"/>
   <syscall name="setuid32" number="213"/>
   <syscall name="setgid32" number="214"/>
   <syscall name="setfsuid32" number="215"/>
   <syscall name="setfsgid32" number="216"/>
-  <syscall name="pivot_root" number="217"/>
-  <syscall name="getdents64" number="220"/>
-  <syscall name="fcntl64" number="221"/>
+  <syscall name="pivot_root" number="217" groups="file"/>
+  <syscall name="getdents64" number="220" groups="descriptor"/>
+  <syscall name="fcntl64" number="221" groups="descriptor"/>
   <syscall name="gettid" number="224"/>
-  <syscall name="readahead" number="225"/>
-  <syscall name="setxattr" number="226"/>
-  <syscall name="lsetxattr" number="227"/>
-  <syscall name="fsetxattr" number="228"/>
-  <syscall name="getxattr" number="229"/>
-  <syscall name="lgetxattr" number="230"/>
-  <syscall name="fgetxattr" number="231"/>
-  <syscall name="listxattr" number="232"/>
-  <syscall name="llistxattr" number="233"/>
-  <syscall name="flistxattr" number="234"/>
-  <syscall name="removexattr" number="235"/>
-  <syscall name="lremovexattr" number="236"/>
-  <syscall name="fremovexattr" number="237"/>
-  <syscall name="tkill" number="238"/>
-  <syscall name="sendfile64" number="239"/>
+  <syscall name="readahead" number="225" groups="descriptor"/>
+  <syscall name="setxattr" number="226" groups="file"/>
+  <syscall name="lsetxattr" number="227" groups="file"/>
+  <syscall name="fsetxattr" number="228" groups="descriptor"/>
+  <syscall name="getxattr" number="229" groups="file"/>
+  <syscall name="lgetxattr" number="230" groups="file"/>
+  <syscall name="fgetxattr" number="231" groups="descriptor"/>
+  <syscall name="listxattr" number="232" groups="file"/>
+  <syscall name="llistxattr" number="233" groups="file"/>
+  <syscall name="flistxattr" number="234" groups="descriptor"/>
+  <syscall name="removexattr" number="235" groups="file"/>
+  <syscall name="lremovexattr" number="236" groups="file"/>
+  <syscall name="fremovexattr" number="237" groups="descriptor"/>
+  <syscall name="tkill" number="238" groups="signal"/>
+  <syscall name="sendfile64" number="239" groups="descriptor,network"/>
   <syscall name="futex" number="240"/>
   <syscall name="sched_setaffinity" number="241"/>
   <syscall name="sched_getaffinity" number="242"/>
@@ -207,12 +209,12 @@
   <syscall name="io_getevents" number="247"/>
   <syscall name="io_submit" number="248"/>
   <syscall name="io_cancel" number="249"/>
-  <syscall name="exit_group" number="252"/>
+  <syscall name="exit_group" number="252" groups="process"/>
   <syscall name="lookup_dcookie" number="253"/>
   <syscall name="bfin_spinlock" number="254"/>
-  <syscall name="epoll_create" number="255"/>
-  <syscall name="epoll_ctl" number="256"/>
-  <syscall name="epoll_wait" number="257"/>
+  <syscall name="epoll_create" number="255" groups="descriptor"/>
+  <syscall name="epoll_ctl" number="256" groups="descriptor"/>
+  <syscall name="epoll_wait" number="257" groups="descriptor"/>
   <syscall name="set_tid_address" number="259"/>
   <syscall name="timer_create" number="260"/>
   <syscall name="timer_settime" number="261"/>
@@ -223,11 +225,11 @@
   <syscall name="clock_gettime" number="266"/>
   <syscall name="clock_getres" number="267"/>
   <syscall name="clock_nanosleep" number="268"/>
-  <syscall name="statfs64" number="269"/>
-  <syscall name="fstatfs64" number="270"/>
-  <syscall name="tgkill" number="271"/>
-  <syscall name="utimes" number="272"/>
-  <syscall name="fadvise64_64" number="273"/>
+  <syscall name="statfs64" number="269" groups="file"/>
+  <syscall name="fstatfs64" number="270" groups="descriptor"/>
+  <syscall name="tgkill" number="271" groups="signal"/>
+  <syscall name="utimes" number="272" groups="file"/>
+  <syscall name="fadvise64_64" number="273" groups="descriptor"/>
   <syscall name="mq_open" number="278"/>
   <syscall name="mq_unlink" number="279"/>
   <syscall name="mq_timedsend" number="280"/>
@@ -235,92 +237,92 @@
   <syscall name="mq_notify" number="282"/>
   <syscall name="mq_getsetattr" number="283"/>
   <syscall name="kexec_load" number="284"/>
-  <syscall name="waitid" number="285"/>
+  <syscall name="waitid" number="285" groups="process"/>
   <syscall name="add_key" number="286"/>
   <syscall name="request_key" number="287"/>
   <syscall name="keyctl" number="288"/>
   <syscall name="ioprio_set" number="289"/>
   <syscall name="ioprio_get" number="290"/>
-  <syscall name="inotify_init" number="291"/>
-  <syscall name="inotify_add_watch" number="292"/>
-  <syscall name="inotify_rm_watch" number="293"/>
-  <syscall name="openat" number="295"/>
-  <syscall name="mkdirat" number="296"/>
-  <syscall name="mknodat" number="297"/>
-  <syscall name="fchownat" number="298"/>
-  <syscall name="futimesat" number="299"/>
-  <syscall name="fstatat64" number="300"/>
-  <syscall name="unlinkat" number="301"/>
-  <syscall name="renameat" number="302"/>
-  <syscall name="linkat" number="303"/>
-  <syscall name="symlinkat" number="304"/>
-  <syscall name="readlinkat" number="305"/>
-  <syscall name="fchmodat" number="306"/>
-  <syscall name="faccessat" number="307"/>
-  <syscall name="pselect6" number="308"/>
-  <syscall name="ppoll" number="309"/>
-  <syscall name="unshare" number="310"/>
+  <syscall name="inotify_init" number="291" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="292" groups="descriptor"/>
+  <syscall name="inotify_rm_watch" number="293" groups="descriptor"/>
+  <syscall name="openat" number="295" groups="descriptor,file"/>
+  <syscall name="mkdirat" number="296" groups="descriptor,file"/>
+  <syscall name="mknodat" number="297" groups="descriptor,file"/>
+  <syscall name="fchownat" number="298" groups="descriptor,file"/>
+  <syscall name="futimesat" number="299" groups="descriptor,file"/>
+  <syscall name="fstatat64" number="300" groups="descriptor,file"/>
+  <syscall name="unlinkat" number="301" groups="descriptor,file"/>
+  <syscall name="renameat" number="302" groups="descriptor,file"/>
+  <syscall name="linkat" number="303" groups="descriptor,file"/>
+  <syscall name="symlinkat" number="304" groups="descriptor,file"/>
+  <syscall name="readlinkat" number="305" groups="descriptor,file"/>
+  <syscall name="fchmodat" number="306" groups="descriptor,file"/>
+  <syscall name="faccessat" number="307" groups="descriptor,file"/>
+  <syscall name="pselect6" number="308" groups="descriptor"/>
+  <syscall name="ppoll" number="309" groups="descriptor"/>
+  <syscall name="unshare" number="310" groups="process"/>
   <syscall name="sram_alloc" number="311"/>
   <syscall name="sram_free" number="312"/>
   <syscall name="dma_memcpy" number="313"/>
-  <syscall name="accept" number="314"/>
-  <syscall name="bind" number="315"/>
-  <syscall name="connect" number="316"/>
-  <syscall name="getpeername" number="317"/>
-  <syscall name="getsockname" number="318"/>
-  <syscall name="getsockopt" number="319"/>
-  <syscall name="listen" number="320"/>
-  <syscall name="recv" number="321"/>
-  <syscall name="recvfrom" number="322"/>
-  <syscall name="recvmsg" number="323"/>
-  <syscall name="send" number="324"/>
-  <syscall name="sendmsg" number="325"/>
-  <syscall name="sendto" number="326"/>
-  <syscall name="setsockopt" number="327"/>
-  <syscall name="shutdown" number="328"/>
-  <syscall name="socket" number="329"/>
-  <syscall name="socketpair" number="330"/>
-  <syscall name="semctl" number="331"/>
-  <syscall name="semget" number="332"/>
-  <syscall name="semop" number="333"/>
-  <syscall name="msgctl" number="334"/>
-  <syscall name="msgget" number="335"/>
-  <syscall name="msgrcv" number="336"/>
-  <syscall name="msgsnd" number="337"/>
-  <syscall name="shmat" number="338"/>
-  <syscall name="shmctl" number="339"/>
-  <syscall name="shmdt" number="340"/>
-  <syscall name="shmget" number="341"/>
-  <syscall name="splice" number="342"/>
-  <syscall name="sync_file_range" number="343"/>
-  <syscall name="tee" number="344"/>
-  <syscall name="vmsplice" number="345"/>
-  <syscall name="epoll_pwait" number="346"/>
-  <syscall name="utimensat" number="347"/>
-  <syscall name="signalfd" number="348"/>
-  <syscall name="timerfd_create" number="349"/>
-  <syscall name="eventfd" number="350"/>
-  <syscall name="pread64" number="351"/>
-  <syscall name="pwrite64" number="352"/>
-  <syscall name="fadvise64" number="353"/>
+  <syscall name="accept" number="314" groups="network"/>
+  <syscall name="bind" number="315" groups="network"/>
+  <syscall name="connect" number="316" groups="network"/>
+  <syscall name="getpeername" number="317" groups="network"/>
+  <syscall name="getsockname" number="318" groups="network"/>
+  <syscall name="getsockopt" number="319" groups="network"/>
+  <syscall name="listen" number="320" groups="network"/>
+  <syscall name="recv" number="321" groups="network"/>
+  <syscall name="recvfrom" number="322" groups="network"/>
+  <syscall name="recvmsg" number="323" groups="network"/>
+  <syscall name="send" number="324" groups="network"/>
+  <syscall name="sendmsg" number="325" groups="network"/>
+  <syscall name="sendto" number="326" groups="network"/>
+  <syscall name="setsockopt" number="327" groups="network"/>
+  <syscall name="shutdown" number="328" groups="network"/>
+  <syscall name="socket" number="329" groups="network"/>
+  <syscall name="socketpair" number="330" groups="network"/>
+  <syscall name="semctl" number="331" groups="ipc"/>
+  <syscall name="semget" number="332" groups="ipc"/>
+  <syscall name="semop" number="333" groups="ipc"/>
+  <syscall name="msgctl" number="334" groups="ipc"/>
+  <syscall name="msgget" number="335" groups="ipc"/>
+  <syscall name="msgrcv" number="336" groups="ipc"/>
+  <syscall name="msgsnd" number="337" groups="ipc"/>
+  <syscall name="shmat" number="338" groups="ipc,memory"/>
+  <syscall name="shmctl" number="339" groups="ipc"/>
+  <syscall name="shmdt" number="340" groups="ipc,memory"/>
+  <syscall name="shmget" number="341" groups="ipc"/>
+  <syscall name="splice" number="342" groups="descriptor"/>
+  <syscall name="sync_file_range" number="343" groups="descriptor"/>
+  <syscall name="tee" number="344" groups="descriptor"/>
+  <syscall name="vmsplice" number="345" groups="descriptor"/>
+  <syscall name="epoll_pwait" number="346" groups="descriptor"/>
+  <syscall name="utimensat" number="347" groups="descriptor,file"/>
+  <syscall name="signalfd" number="348" groups="descriptor,signal"/>
+  <syscall name="timerfd_create" number="349" groups="descriptor"/>
+  <syscall name="eventfd" number="350" groups="descriptor"/>
+  <syscall name="pread64" number="351" groups="descriptor"/>
+  <syscall name="pwrite64" number="352" groups="descriptor"/>
+  <syscall name="fadvise64" number="353" groups="descriptor"/>
   <syscall name="set_robust_list" number="354"/>
   <syscall name="get_robust_list" number="355"/>
-  <syscall name="fallocate" number="356"/>
-  <syscall name="semtimedop" number="357"/>
-  <syscall name="timerfd_settime" number="358"/>
-  <syscall name="timerfd_gettime" number="359"/>
-  <syscall name="signalfd4" number="360"/>
-  <syscall name="eventfd2" number="361"/>
-  <syscall name="epoll_create1" number="362"/>
-  <syscall name="dup3" number="363"/>
-  <syscall name="pipe2" number="364"/>
-  <syscall name="inotify_init1" number="365"/>
-  <syscall name="preadv" number="366"/>
-  <syscall name="pwritev" number="367"/>
-  <syscall name="rt_tgsigqueueinfo" number="368"/>
-  <syscall name="perf_event_open" number="369"/>
-  <syscall name="recvmmsg" number="370"/>
-  <syscall name="fanotify_init" number="371"/>
-  <syscall name="fanotify_mark" number="372"/>
+  <syscall name="fallocate" number="356" groups="descriptor"/>
+  <syscall name="semtimedop" number="357" groups="ipc"/>
+  <syscall name="timerfd_settime" number="358" groups="descriptor"/>
+  <syscall name="timerfd_gettime" number="359" groups="descriptor"/>
+  <syscall name="signalfd4" number="360" groups="descriptor,signal"/>
+  <syscall name="eventfd2" number="361" groups="descriptor"/>
+  <syscall name="epoll_create1" number="362" groups="descriptor"/>
+  <syscall name="dup3" number="363" groups="descriptor"/>
+  <syscall name="pipe2" number="364" groups="descriptor"/>
+  <syscall name="inotify_init1" number="365" groups="descriptor"/>
+  <syscall name="preadv" number="366" groups="descriptor"/>
+  <syscall name="pwritev" number="367" groups="descriptor"/>
+  <syscall name="rt_tgsigqueueinfo" number="368" groups="process,signal"/>
+  <syscall name="perf_event_open" number="369" groups="descriptor"/>
+  <syscall name="recvmmsg" number="370" groups="network"/>
+  <syscall name="fanotify_init" number="371" groups="descriptor"/>
+  <syscall name="fanotify_mark" number="372" groups="descriptor,file"/>
   <syscall name="prlimit64" number="373"/>
 </syscalls_info>
-- 
1.9.3

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v3 16/17] Create syscall groups for sparc.
  2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
                   ` (11 preceding siblings ...)
  2015-04-26  1:47 ` [PATCH v3 13/17] Create syscall groups for mips-o32 Gabriel Krisman Bertazi
@ 2015-04-26  1:47 ` Gabriel Krisman Bertazi
  2015-04-26  1:47 ` [PATCH v3 17/17] Create syscall groups for sparc64 Gabriel Krisman Bertazi
                   ` (5 subsequent siblings)
  18 siblings, 0 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-04-26  1:47 UTC (permalink / raw)
  To: gdb-patches; +Cc: dje, sergiodj, Gabriel Krisman Bertazi

This commit introduces the following syscall groups for the sparc
architecture: memory, ipc, process, descriptor, signal and file.

Please note that the sorting of the syscalls among these several groups
follows the same structure used in strace.

gdb/

	* syscalls/sparc-linux.xml: Add 'groups' attribute to several
	syscalls on sparc.  Create groups memory, ipc, file, descriptor,
	process and signal.
---
 gdb/syscalls/sparc-linux.xml | 344 ++++++++++++++++++++++---------------------
 1 file changed, 173 insertions(+), 171 deletions(-)

diff --git a/gdb/syscalls/sparc-linux.xml b/gdb/syscalls/sparc-linux.xml
index a711e72..a465ec8 100644
--- a/gdb/syscalls/sparc-linux.xml
+++ b/gdb/syscalls/sparc-linux.xml
@@ -13,27 +13,29 @@
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+<!-- The group field was based on strace.  -->
+
 <syscalls_info>
   <syscall name="restart_syscall" number="0"/>
-  <syscall name="exit" number="1"/>
-  <syscall name="fork" number="2"/>
-  <syscall name="read" number="3"/>
-  <syscall name="write" number="4"/>
-  <syscall name="open" number="5"/>
-  <syscall name="close" number="6"/>
-  <syscall name="wait4" number="7"/>
-  <syscall name="creat" number="8"/>
-  <syscall name="link" number="9"/>
-  <syscall name="unlink" number="10"/>
-  <syscall name="execv" number="11"/>
-  <syscall name="chdir" number="12"/>
+  <syscall name="exit" number="1" groups="process"/>
+  <syscall name="fork" number="2" groups="process"/>
+  <syscall name="read" number="3" groups="descriptor"/>
+  <syscall name="write" number="4" groups="descriptor"/>
+  <syscall name="open" number="5" groups="descriptor,file"/>
+  <syscall name="close" number="6" groups="descriptor"/>
+  <syscall name="wait4" number="7" groups="process"/>
+  <syscall name="creat" number="8" groups="descriptor,file"/>
+  <syscall name="link" number="9" groups="file"/>
+  <syscall name="unlink" number="10" groups="file"/>
+  <syscall name="execv" number="11" groups="file,process"/>
+  <syscall name="chdir" number="12" groups="file"/>
   <syscall name="chown"	number="13"/>
-  <syscall name="mknod" number="14"/>
-  <syscall name="chmod" number="15"/>
-  <syscall name="lchown" number="16"/>
-  <syscall name="brk" number="17"/>
+  <syscall name="mknod" number="14" groups="file"/>
+  <syscall name="chmod" number="15" groups="file"/>
+  <syscall name="lchown" number="16" groups="file"/>
+  <syscall name="brk" number="17" groups="memory"/>
   <syscall name="perfctr" number="18"/>
-  <syscall name="lseek" number="19"/>
+  <syscall name="lseek" number="19" groups="descriptor"/>
   <syscall name="getpid" number="20"/>
   <syscall name="capget" number="21"/>
   <syscall name="capset" number="22"/>
@@ -43,76 +45,76 @@
   <syscall name="ptrace" number="26"/>
   <syscall name="alarm" number="27"/>
   <syscall name="sigaltstack" number="28"/>
-  <syscall name="pause" number="29"/>
-  <syscall name="utime" number="30"/>
-  <syscall name="lchown32" number="31"/>
-  <syscall name="fchown32" number="32"/>
-  <syscall name="access" number="33"/>
+  <syscall name="pause" number="29" groups="signal"/>
+  <syscall name="utime" number="30" groups="file"/>
+  <syscall name="lchown32" number="31" groups="file"/>
+  <syscall name="fchown32" number="32" groups="descriptor"/>
+  <syscall name="access" number="33" groups="file"/>
   <syscall name="nice" number="34"/>
-  <syscall name="chown32" number="35"/>
+  <syscall name="chown32" number="35" groups="file"/>
   <syscall name="sync" number="36"/>
-  <syscall name="kill" number="37"/>
-  <syscall name="stat" number="38"/>
-  <syscall name="sendfile" number="39"/>
-  <syscall name="lstat" number="40"/>
-  <syscall name="dup" number="41"/>
-  <syscall name="pipe" number="42"/>
+  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="stat" number="38" groups="file"/>
+  <syscall name="sendfile" number="39" groups="descriptor,network"/>
+  <syscall name="lstat" number="40" groups="file"/>
+  <syscall name="dup" number="41" groups="descriptor"/>
+  <syscall name="pipe" number="42" groups="descriptor"/>
   <syscall name="times" number="43"/>
   <syscall name="getuid32" number="44"/>
   <syscall name="umount2" number="45"/>
   <syscall name="setgid" number="46"/>
   <syscall name="getgid" number="47"/>
-  <syscall name="signal" number="48"/>
+  <syscall name="signal" number="48" groups="signal"/>
   <syscall name="geteuid" number="49"/>
   <syscall name="getegid" number="50"/>
-  <syscall name="acct" number="51"/>
+  <syscall name="acct" number="51" groups="file"/>
   <syscall name="getgid32" number="53"/>
-  <syscall name="ioctl" number="54"/>
+  <syscall name="ioctl" number="54" groups="descriptor"/>
   <syscall name="reboot" number="55"/>
-  <syscall name="mmap2" number="56"/>
-  <syscall name="symlink" number="57"/>
-  <syscall name="readlink" number="58"/>
-  <syscall name="execve" number="59"/>
+  <syscall name="mmap2" number="56" groups="descriptor,memory"/>
+  <syscall name="symlink" number="57" groups="file"/>
+  <syscall name="readlink" number="58" groups="file"/>
+  <syscall name="execve" number="59" groups="file,process"/>
   <syscall name="umask" number="60"/>
-  <syscall name="chroot" number="61"/>
-  <syscall name="fstat" number="62"/>
-  <syscall name="fstat64" number="63"/>
+  <syscall name="chroot" number="61" groups="file"/>
+  <syscall name="fstat" number="62" groups="descriptor"/>
+  <syscall name="fstat64" number="63" groups="descriptor"/>
   <syscall name="getpagesize" number="64"/>
-  <syscall name="msync" number="65"/>
-  <syscall name="vfork" number="66"/>
+  <syscall name="msync" number="65" groups="memory"/>
+  <syscall name="vfork" number="66" groups="process"/>
   <syscall name="pread64" number="67"/>
   <syscall name="pwrite64" number="68"/>
   <syscall name="geteuid32" number="69"/>
   <syscall name="getegid32" number="70"/>
-  <syscall name="mmap" number="71"/>
+  <syscall name="mmap" number="71" groups="descriptor,memory"/>
   <syscall name="setreuid32" number="72"/>
-  <syscall name="munmap" number="73"/>
-  <syscall name="mprotect" number="74"/>
-  <syscall name="madvise" number="75"/>
+  <syscall name="munmap" number="73" groups="memory"/>
+  <syscall name="mprotect" number="74" groups="memory"/>
+  <syscall name="madvise" number="75" groups="memory"/>
   <syscall name="vhangup" number="76"/>
-  <syscall name="truncate64" number="77"/>
-  <syscall name="mincore" number="78"/>
+  <syscall name="truncate64" number="77" groups="file"/>
+  <syscall name="mincore" number="78" groups="memory"/>
   <syscall name="getgroups" number="79"/>
   <syscall name="setgroups" number="80"/>
   <syscall name="getpgrp" number="81"/>
   <syscall name="setgroups32" number="82"/>
   <syscall name="setitimer" number="83"/>
   <syscall name="ftruncate64" number="84"/>
-  <syscall name="swapon" number="85"/>
+  <syscall name="swapon" number="85" groups="file"/>
   <syscall name="getitimer" number="86"/>
   <syscall name="setuid32" number="87"/>
   <syscall name="sethostname" number="88"/>
   <syscall name="setgid32" number="89"/>
-  <syscall name="dup2" number="90"/>
+  <syscall name="dup2" number="90" groups="descriptor"/>
   <syscall name="setfsuid32" number="91"/>
-  <syscall name="fcntl" number="92"/>
-  <syscall name="select" number="93"/>
+  <syscall name="fcntl" number="92" groups="descriptor"/>
+  <syscall name="select" number="93" groups="descriptor"/>
   <syscall name="setfsgid32" number="94"/>
-  <syscall name="fsync" number="95"/>
+  <syscall name="fsync" number="95" groups="descriptor"/>
   <syscall name="setpriority" number="96"/>
-  <syscall name="socket" number="97"/>
-  <syscall name="connect" number="98"/>
-  <syscall name="accept" number="99"/>
+  <syscall name="socket" number="97" groups="network"/>
+  <syscall name="connect" number="98" groups="network"/>
+  <syscall name="accept" number="99" groups="network"/>
   <syscall name="getpriority" number="100"/>
   <syscall name="rt_sigreturn" number="101"/>
   <syscall name="rt_sigaction" number="102"/>
@@ -126,110 +128,110 @@
   <syscall name="setresgid32" number="110"/>
   <syscall name="getresgid32" number="111"/>
   <syscall name="setregid32" number="112"/>
-  <syscall name="recvmsg" number="113"/>
-  <syscall name="sendmsg" number="114"/>
+  <syscall name="recvmsg" number="113" groups="network"/>
+  <syscall name="sendmsg" number="114" groups="network"/>
   <syscall name="getgroups32" number="115"/>
   <syscall name="gettimeofday" number="116"/>
   <syscall name="getrusage" number="117"/>
-  <syscall name="getsockopt" number="118"/>
-  <syscall name="getcwd" number="119"/>
-  <syscall name="readv" number="120"/>
-  <syscall name="writev" number="121"/>
+  <syscall name="getsockopt" number="118" groups="network"/>
+  <syscall name="getcwd" number="119" groups="file"/>
+  <syscall name="readv" number="120" groups="descriptor"/>
+  <syscall name="writev" number="121" groups="descriptor"/>
   <syscall name="settimeofday" number="122"/>
-  <syscall name="fchown" number="123"/>
-  <syscall name="fchmod" number="124"/>
-  <syscall name="recvfrom" number="125"/>
+  <syscall name="fchown" number="123" groups="descriptor"/>
+  <syscall name="fchmod" number="124" groups="descriptor"/>
+  <syscall name="recvfrom" number="125" groups="network"/>
   <syscall name="setreuid" number="126"/>
   <syscall name="setregid" number="127"/>
-  <syscall name="rename" number="128"/>
-  <syscall name="truncate" number="129"/>
-  <syscall name="ftruncate" number="130"/>
-  <syscall name="flock" number="131"/>
-  <syscall name="lstat64" number="132"/>
-  <syscall name="sendto" number="133"/>
-  <syscall name="shutdown" number="134"/>
-  <syscall name="socketpair" number="135"/>
-  <syscall name="mkdir" number="136"/>
-  <syscall name="rmdir" number="137"/>
-  <syscall name="utimes" number="138"/>
-  <syscall name="stat64" number="139"/>
-  <syscall name="sendfile64" number="140"/>
-  <syscall name="getpeername" number="141"/>
+  <syscall name="rename" number="128" groups="file"/>
+  <syscall name="truncate" number="129" groups="file"/>
+  <syscall name="ftruncate" number="130" groups="descriptor"/>
+  <syscall name="flock" number="131" groups="descriptor"/>
+  <syscall name="lstat64" number="132" groups="file"/>
+  <syscall name="sendto" number="133" groups="network"/>
+  <syscall name="shutdown" number="134" groups="network"/>
+  <syscall name="socketpair" number="135" groups="network"/>
+  <syscall name="mkdir" number="136" groups="file"/>
+  <syscall name="rmdir" number="137" groups="file"/>
+  <syscall name="utimes" number="138" groups="file"/>
+  <syscall name="stat64" number="139" groups="file"/>
+  <syscall name="sendfile64" number="140" groups="descriptor,network"/>
+  <syscall name="getpeername" number="141" groups="network"/>
   <syscall name="futex" number="142"/>
   <syscall name="gettid" number="143"/>
   <syscall name="getrlimit" number="144"/>
   <syscall name="setrlimit" number="145"/>
-  <syscall name="pivot_root" number="146"/>
+  <syscall name="pivot_root" number="146" groups="file"/>
   <syscall name="prctl" number="147"/>
   <syscall name="pciconfig_read" number="148"/>
   <syscall name="pciconfig_write" number="149"/>
-  <syscall name="getsockname" number="150"/>
+  <syscall name="getsockname" number="150" groups="network"/>
   <syscall name="inotify_init" number="151"/>
   <syscall name="inotify_add_watch" number="152"/>
-  <syscall name="poll" number="153"/>
-  <syscall name="getdents64" number="154"/>
-  <syscall name="fcntl64" number="155"/>
+  <syscall name="poll" number="153" groups="descriptor"/>
+  <syscall name="getdents64" number="154" groups="descriptor"/>
+  <syscall name="fcntl64" number="155" groups="descriptor"/>
   <syscall name="inotify_rm_watch" number="156"/>
-  <syscall name="statfs" number="157"/>
-  <syscall name="fstatfs" number="158"/>
-  <syscall name="umount" number="159"/>
+  <syscall name="statfs" number="157" groups="file"/>
+  <syscall name="fstatfs" number="158" groups="descriptor"/>
+  <syscall name="umount" number="159" groups="file"/>
   <syscall name="sched_set_affinity" number="160"/>
   <syscall name="sched_get_affinity" number="161"/>
   <syscall name="getdomainname" number="162"/>
   <syscall name="setdomainname" number="163"/>
-  <syscall name="quotactl" number="165"/>
+  <syscall name="quotactl" number="165" groups="file"/>
   <syscall name="set_tid_address" number="166"/>
-  <syscall name="mount" number="167"/>
+  <syscall name="mount" number="167" groups="file"/>
   <syscall name="ustat" number="168"/>
-  <syscall name="setxattr" number="169"/>
-  <syscall name="lsetxattr" number="170"/>
-  <syscall name="fsetxattr" number="171"/>
-  <syscall name="getxattr" number="172"/>
-  <syscall name="lgetxattr" number="173"/>
-  <syscall name="getdents" number="174"/>
+  <syscall name="setxattr" number="169" groups="file"/>
+  <syscall name="lsetxattr" number="170" groups="file"/>
+  <syscall name="fsetxattr" number="171" groups="descriptor"/>
+  <syscall name="getxattr" number="172" groups="file"/>
+  <syscall name="lgetxattr" number="173" groups="file"/>
+  <syscall name="getdents" number="174" groups="descriptor"/>
   <syscall name="setsid" number="175"/>
-  <syscall name="fchdir" number="176"/>
-  <syscall name="fgetxattr" number="177"/>
-  <syscall name="listxattr" number="178"/>
-  <syscall name="llistxattr" number="179"/>
-  <syscall name="flistxattr" number="180"/>
+  <syscall name="fchdir" number="176" groups="descriptor"/>
+  <syscall name="fgetxattr" number="177" groups="descriptor"/>
+  <syscall name="listxattr" number="178" groups="file"/>
+  <syscall name="llistxattr" number="179" groups="file"/>
+  <syscall name="flistxattr" number="180" groups="descriptor"/>
   <syscall name="removexattr" number="181"/>
   <syscall name="lremovexattr" number="182"/>
-  <syscall name="sigpending" number="183"/>
+  <syscall name="sigpending" number="183" groups="signal"/>
   <syscall name="query_module" number="184"/>
   <syscall name="setpgid" number="185"/>
   <syscall name="fremovexattr" number="186"/>
-  <syscall name="tkill" number="187"/>
-  <syscall name="exit_group" number="188"/>
+  <syscall name="tkill" number="187" groups="signal"/>
+  <syscall name="exit_group" number="188" groups="process"/>
   <syscall name="uname" number="189"/>
   <syscall name="init_module" number="190"/>
   <syscall name="personality" number="191"/>
   <syscall name="remap_file_pages" number="192"/>
   <syscall name="epoll_create" number="193"/>
-  <syscall name="epoll_ctl" number="194"/>
-  <syscall name="epoll_wait" number="195"/>
+  <syscall name="epoll_ctl" number="194" groups="descriptor"/>
+  <syscall name="epoll_wait" number="195" groups="descriptor"/>
   <syscall name="ioprio_set" number="196"/>
   <syscall name="getppid" number="197"/>
-  <syscall name="sigaction" number="198"/>
-  <syscall name="sgetmask" number="199"/>
-  <syscall name="ssetmask" number="200"/>
-  <syscall name="sigsuspend" number="201"/>
+  <syscall name="sigaction" number="198" groups="signal"/>
+  <syscall name="sgetmask" number="199" groups="signal"/>
+  <syscall name="ssetmask" number="200" groups="signal"/>
+  <syscall name="sigsuspend" number="201" groups="signal"/>
   <syscall name="oldlstat" number="202"/>
-  <syscall name="uselib" number="203"/>
-  <syscall name="readdir" number="204"/>
-  <syscall name="readahead" number="205"/>
-  <syscall name="socketcall" number="206"/>
+  <syscall name="uselib" number="203" groups="file"/>
+  <syscall name="readdir" number="204" groups="descriptor"/>
+  <syscall name="readahead" number="205" groups="descriptor"/>
+  <syscall name="socketcall" number="206" groups="descriptor"/>
   <syscall name="syslog" number="207"/>
   <syscall name="lookup_dcookie" number="208"/>
-  <syscall name="fadvise64" number="209"/>
+  <syscall name="fadvise64" number="209" groups="descriptor"/>
   <syscall name="fadvise64_64" number="210"/>
-  <syscall name="tgkill" number="211"/>
-  <syscall name="waitpid" number="212"/>
-  <syscall name="swapoff" number="213"/>
+  <syscall name="tgkill" number="211" groups="signal"/>
+  <syscall name="waitpid" number="212" groups="process"/>
+  <syscall name="swapoff" number="213" groups="file"/>
   <syscall name="sysinfo" number="214"/>
-  <syscall name="ipc" number="215"/>
-  <syscall name="sigreturn" number="216"/>
-  <syscall name="clone" number="217"/>
+  <syscall name="ipc" number="215" groups="ipc"/>
+  <syscall name="sigreturn" number="216" groups="signal"/>
+  <syscall name="clone" number="217" groups="process"/>
   <syscall name="ioprio_get" number="218"/>
   <syscall name="adjtimex" number="219"/>
   <syscall name="sigprocmask" number="220"/>
@@ -246,13 +248,13 @@
   <syscall name="time" number="231"/>
   <syscall name="splice" number="232"/>
   <syscall name="stime" number="233"/>
-  <syscall name="statfs64" number="234"/>
-  <syscall name="fstatfs64" number="235"/>
-  <syscall name="_llseek" number="236"/>
-  <syscall name="mlock" number="237"/>
-  <syscall name="munlock" number="238"/>
-  <syscall name="mlockall" number="239"/>
-  <syscall name="munlockall" number="240"/>
+  <syscall name="statfs64" number="234" groups="file"/>
+  <syscall name="fstatfs64" number="235" groups="descriptor"/>
+  <syscall name="_llseek" number="236" groups="descriptor"/>
+  <syscall name="mlock" number="237" groups="memory"/>
+  <syscall name="munlock" number="238" groups="memory"/>
+  <syscall name="mlockall" number="239" groups="memory"/>
+  <syscall name="munlockall" number="240" groups="memory"/>
   <syscall name="sched_setparam" number="241"/>
   <syscall name="sched_getparam" number="242"/>
   <syscall name="sched_setscheduler" number="243"/>
@@ -262,10 +264,10 @@
   <syscall name="sched_get_priority_min" number="247"/>
   <syscall name="sched_rr_get_interval" number="248"/>
   <syscall name="nanosleep" number="249"/>
-  <syscall name="mremap" number="250"/>
+  <syscall name="mremap" number="250" groups="memory"/>
   <syscall name="_sysctl" number="251"/>
   <syscall name="getsid" number="252"/>
-  <syscall name="fdatasync" number="253"/>
+  <syscall name="fdatasync" number="253" groups="descriptor"/>
   <syscall name="nfsservctl" number="254"/>
   <syscall name="sync_file_range" number="255"/>
   <syscall name="clock_settime" number="256"/>
@@ -291,54 +293,54 @@
   <syscall name="mq_timedreceive" number="276"/>
   <syscall name="mq_notify" number="277"/>
   <syscall name="mq_getsetattr" number="278"/>
-  <syscall name="waitid" number="279"/>
-  <syscall name="tee" number="280"/>
+  <syscall name="waitid" number="279" groups="process"/>
+  <syscall name="tee" number="280" groups="descriptor"/>
   <syscall name="add_key" number="281"/>
   <syscall name="request_key" number="282"/>
   <syscall name="keyctl" number="283"/>
-  <syscall name="openat" number="284"/>
-  <syscall name="mkdirat" number="285"/>
-  <syscall name="mknodat" number="286"/>
-  <syscall name="fchownat" number="287"/>
-  <syscall name="futimesat" number="288"/>
-  <syscall name="fstatat64" number="289"/>
-  <syscall name="unlinkat" number="290"/>
-  <syscall name="renameat" number="291"/>
-  <syscall name="linkat" number="292"/>
-  <syscall name="symlinkat" number="293"/>
-  <syscall name="readlinkat" number="294"/>
-  <syscall name="fchmodat" number="295"/>
-  <syscall name="faccessat" number="296"/>
-  <syscall name="pselect6" number="297"/>
-  <syscall name="ppoll" number="298"/>
-  <syscall name="unshare" number="299"/>
+  <syscall name="openat" number="284" groups="descriptor,file"/>
+  <syscall name="mkdirat" number="285" groups="descriptor,file"/>
+  <syscall name="mknodat" number="286" groups="descriptor,file"/>
+  <syscall name="fchownat" number="287" groups="descriptor,file"/>
+  <syscall name="futimesat" number="288" groups="descriptor,file"/>
+  <syscall name="fstatat64" number="289" groups="descriptor,file"/>
+  <syscall name="unlinkat" number="290" groups="descriptor,file"/>
+  <syscall name="renameat" number="291" groups="descriptor,file"/>
+  <syscall name="linkat" number="292" groups="descriptor,file"/>
+  <syscall name="symlinkat" number="293" groups="descriptor,file"/>
+  <syscall name="readlinkat" number="294" groups="descriptor,file"/>
+  <syscall name="fchmodat" number="295" groups="descriptor,file"/>
+  <syscall name="faccessat" number="296" groups="descriptor,file"/>
+  <syscall name="pselect6" number="297" groups="descriptor"/>
+  <syscall name="ppoll" number="298" groups="descriptor"/>
+  <syscall name="unshare" number="299" groups="process"/>
   <syscall name="set_robust_list" number="300"/>
   <syscall name="get_robust_list" number="301"/>
-  <syscall name="migrate_pages" number="302"/>
-  <syscall name="mbind" number="303"/>
-  <syscall name="get_mempolicy" number="304"/>
-  <syscall name="set_mempolicy" number="305"/>
+  <syscall name="migrate_pages" number="302" groups="memory"/>
+  <syscall name="mbind" number="303" groups="memory"/>
+  <syscall name="get_mempolicy" number="304" groups="memory"/>
+  <syscall name="set_mempolicy" number="305" groups="memory"/>
   <syscall name="kexec_load" number="306"/>
-  <syscall name="move_pages" number="307"/>
+  <syscall name="move_pages" number="307" groups="memory"/>
   <syscall name="getcpu" number="308"/>
-  <syscall name="epoll_pwait" number="309"/>
-  <syscall name="utimensat" number="310"/>
-  <syscall name="signalfd" number="311"/>
-  <syscall name="timerfd_create" number="312"/>
-  <syscall name="eventfd" number="313"/>
-  <syscall name="fallocate" number="314"/>
-  <syscall name="timerfd_settime" number="315"/>
-  <syscall name="timerfd_gettime" number="316"/>
-  <syscall name="signalfd4" number="317"/>
-  <syscall name="eventfd2" number="318"/>
-  <syscall name="epoll_create1" number="319"/>
-  <syscall name="dup3" number="320"/>
-  <syscall name="pipe2" number="321"/>
-  <syscall name="inotify_init1" number="322"/>
-  <syscall name="accept4" number="323"/>
-  <syscall name="preadv" number="324"/>
-  <syscall name="pwritev" number="325"/>
-  <syscall name="rt_tgsigqueueinfo" number="326"/>
-  <syscall name="perf_event_open" number="327"/>
-  <syscall name="recvmmsg" number="328"/>
+  <syscall name="epoll_pwait" number="309" groups="descriptor"/>
+  <syscall name="utimensat" number="310" groups="descriptor,file"/>
+  <syscall name="signalfd" number="311" groups="descriptor,signal"/>
+  <syscall name="timerfd_create" number="312" groups="descriptor"/>
+  <syscall name="eventfd" number="313" groups="descriptor"/>
+  <syscall name="fallocate" number="314" groups="descriptor"/>
+  <syscall name="timerfd_settime" number="315" groups="descriptor"/>
+  <syscall name="timerfd_gettime" number="316" groups="descriptor"/>
+  <syscall name="signalfd4" number="317" groups="descriptor,signal"/>
+  <syscall name="eventfd2" number="318" groups="descriptor"/>
+  <syscall name="epoll_create1" number="319" groups="descriptor"/>
+  <syscall name="dup3" number="320" groups="descriptor"/>
+  <syscall name="pipe2" number="321" groups="descriptor"/>
+  <syscall name="inotify_init1" number="322" groups="descriptor"/>
+  <syscall name="accept4" number="323" groups="network"/>
+  <syscall name="preadv" number="324" groups="descriptor"/>
+  <syscall name="pwritev" number="325" groups="descriptor"/>
+  <syscall name="rt_tgsigqueueinfo" number="326" groups="process,signal"/>
+  <syscall name="perf_event_open" number="327" groups="descriptor"/>
+  <syscall name="recvmmsg" number="328" groups="network"/>
 </syscalls_info>
-- 
1.9.3

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v3 14/17] Create syscall groups for s390.
  2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
                   ` (14 preceding siblings ...)
  2015-04-26  1:47 ` [PATCH v3 15/17] Create syscall groups for s390x Gabriel Krisman Bertazi
@ 2015-04-26  1:47 ` Gabriel Krisman Bertazi
  2015-04-26  1:47 ` [PATCH v3 11/17] Create syscall groups for mips-n32 Gabriel Krisman Bertazi
                   ` (2 subsequent siblings)
  18 siblings, 0 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-04-26  1:47 UTC (permalink / raw)
  To: gdb-patches; +Cc: dje, sergiodj, Gabriel Krisman Bertazi

This commit introduces the following syscall groups for the s390
architecture: memory, ipc, process, descriptor, signal and file.

Please note that the sorting of the syscalls among these several groups
follows the same structure used in strace.

gdb/

	* syscalls/s390-linux.xml: Add 'groups' attribute to several
	syscalls on s390.  Create groups memory, ipc, file, descriptor,
	process and signal.
---
 gdb/syscalls/s390-linux.xml | 342 ++++++++++++++++++++++----------------------
 1 file changed, 172 insertions(+), 170 deletions(-)

diff --git a/gdb/syscalls/s390-linux.xml b/gdb/syscalls/s390-linux.xml
index 9cecfee..ca7a363 100644
--- a/gdb/syscalls/s390-linux.xml
+++ b/gdb/syscalls/s390-linux.xml
@@ -13,67 +13,69 @@
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+<!-- The group field was based on strace.  -->
+
 <syscalls_info>
   <syscall name="exit" number="1"/>
-  <syscall name="fork" number="2"/>
-  <syscall name="read" number="3"/>
-  <syscall name="write" number="4"/>
-  <syscall name="open" number="5"/>
-  <syscall name="close" number="6"/>
+  <syscall name="fork" number="2" groups="process"/>
+  <syscall name="read" number="3" groups="descriptor"/>
+  <syscall name="write" number="4" groups="descriptor"/>
+  <syscall name="open" number="5" groups="descriptor,file"/>
+  <syscall name="close" number="6" groups="descriptor"/>
   <syscall name="restart_syscall" number="7"/>
-  <syscall name="creat" number="8"/>
-  <syscall name="link" number="9"/>
-  <syscall name="unlink" number="10"/>
-  <syscall name="execve" number="11"/>
-  <syscall name="chdir" number="12"/>
+  <syscall name="creat" number="8" groups="descriptor,file"/>
+  <syscall name="link" number="9" groups="file"/>
+  <syscall name="unlink" number="10" groups="file"/>
+  <syscall name="execve" number="11" groups="file,process"/>
+  <syscall name="chdir" number="12" groups="file"/>
   <syscall name="time" number="13"/>
-  <syscall name="mknod" number="14"/>
-  <syscall name="chmod" number="15"/>
-  <syscall name="lchown" number="16"/>
-  <syscall name="lseek" number="19"/>
+  <syscall name="mknod" number="14" groups="file"/>
+  <syscall name="chmod" number="15" groups="file"/>
+  <syscall name="lchown" number="16" groups="file"/>
+  <syscall name="lseek" number="19" groups="descriptor"/>
   <syscall name="getpid" number="20"/>
-  <syscall name="mount" number="21"/>
-  <syscall name="umount" number="22"/>
+  <syscall name="mount" number="21" groups="file"/>
+  <syscall name="umount" number="22" groups="file"/>
   <syscall name="setuid" number="23"/>
   <syscall name="getuid" number="24"/>
   <syscall name="stime" number="25"/>
   <syscall name="ptrace" number="26"/>
   <syscall name="alarm" number="27"/>
-  <syscall name="pause" number="29"/>
-  <syscall name="utime" number="30"/>
-  <syscall name="access" number="33"/>
+  <syscall name="pause" number="29" groups="signal"/>
+  <syscall name="utime" number="30" groups="file"/>
+  <syscall name="access" number="33" groups="file"/>
   <syscall name="nice" number="34"/>
   <syscall name="sync" number="36"/>
-  <syscall name="kill" number="37"/>
-  <syscall name="rename" number="38"/>
-  <syscall name="mkdir" number="39"/>
-  <syscall name="rmdir" number="40"/>
-  <syscall name="dup" number="41"/>
-  <syscall name="pipe" number="42"/>
+  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="rename" number="38" groups="file"/>
+  <syscall name="mkdir" number="39" groups="file"/>
+  <syscall name="rmdir" number="40" groups="file"/>
+  <syscall name="dup" number="41" groups="descriptor"/>
+  <syscall name="pipe" number="42" groups="descriptor"/>
   <syscall name="times" number="43"/>
-  <syscall name="brk" number="45"/>
+  <syscall name="brk" number="45" groups="memory"/>
   <syscall name="setgid" number="46"/>
   <syscall name="getgid" number="47"/>
-  <syscall name="signal" number="48"/>
+  <syscall name="signal" number="48" groups="signal"/>
   <syscall name="geteuid" number="49"/>
   <syscall name="getegid" number="50"/>
-  <syscall name="acct" number="51"/>
+  <syscall name="acct" number="51" groups="file"/>
   <syscall name="umount2" number="52"/>
-  <syscall name="ioctl" number="54"/>
-  <syscall name="fcntl" number="55"/>
+  <syscall name="ioctl" number="54" groups="descriptor"/>
+  <syscall name="fcntl" number="55" groups="descriptor"/>
   <syscall name="setpgid" number="57"/>
   <syscall name="umask" number="60"/>
-  <syscall name="chroot" number="61"/>
+  <syscall name="chroot" number="61" groups="file"/>
   <syscall name="ustat" number="62"/>
-  <syscall name="dup2" number="63"/>
+  <syscall name="dup2" number="63" groups="descriptor"/>
   <syscall name="getppid" number="64"/>
   <syscall name="getpgrp" number="65"/>
   <syscall name="setsid" number="66"/>
-  <syscall name="sigaction" number="67"/>
+  <syscall name="sigaction" number="67" groups="signal"/>
   <syscall name="setreuid" number="70"/>
   <syscall name="setregid" number="71"/>
-  <syscall name="sigsuspend" number="72"/>
-  <syscall name="sigpending" number="73"/>
+  <syscall name="sigsuspend" number="72" groups="signal"/>
+  <syscall name="sigpending" number="73" groups="signal"/>
   <syscall name="sethostname" number="74"/>
   <syscall name="setrlimit" number="75"/>
   <syscall name="getrlimit" number="76"/>
@@ -82,72 +84,72 @@
   <syscall name="settimeofday" number="79"/>
   <syscall name="getgroups" number="80"/>
   <syscall name="setgroups" number="81"/>
-  <syscall name="symlink" number="83"/>
-  <syscall name="readlink" number="85"/>
-  <syscall name="uselib" number="86"/>
-  <syscall name="swapon" number="87"/>
+  <syscall name="symlink" number="83" groups="file"/>
+  <syscall name="readlink" number="85" groups="file"/>
+  <syscall name="uselib" number="86" groups="file"/>
+  <syscall name="swapon" number="87" groups="file"/>
   <syscall name="reboot" number="88"/>
-  <syscall name="readdir" number="89"/>
-  <syscall name="mmap" number="90"/>
-  <syscall name="munmap" number="91"/>
-  <syscall name="truncate" number="92"/>
-  <syscall name="ftruncate" number="93"/>
-  <syscall name="fchmod" number="94"/>
-  <syscall name="fchown" number="95"/>
+  <syscall name="readdir" number="89" groups="descriptor"/>
+  <syscall name="mmap" number="90" groups="descriptor,memory"/>
+  <syscall name="munmap" number="91" groups="memory"/>
+  <syscall name="truncate" number="92" groups="file"/>
+  <syscall name="ftruncate" number="93" groups="descriptor"/>
+  <syscall name="fchmod" number="94" groups="descriptor"/>
+  <syscall name="fchown" number="95" groups="descriptor"/>
   <syscall name="getpriority" number="96"/>
   <syscall name="setpriority" number="97"/>
-  <syscall name="statfs" number="99"/>
-  <syscall name="fstatfs" number="100"/>
+  <syscall name="statfs" number="99" groups="file"/>
+  <syscall name="fstatfs" number="100" groups="descriptor"/>
   <syscall name="ioperm" number="101"/>
-  <syscall name="socketcall" number="102"/>
+  <syscall name="socketcall" number="102" groups="descriptor"/>
   <syscall name="syslog" number="103"/>
   <syscall name="setitimer" number="104"/>
   <syscall name="getitimer" number="105"/>
-  <syscall name="stat" number="106"/>
-  <syscall name="lstat" number="107"/>
-  <syscall name="fstat" number="108"/>
+  <syscall name="stat" number="106" groups="file"/>
+  <syscall name="lstat" number="107" groups="file"/>
+  <syscall name="fstat" number="108" groups="descriptor"/>
   <syscall name="lookup_dcookie" number="110"/>
   <syscall name="vhangup" number="111"/>
   <syscall name="idle" number="112"/>
-  <syscall name="wait4" number="114"/>
-  <syscall name="swapoff" number="115"/>
+  <syscall name="wait4" number="114" groups="process"/>
+  <syscall name="swapoff" number="115" groups="file"/>
   <syscall name="sysinfo" number="116"/>
-  <syscall name="ipc" number="117"/>
-  <syscall name="fsync" number="118"/>
-  <syscall name="sigreturn" number="119"/>
-  <syscall name="clone" number="120"/>
+  <syscall name="ipc" number="117" groups="ipc"/>
+  <syscall name="fsync" number="118" groups="descriptor"/>
+  <syscall name="sigreturn" number="119" groups="signal"/>
+  <syscall name="clone" number="120" groups="process"/>
   <syscall name="setdomainname" number="121"/>
   <syscall name="uname" number="122"/>
   <syscall name="adjtimex" number="124"/>
-  <syscall name="mprotect" number="125"/>
-  <syscall name="sigprocmask" number="126"/>
+  <syscall name="mprotect" number="125" groups="memory"/>
+  <syscall name="sigprocmask" number="126" groups="signal"/>
   <syscall name="create_module" number="127"/>
   <syscall name="init_module" number="128"/>
   <syscall name="delete_module" number="129"/>
   <syscall name="get_kernel_syms" number="130"/>
-  <syscall name="quotactl" number="131"/>
+  <syscall name="quotactl" number="131" groups="file"/>
   <syscall name="getpgid" number="132"/>
-  <syscall name="fchdir" number="133"/>
+  <syscall name="fchdir" number="133" groups="descriptor"/>
   <syscall name="bdflush" number="134"/>
   <syscall name="sysfs" number="135"/>
   <syscall name="personality" number="136"/>
   <syscall name="afs_syscall" number="137"/>
   <syscall name="setfsuid" number="138"/>
   <syscall name="setfsgid" number="139"/>
-  <syscall name="_llseek" number="140"/>
-  <syscall name="getdents" number="141"/>
+  <syscall name="_llseek" number="140" groups="descriptor"/>
+  <syscall name="getdents" number="141" groups="descriptor"/>
   <syscall name="_newselect" number="142"/>
-  <syscall name="flock" number="143"/>
-  <syscall name="msync" number="144"/>
-  <syscall name="readv" number="145"/>
-  <syscall name="writev" number="146"/>
+  <syscall name="flock" number="143" groups="descriptor"/>
+  <syscall name="msync" number="144" groups="memory"/>
+  <syscall name="readv" number="145" groups="descriptor"/>
+  <syscall name="writev" number="146" groups="descriptor"/>
   <syscall name="getsid" number="147"/>
-  <syscall name="fdatasync" number="148"/>
+  <syscall name="fdatasync" number="148" groups="descriptor"/>
   <syscall name="_sysctl" number="149"/>
-  <syscall name="mlock" number="150"/>
-  <syscall name="munlock" number="151"/>
-  <syscall name="mlockall" number="152"/>
-  <syscall name="munlockall" number="153"/>
+  <syscall name="mlock" number="150" groups="memory"/>
+  <syscall name="munlock" number="151" groups="memory"/>
+  <syscall name="mlockall" number="152" groups="memory"/>
+  <syscall name="munlockall" number="153" groups="memory"/>
   <syscall name="sched_setparam" number="154"/>
   <syscall name="sched_getparam" number="155"/>
   <syscall name="sched_setscheduler" number="156"/>
@@ -157,40 +159,40 @@
   <syscall name="sched_get_priority_min" number="160"/>
   <syscall name="sched_rr_get_interval" number="161"/>
   <syscall name="nanosleep" number="162"/>
-  <syscall name="mremap" number="163"/>
+  <syscall name="mremap" number="163" groups="memory"/>
   <syscall name="setresuid" number="164"/>
   <syscall name="getresuid" number="165"/>
   <syscall name="query_module" number="167"/>
-  <syscall name="poll" number="168"/>
+  <syscall name="poll" number="168" groups="descriptor"/>
   <syscall name="nfsservctl" number="169"/>
   <syscall name="setresgid" number="170"/>
   <syscall name="getresgid" number="171"/>
   <syscall name="prctl" number="172"/>
-  <syscall name="rt_sigreturn" number="173"/>
-  <syscall name="rt_sigaction" number="174"/>
-  <syscall name="rt_sigprocmask" number="175"/>
-  <syscall name="rt_sigpending" number="176"/>
-  <syscall name="rt_sigtimedwait" number="177"/>
-  <syscall name="rt_sigqueueinfo" number="178"/>
-  <syscall name="rt_sigsuspend" number="179"/>
+  <syscall name="rt_sigreturn" number="173" groups="signal"/>
+  <syscall name="rt_sigaction" number="174" groups="signal"/>
+  <syscall name="rt_sigprocmask" number="175" groups="signal"/>
+  <syscall name="rt_sigpending" number="176" groups="signal"/>
+  <syscall name="rt_sigtimedwait" number="177" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="178" groups="signal"/>
+  <syscall name="rt_sigsuspend" number="179" groups="signal"/>
   <syscall name="pread64" number="180"/>
   <syscall name="pwrite64" number="181"/>
-  <syscall name="chown" number="182"/>
-  <syscall name="getcwd" number="183"/>
+  <syscall name="chown" number="182" groups="file"/>
+  <syscall name="getcwd" number="183" groups="file"/>
   <syscall name="capget" number="184"/>
   <syscall name="capset" number="185"/>
-  <syscall name="sigaltstack" number="186"/>
-  <syscall name="sendfile" number="187"/>
+  <syscall name="sigaltstack" number="186" groups="signal"/>
+  <syscall name="sendfile" number="187" groups="descriptor,network"/>
   <syscall name="getpmsg" number="188"/>
   <syscall name="putpmsg" number="189"/>
-  <syscall name="vfork" number="190"/>
+  <syscall name="vfork" number="190" groups="process"/>
   <syscall name="ugetrlimit" number="191"/>
-  <syscall name="mmap2" number="192"/>
-  <syscall name="truncate64" number="193"/>
-  <syscall name="ftruncate64" number="194"/>
-  <syscall name="stat64" number="195"/>
-  <syscall name="lstat64" number="196"/>
-  <syscall name="fstat64" number="197"/>
+  <syscall name="mmap2" number="192" groups="descriptor,memory"/>
+  <syscall name="truncate64" number="193" groups="file"/>
+  <syscall name="ftruncate64" number="194" groups="descriptor"/>
+  <syscall name="stat64" number="195" groups="file"/>
+  <syscall name="lstat64" number="196" groups="file"/>
+  <syscall name="fstat64" number="197" groups="descriptor"/>
   <syscall name="lchown32" number="198"/>
   <syscall name="getuid32" number="199"/>
   <syscall name="getgid32" number="200"/>
@@ -210,42 +212,42 @@
   <syscall name="setgid32" number="214"/>
   <syscall name="setfsuid32" number="215"/>
   <syscall name="setfsgid32" number="216"/>
-  <syscall name="pivot_root" number="217"/>
-  <syscall name="mincore" number="218"/>
-  <syscall name="madvise" number="219"/>
-  <syscall name="getdents64" number="220"/>
-  <syscall name="fcntl64" number="221"/>
-  <syscall name="readahead" number="222"/>
-  <syscall name="sendfile64" number="223"/>
-  <syscall name="setxattr" number="224"/>
-  <syscall name="lsetxattr" number="225"/>
-  <syscall name="fsetxattr" number="226"/>
-  <syscall name="getxattr" number="227"/>
-  <syscall name="lgetxattr" number="228"/>
-  <syscall name="fgetxattr" number="229"/>
-  <syscall name="listxattr" number="230"/>
-  <syscall name="llistxattr" number="231"/>
-  <syscall name="flistxattr" number="232"/>
-  <syscall name="removexattr" number="233"/>
-  <syscall name="lremovexattr" number="234"/>
-  <syscall name="fremovexattr" number="235"/>
+  <syscall name="pivot_root" number="217" groups="file"/>
+  <syscall name="mincore" number="218" groups="memory"/>
+  <syscall name="madvise" number="219" groups="memory"/>
+  <syscall name="getdents64" number="220" groups="descriptor"/>
+  <syscall name="fcntl64" number="221" groups="descriptor"/>
+  <syscall name="readahead" number="222" groups="descriptor"/>
+  <syscall name="sendfile64" number="223" groups="descriptor,network"/>
+  <syscall name="setxattr" number="224" groups="file"/>
+  <syscall name="lsetxattr" number="225" groups="file"/>
+  <syscall name="fsetxattr" number="226" groups="descriptor"/>
+  <syscall name="getxattr" number="227" groups="file"/>
+  <syscall name="lgetxattr" number="228" groups="file"/>
+  <syscall name="fgetxattr" number="229" groups="descriptor"/>
+  <syscall name="listxattr" number="230" groups="file"/>
+  <syscall name="llistxattr" number="231" groups="file"/>
+  <syscall name="flistxattr" number="232" groups="descriptor"/>
+  <syscall name="removexattr" number="233" groups="file"/>
+  <syscall name="lremovexattr" number="234" groups="file"/>
+  <syscall name="fremovexattr" number="235" groups="descriptor"/>
   <syscall name="gettid" number="236"/>
-  <syscall name="tkill" number="237"/>
+  <syscall name="tkill" number="237" groups="signal"/>
   <syscall name="futex" number="238"/>
   <syscall name="sched_setaffinity" number="239"/>
   <syscall name="sched_getaffinity" number="240"/>
-  <syscall name="tgkill" number="241"/>
+  <syscall name="tgkill" number="241" groups="signal"/>
   <syscall name="io_setup" number="243"/>
   <syscall name="io_destroy" number="244"/>
   <syscall name="io_getevents" number="245"/>
   <syscall name="io_submit" number="246"/>
   <syscall name="io_cancel" number="247"/>
-  <syscall name="exit_group" number="248"/>
-  <syscall name="epoll_create" number="249"/>
-  <syscall name="epoll_ctl" number="250"/>
-  <syscall name="epoll_wait" number="251"/>
+  <syscall name="exit_group" number="248" groups="process"/>
+  <syscall name="epoll_create" number="249" groups="descriptor"/>
+  <syscall name="epoll_ctl" number="250" groups="descriptor"/>
+  <syscall name="epoll_wait" number="251" groups="descriptor"/>
   <syscall name="set_tid_address" number="252"/>
-  <syscall name="fadvise64" number="253"/>
+  <syscall name="fadvise64" number="253" groups="descriptor"/>
   <syscall name="timer_create" number="254"/>
   <syscall name="timer_settime" number="255"/>
   <syscall name="timer_gettime" number="256"/>
@@ -256,9 +258,9 @@
   <syscall name="clock_getres" number="261"/>
   <syscall name="clock_nanosleep" number="262"/>
   <syscall name="fadvise64_64" number="264"/>
-  <syscall name="statfs64" number="265"/>
-  <syscall name="fstatfs64" number="266"/>
-  <syscall name="remap_file_pages" number="267"/>
+  <syscall name="statfs64" number="265" groups="file"/>
+  <syscall name="fstatfs64" number="266" groups="descriptor"/>
+  <syscall name="remap_file_pages" number="267" groups="memory"/>
   <syscall name="mq_open" number="271"/>
   <syscall name="mq_unlink" number="272"/>
   <syscall name="mq_timedsend" number="273"/>
@@ -269,61 +271,61 @@
   <syscall name="add_key" number="278"/>
   <syscall name="request_key" number="279"/>
   <syscall name="keyctl" number="280"/>
-  <syscall name="waitid" number="281"/>
+  <syscall name="waitid" number="281" groups="process"/>
   <syscall name="ioprio_set" number="282"/>
   <syscall name="ioprio_get" number="283"/>
-  <syscall name="inotify_init" number="284"/>
-  <syscall name="inotify_add_watch" number="285"/>
-  <syscall name="inotify_rm_watch" number="286"/>
-  <syscall name="openat" number="288"/>
-  <syscall name="mkdirat" number="289"/>
-  <syscall name="mknodat" number="290"/>
-  <syscall name="fchownat" number="291"/>
-  <syscall name="futimesat" number="292"/>
-  <syscall name="fstatat64" number="293"/>
-  <syscall name="unlinkat" number="294"/>
-  <syscall name="renameat" number="295"/>
-  <syscall name="linkat" number="296"/>
-  <syscall name="symlinkat" number="297"/>
-  <syscall name="readlinkat" number="298"/>
-  <syscall name="fchmodat" number="299"/>
-  <syscall name="faccessat" number="300"/>
-  <syscall name="pselect6" number="301"/>
-  <syscall name="ppoll" number="302"/>
-  <syscall name="unshare" number="303"/>
+  <syscall name="inotify_init" number="284" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="285" groups="descriptor"/>
+  <syscall name="inotify_rm_watch" number="286" groups="descriptor"/>
+  <syscall name="openat" number="288" groups="descriptor,file"/>
+  <syscall name="mkdirat" number="289" groups="descriptor,file"/>
+  <syscall name="mknodat" number="290" groups="descriptor,file"/>
+  <syscall name="fchownat" number="291" groups="descriptor,file"/>
+  <syscall name="futimesat" number="292" groups="descriptor,file"/>
+  <syscall name="fstatat64" number="293" groups="descriptor,file"/>
+  <syscall name="unlinkat" number="294" groups="descriptor,file"/>
+  <syscall name="renameat" number="295" groups="descriptor,file"/>
+  <syscall name="linkat" number="296" groups="descriptor,file"/>
+  <syscall name="symlinkat" number="297" groups="descriptor,file"/>
+  <syscall name="readlinkat" number="298" groups="descriptor,file"/>
+  <syscall name="fchmodat" number="299" groups="descriptor,file"/>
+  <syscall name="faccessat" number="300" groups="descriptor,file"/>
+  <syscall name="pselect6" number="301" groups="descriptor"/>
+  <syscall name="ppoll" number="302" groups="descriptor"/>
+  <syscall name="unshare" number="303" groups="process"/>
   <syscall name="set_robust_list" number="304"/>
   <syscall name="get_robust_list" number="305"/>
-  <syscall name="splice" number="306"/>
-  <syscall name="sync_file_range" number="307"/>
-  <syscall name="tee" number="308"/>
-  <syscall name="vmsplice" number="309"/>
+  <syscall name="splice" number="306" groups="descriptor"/>
+  <syscall name="sync_file_range" number="307" groups="descriptor"/>
+  <syscall name="tee" number="308" groups="descriptor"/>
+  <syscall name="vmsplice" number="309" groups="descriptor"/>
   <syscall name="getcpu" number="311"/>
-  <syscall name="epoll_pwait" number="312"/>
-  <syscall name="utimes" number="313"/>
-  <syscall name="fallocate" number="314"/>
-  <syscall name="utimensat" number="315"/>
-  <syscall name="signalfd" number="316"/>
-  <syscall name="timerfd" number="317"/>
-  <syscall name="eventfd" number="318"/>
-  <syscall name="timerfd_create" number="319"/>
-  <syscall name="timerfd_settime" number="320"/>
-  <syscall name="timerfd_gettime" number="321"/>
-  <syscall name="signalfd4" number="322"/>
-  <syscall name="eventfd2" number="323"/>
-  <syscall name="inotify_init1" number="324"/>
-  <syscall name="pipe2" number="325"/>
-  <syscall name="dup3" number="326"/>
-  <syscall name="epoll_create1" number="327"/>
-  <syscall name="rt_tgsigqueueinfo" number="330"/>
-  <syscall name="perf_event_open" number="331"/>
-  <syscall name="fanotify_init" number="332"/>
-  <syscall name="fanotify_mark" number="333"/>
+  <syscall name="epoll_pwait" number="312" groups="descriptor"/>
+  <syscall name="utimes" number="313" groups="file"/>
+  <syscall name="fallocate" number="314" groups="descriptor"/>
+  <syscall name="utimensat" number="315" groups="descriptor,file"/>
+  <syscall name="signalfd" number="316" groups="descriptor,signal"/>
+  <syscall name="timerfd" number="317" groups="descriptor"/>
+  <syscall name="eventfd" number="318" groups="descriptor"/>
+  <syscall name="timerfd_create" number="319" groups="descriptor"/>
+  <syscall name="timerfd_settime" number="320" groups="descriptor"/>
+  <syscall name="timerfd_gettime" number="321" groups="descriptor"/>
+  <syscall name="signalfd4" number="322" groups="descriptor,signal"/>
+  <syscall name="eventfd2" number="323" groups="descriptor"/>
+  <syscall name="inotify_init1" number="324" groups="descriptor"/>
+  <syscall name="pipe2" number="325" groups="descriptor"/>
+  <syscall name="dup3" number="326" groups="descriptor"/>
+  <syscall name="epoll_create1" number="327" groups="descriptor"/>
+  <syscall name="rt_tgsigqueueinfo" number="330" groups="process,signal"/>
+  <syscall name="perf_event_open" number="331" groups="descriptor"/>
+  <syscall name="fanotify_init" number="332" groups="descriptor"/>
+  <syscall name="fanotify_mark" number="333" groups="descriptor,file"/>
   <syscall name="prlimit64" number="334"/>
-  <syscall name="name_to_handle_at" number="335"/>
-  <syscall name="open_by_handle_at" number="336"/>
+  <syscall name="name_to_handle_at" number="335" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" number="336" groups="descriptor"/>
   <syscall name="clock_adjtime" number="337"/>
-  <syscall name="syncfs" number="338"/>
-  <syscall name="setns" number="339"/>
+  <syscall name="syncfs" number="338" groups="descriptor"/>
+  <syscall name="setns" number="339" groups="descriptor"/>
   <syscall name="process_vm_readv" number="340"/>
   <syscall name="process_vm_writev" number="341"/>
   <syscall name="s390_runtime_instr" number="342"/>
-- 
1.9.3

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v3 11/17] Create syscall groups for mips-n32.
  2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
                   ` (15 preceding siblings ...)
  2015-04-26  1:47 ` [PATCH v3 14/17] Create syscall groups for s390 Gabriel Krisman Bertazi
@ 2015-04-26  1:47 ` Gabriel Krisman Bertazi
  2015-04-26 18:58 ` [PATCH v3 00/17] Catch syscall group Sergio Durigan Junior
  2015-04-28 11:24 ` Pedro Alves
  18 siblings, 0 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-04-26  1:47 UTC (permalink / raw)
  To: gdb-patches; +Cc: dje, sergiodj, Gabriel Krisman Bertazi

This commit introduces the following syscall groups for the mips-n32
architecture: memory, ipc, process, descriptor, signal and file.

Please note that the sorting of the syscalls among these several groups
follows the same structure used in strace.

gdb/

	* syscalls/mips-n32-linux.xml: Add 'groups' attribute to several
	syscalls on mips-n32.  Create groups memory, ipc, file,
	descriptor, process and signal.
---
 gdb/syscalls/mips-n32-linux.xml | 374 ++++++++++++++++++++--------------------
 1 file changed, 188 insertions(+), 186 deletions(-)

diff --git a/gdb/syscalls/mips-n32-linux.xml b/gdb/syscalls/mips-n32-linux.xml
index 5cf33bf..13b6e46 100644
--- a/gdb/syscalls/mips-n32-linux.xml
+++ b/gdb/syscalls/mips-n32-linux.xml
@@ -13,100 +13,102 @@
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+<!-- The group field was based on strace.  -->
+
 <syscalls_info>
-  <syscall name="read" number="6000"/>
-  <syscall name="write" number="6001"/>
-  <syscall name="open" number="6002"/>
-  <syscall name="close" number="6003"/>
-  <syscall name="stat" number="6004"/>
-  <syscall name="fstat" number="6005"/>
-  <syscall name="lstat" number="6006"/>
-  <syscall name="poll" number="6007"/>
-  <syscall name="lseek" number="6008"/>
-  <syscall name="mmap" number="6009"/>
-  <syscall name="mprotect" number="6010"/>
-  <syscall name="munmap" number="6011"/>
-  <syscall name="brk" number="6012"/>
-  <syscall name="rt_sigaction" number="6013"/>
-  <syscall name="rt_sigprocmask" number="6014"/>
-  <syscall name="ioctl" number="6015"/>
-  <syscall name="pread64" number="6016"/>
-  <syscall name="pwrite64" number="6017"/>
-  <syscall name="readv" number="6018"/>
-  <syscall name="writev" number="6019"/>
-  <syscall name="access" number="6020"/>
-  <syscall name="pipe" number="6021"/>
-  <syscall name="_newselect" number="6022"/>
+  <syscall name="read" number="6000" groups="descriptor"/>
+  <syscall name="write" number="6001" groups="descriptor"/>
+  <syscall name="open" number="6002" groups="descriptor,file"/>
+  <syscall name="close" number="6003" groups="descriptor"/>
+  <syscall name="stat" number="6004" groups="file"/>
+  <syscall name="fstat" number="6005" groups="descriptor"/>
+  <syscall name="lstat" number="6006" groups="file"/>
+  <syscall name="poll" number="6007" groups="descriptor"/>
+  <syscall name="lseek" number="6008" groups="descriptor"/>
+  <syscall name="mmap" number="6009" groups="descriptor,memory"/>
+  <syscall name="mprotect" number="6010" groups="memory"/>
+  <syscall name="munmap" number="6011" groups="memory"/>
+  <syscall name="brk" number="6012" groups="memory"/>
+  <syscall name="rt_sigaction" number="6013" groups="signal"/>
+  <syscall name="rt_sigprocmask" number="6014" groups="signal"/>
+  <syscall name="ioctl" number="6015" groups="descriptor"/>
+  <syscall name="pread64" number="6016" groups="descriptor"/>
+  <syscall name="pwrite64" number="6017" groups="descriptor"/>
+  <syscall name="readv" number="6018" groups="descriptor"/>
+  <syscall name="writev" number="6019" groups="descriptor"/>
+  <syscall name="access" number="6020" groups="file"/>
+  <syscall name="pipe" number="6021" groups="descriptor"/>
+  <syscall name="_newselect" number="6022" groups="descriptor"/>
   <syscall name="sched_yield" number="6023"/>
-  <syscall name="mremap" number="6024"/>
-  <syscall name="msync" number="6025"/>
-  <syscall name="mincore" number="6026"/>
-  <syscall name="madvise" number="6027"/>
-  <syscall name="shmget" number="6028"/>
-  <syscall name="shmat" number="6029"/>
-  <syscall name="shmctl" number="6030"/>
-  <syscall name="dup" number="6031"/>
-  <syscall name="dup2" number="6032"/>
-  <syscall name="pause" number="6033"/>
+  <syscall name="mremap" number="6024" groups="memory"/>
+  <syscall name="msync" number="6025" groups="memory"/>
+  <syscall name="mincore" number="6026" groups="memory"/>
+  <syscall name="madvise" number="6027" groups="memory"/>
+  <syscall name="shmget" number="6028" groups="ipc"/>
+  <syscall name="shmat" number="6029" groups="ipc,memory"/>
+  <syscall name="shmctl" number="6030" groups="ipc"/>
+  <syscall name="dup" number="6031" groups="descriptor"/>
+  <syscall name="dup2" number="6032" groups="descriptor"/>
+  <syscall name="pause" number="6033" groups="signal"/>
   <syscall name="nanosleep" number="6034"/>
   <syscall name="getitimer" number="6035"/>
   <syscall name="setitimer" number="6036"/>
   <syscall name="alarm" number="6037"/>
   <syscall name="getpid" number="6038"/>
-  <syscall name="sendfile" number="6039"/>
-  <syscall name="socket" number="6040"/>
-  <syscall name="connect" number="6041"/>
-  <syscall name="accept" number="6042"/>
-  <syscall name="sendto" number="6043"/>
-  <syscall name="recvfrom" number="6044"/>
-  <syscall name="sendmsg" number="6045"/>
-  <syscall name="recvmsg" number="6046"/>
-  <syscall name="shutdown" number="6047"/>
-  <syscall name="bind" number="6048"/>
-  <syscall name="listen" number="6049"/>
-  <syscall name="getsockname" number="6050"/>
-  <syscall name="getpeername" number="6051"/>
-  <syscall name="socketpair" number="6052"/>
-  <syscall name="setsockopt" number="6053"/>
-  <syscall name="getsockopt" number="6054"/>
-  <syscall name="clone" number="6055"/>
-  <syscall name="fork" number="6056"/>
-  <syscall name="execve" number="6057"/>
-  <syscall name="exit" number="6058"/>
-  <syscall name="wait4" number="6059"/>
-  <syscall name="kill" number="6060"/>
+  <syscall name="sendfile" number="6039" groups="descriptor,network"/>
+  <syscall name="socket" number="6040" groups="network"/>
+  <syscall name="connect" number="6041" groups="network"/>
+  <syscall name="accept" number="6042" groups="network"/>
+  <syscall name="sendto" number="6043" groups="network"/>
+  <syscall name="recvfrom" number="6044" groups="network"/>
+  <syscall name="sendmsg" number="6045" groups="network"/>
+  <syscall name="recvmsg" number="6046" groups="network"/>
+  <syscall name="shutdown" number="6047" groups="network"/>
+  <syscall name="bind" number="6048" groups="network"/>
+  <syscall name="listen" number="6049" groups="network"/>
+  <syscall name="getsockname" number="6050" groups="network"/>
+  <syscall name="getpeername" number="6051" groups="network"/>
+  <syscall name="socketpair" number="6052" groups="network"/>
+  <syscall name="setsockopt" number="6053" groups="network"/>
+  <syscall name="getsockopt" number="6054" groups="network"/>
+  <syscall name="clone" number="6055" groups="process"/>
+  <syscall name="fork" number="6056" groups="process"/>
+  <syscall name="execve" number="6057" groups="file,process"/>
+  <syscall name="exit" number="6058" groups="process"/>
+  <syscall name="wait4" number="6059" groups="process"/>
+  <syscall name="kill" number="6060" groups="signal"/>
   <syscall name="uname" number="6061"/>
-  <syscall name="semget" number="6062"/>
+  <syscall name="semget" number="6062" groups="ipc"/>
   <syscall name="semop" number="6063"/>
-  <syscall name="semctl" number="6064"/>
-  <syscall name="shmdt" number="6065"/>
-  <syscall name="msgget" number="6066"/>
-  <syscall name="msgsnd" number="6067"/>
-  <syscall name="msgrcv" number="6068"/>
-  <syscall name="msgctl" number="6069"/>
-  <syscall name="fcntl" number="6070"/>
-  <syscall name="flock" number="6071"/>
-  <syscall name="fsync" number="6072"/>
-  <syscall name="fdatasync" number="6073"/>
-  <syscall name="truncate" number="6074"/>
-  <syscall name="ftruncate" number="6075"/>
-  <syscall name="getdents" number="6076"/>
-  <syscall name="getcwd" number="6077"/>
-  <syscall name="chdir" number="6078"/>
-  <syscall name="fchdir" number="6079"/>
-  <syscall name="rename" number="6080"/>
-  <syscall name="mkdir" number="6081"/>
-  <syscall name="rmdir" number="6082"/>
-  <syscall name="creat" number="6083"/>
-  <syscall name="link" number="6084"/>
-  <syscall name="unlink" number="6085"/>
-  <syscall name="symlink" number="6086"/>
-  <syscall name="readlink" number="6087"/>
-  <syscall name="chmod" number="6088"/>
-  <syscall name="fchmod" number="6089"/>
-  <syscall name="chown" number="6090"/>
-  <syscall name="fchown" number="6091"/>
-  <syscall name="lchown" number="6092"/>
+  <syscall name="semctl" number="6064" groups="ipc"/>
+  <syscall name="shmdt" number="6065" groups="ipc,memory"/>
+  <syscall name="msgget" number="6066" groups="ipc"/>
+  <syscall name="msgsnd" number="6067" groups="ipc"/>
+  <syscall name="msgrcv" number="6068" groups="ipc"/>
+  <syscall name="msgctl" number="6069" groups="ipc"/>
+  <syscall name="fcntl" number="6070" groups="descriptor"/>
+  <syscall name="flock" number="6071" groups="descriptor"/>
+  <syscall name="fsync" number="6072" groups="descriptor"/>
+  <syscall name="fdatasync" number="6073" groups="descriptor"/>
+  <syscall name="truncate" number="6074" groups="file"/>
+  <syscall name="ftruncate" number="6075" groups="descriptor"/>
+  <syscall name="getdents" number="6076" groups="descriptor"/>
+  <syscall name="getcwd" number="6077" groups="file"/>
+  <syscall name="chdir" number="6078" groups="file"/>
+  <syscall name="fchdir" number="6079" groups="descriptor"/>
+  <syscall name="rename" number="6080" groups="file"/>
+  <syscall name="mkdir" number="6081" groups="file"/>
+  <syscall name="rmdir" number="6082" groups="file"/>
+  <syscall name="creat" number="6083" groups="descriptor,file"/>
+  <syscall name="link" number="6084" groups="file"/>
+  <syscall name="unlink" number="6085" groups="file"/>
+  <syscall name="symlink" number="6086" groups="file"/>
+  <syscall name="readlink" number="6087" groups="file"/>
+  <syscall name="chmod" number="6088" groups="file"/>
+  <syscall name="fchmod" number="6089" groups="descriptor"/>
+  <syscall name="chown" number="6090" groups="file"/>
+  <syscall name="fchown" number="6091" groups="descriptor"/>
+  <syscall name="lchown" number="6092" groups="file"/>
   <syscall name="umask" number="6093"/>
   <syscall name="gettimeofday" number="6094"/>
   <syscall name="getrlimit" number="6095"/>
@@ -139,17 +141,17 @@
   <syscall name="getsid" number="6122"/>
   <syscall name="capget" number="6123"/>
   <syscall name="capset" number="6124"/>
-  <syscall name="rt_sigpending" number="6125"/>
-  <syscall name="rt_sigtimedwait" number="6126"/>
-  <syscall name="rt_sigqueueinfo" number="6127"/>
-  <syscall name="rt_sigsuspend" number="6128"/>
-  <syscall name="sigaltstack" number="6129"/>
-  <syscall name="utime" number="6130"/>
-  <syscall name="mknod" number="6131"/>
+  <syscall name="rt_sigpending" number="6125" groups="signal"/>
+  <syscall name="rt_sigtimedwait" number="6126" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="6127" groups="signal"/>
+  <syscall name="rt_sigsuspend" number="6128" groups="signal"/>
+  <syscall name="sigaltstack" number="6129" groups="signal"/>
+  <syscall name="utime" number="6130" groups="file"/>
+  <syscall name="mknod" number="6131" groups="file"/>
   <syscall name="personality" number="6132"/>
   <syscall name="ustat" number="6133"/>
-  <syscall name="statfs" number="6134"/>
-  <syscall name="fstatfs" number="6135"/>
+  <syscall name="statfs" number="6134" groups="file"/>
+  <syscall name="fstatfs" number="6135" groups="descriptor"/>
   <syscall name="sysfs" number="6136"/>
   <syscall name="getpriority" number="6137"/>
   <syscall name="setpriority" number="6138"/>
@@ -160,24 +162,24 @@
   <syscall name="sched_get_priority_max" number="6143"/>
   <syscall name="sched_get_priority_min" number="6144"/>
   <syscall name="sched_rr_get_interval" number="6145"/>
-  <syscall name="mlock" number="6146"/>
-  <syscall name="munlock" number="6147"/>
-  <syscall name="mlockall" number="6148"/>
-  <syscall name="munlockall" number="6149"/>
+  <syscall name="mlock" number="6146" groups="memory"/>
+  <syscall name="munlock" number="6147" groups="memory"/>
+  <syscall name="mlockall" number="6148" groups="memory"/>
+  <syscall name="munlockall" number="6149" groups="memory"/>
   <syscall name="vhangup" number="6150"/>
-  <syscall name="pivot_root" number="6151"/>
+  <syscall name="pivot_root" number="6151" groups="file"/>
   <syscall name="_sysctl" number="6152"/>
   <syscall name="prctl" number="6153"/>
   <syscall name="adjtimex" number="6154"/>
   <syscall name="setrlimit" number="6155"/>
-  <syscall name="chroot" number="6156"/>
+  <syscall name="chroot" number="6156" groups="file"/>
   <syscall name="sync" number="6157"/>
-  <syscall name="acct" number="6158"/>
+  <syscall name="acct" number="6158" groups="file"/>
   <syscall name="settimeofday" number="6159"/>
-  <syscall name="mount" number="6160"/>
-  <syscall name="umount2" number="6161"/>
-  <syscall name="swapon" number="6162"/>
-  <syscall name="swapoff" number="6163"/>
+  <syscall name="mount" number="6160" groups="file"/>
+  <syscall name="umount2" number="6161" groups="file"/>
+  <syscall name="swapon" number="6162" groups="file"/>
+  <syscall name="swapoff" number="6163" groups="file"/>
   <syscall name="reboot" number="6164"/>
   <syscall name="sethostname" number="6165"/>
   <syscall name="setdomainname" number="6166"/>
@@ -186,27 +188,27 @@
   <syscall name="delete_module" number="6169"/>
   <syscall name="get_kernel_syms" number="6170"/>
   <syscall name="query_module" number="6171"/>
-  <syscall name="quotactl" number="6172"/>
+  <syscall name="quotactl" number="6172" groups="file"/>
   <syscall name="nfsservctl" number="6173"/>
   <syscall name="getpmsg" number="6174"/>
   <syscall name="putpmsg" number="6175"/>
   <syscall name="afs_syscall" number="6176"/>
   <syscall name="reserved177" number="6177"/>
   <syscall name="gettid" number="6178"/>
-  <syscall name="readahead" number="6179"/>
-  <syscall name="setxattr" number="6180"/>
-  <syscall name="lsetxattr" number="6181"/>
-  <syscall name="fsetxattr" number="6182"/>
-  <syscall name="getxattr" number="6183"/>
-  <syscall name="lgetxattr" number="6184"/>
-  <syscall name="fgetxattr" number="6185"/>
-  <syscall name="listxattr" number="6186"/>
-  <syscall name="llistxattr" number="6187"/>
-  <syscall name="flistxattr" number="6188"/>
-  <syscall name="removexattr" number="6189"/>
-  <syscall name="lremovexattr" number="6190"/>
-  <syscall name="fremovexattr" number="6191"/>
-  <syscall name="tkill" number="6192"/>
+  <syscall name="readahead" number="6179" groups="descriptor"/>
+  <syscall name="setxattr" number="6180" groups="file"/>
+  <syscall name="lsetxattr" number="6181" groups="file"/>
+  <syscall name="fsetxattr" number="6182" groups="descriptor"/>
+  <syscall name="getxattr" number="6183" groups="file"/>
+  <syscall name="lgetxattr" number="6184" groups="file"/>
+  <syscall name="fgetxattr" number="6185" groups="descriptor"/>
+  <syscall name="listxattr" number="6186" groups="file"/>
+  <syscall name="llistxattr" number="6187" groups="file"/>
+  <syscall name="flistxattr" number="6188" groups="descriptor"/>
+  <syscall name="removexattr" number="6189" groups="file"/>
+  <syscall name="lremovexattr" number="6190" groups="file"/>
+  <syscall name="fremovexattr" number="6191" groups="descriptor"/>
+  <syscall name="tkill" number="6192" groups="signal"/>
   <syscall name="reserved193" number="6193"/>
   <syscall name="futex" number="6194"/>
   <syscall name="sched_setaffinity" number="6195"/>
@@ -219,21 +221,21 @@
   <syscall name="io_getevents" number="6202"/>
   <syscall name="io_submit" number="6203"/>
   <syscall name="io_cancel" number="6204"/>
-  <syscall name="exit_group" number="6205"/>
+  <syscall name="exit_group" number="6205" groups="process"/>
   <syscall name="lookup_dcookie" number="6206"/>
-  <syscall name="epoll_create" number="6207"/>
-  <syscall name="epoll_ctl" number="6208"/>
-  <syscall name="epoll_wait" number="6209"/>
-  <syscall name="remap_file_pages" number="6210"/>
-  <syscall name="rt_sigreturn" number="6211"/>
-  <syscall name="fcntl64" number="6212"/>
+  <syscall name="epoll_create" number="6207" groups="descriptor"/>
+  <syscall name="epoll_ctl" number="6208" groups="descriptor"/>
+  <syscall name="epoll_wait" number="6209" groups="descriptor"/>
+  <syscall name="remap_file_pages" number="6210" groups="memory"/>
+  <syscall name="rt_sigreturn" number="6211" groups="signal"/>
+  <syscall name="fcntl64" number="6212" groups="descriptor"/>
   <syscall name="set_tid_address" number="6213"/>
   <syscall name="restart_syscall" number="6214"/>
-  <syscall name="semtimedop" number="6215"/>
-  <syscall name="fadvise64" number="6216"/>
-  <syscall name="statfs64" number="6217"/>
-  <syscall name="fstatfs64" number="6218"/>
-  <syscall name="sendfile64" number="6219"/>
+  <syscall name="semtimedop" number="6215" groups="ipc"/>
+  <syscall name="fadvise64" number="6216" groups="descriptor"/>
+  <syscall name="statfs64" number="6217" groups="file"/>
+  <syscall name="fstatfs64" number="6218" groups="descriptor"/>
+  <syscall name="sendfile64" number="6219" groups="descriptor,network"/>
   <syscall name="timer_create" number="6220"/>
   <syscall name="timer_settime" number="6221"/>
   <syscall name="timer_gettime" number="6222"/>
@@ -243,11 +245,11 @@
   <syscall name="clock_gettime" number="6226"/>
   <syscall name="clock_getres" number="6227"/>
   <syscall name="clock_nanosleep" number="6228"/>
-  <syscall name="tgkill" number="6229"/>
-  <syscall name="utimes" number="6230"/>
-  <syscall name="mbind" number="6231"/>
-  <syscall name="get_mempolicy" number="6232"/>
-  <syscall name="set_mempolicy" number="6233"/>
+  <syscall name="tgkill" number="6229" groups="signal"/>
+  <syscall name="utimes" number="6230" groups="file"/>
+  <syscall name="mbind" number="6231" groups="memory"/>
+  <syscall name="get_mempolicy" number="6232" groups="memory"/>
+  <syscall name="set_mempolicy" number="6233" groups="memory"/>
   <syscall name="mq_open" number="6234"/>
   <syscall name="mq_unlink" number="6235"/>
   <syscall name="mq_timedsend" number="6236"/>
@@ -255,65 +257,65 @@
   <syscall name="mq_notify" number="6238"/>
   <syscall name="mq_getsetattr" number="6239"/>
   <syscall name="vserver" number="6240"/>
-  <syscall name="waitid" number="6241"/>
+  <syscall name="waitid" number="6241" groups="process"/>
   <syscall name="add_key" number="6243"/>
   <syscall name="request_key" number="6244"/>
   <syscall name="keyctl" number="6245"/>
   <syscall name="set_thread_area" number="6246"/>
-  <syscall name="inotify_init" number="6247"/>
-  <syscall name="inotify_add_watch" number="6248"/>
-  <syscall name="inotify_rm_watch" number="6249"/>
-  <syscall name="migrate_pages" number="6250"/>
-  <syscall name="openat" number="6251"/>
-  <syscall name="mkdirat" number="6252"/>
-  <syscall name="mknodat" number="6253"/>
-  <syscall name="fchownat" number="6254"/>
-  <syscall name="futimesat" number="6255"/>
-  <syscall name="newfstatat" number="6256"/>
-  <syscall name="unlinkat" number="6257"/>
-  <syscall name="renameat" number="6258"/>
-  <syscall name="linkat" number="6259"/>
-  <syscall name="symlinkat" number="6260"/>
-  <syscall name="readlinkat" number="6261"/>
-  <syscall name="fchmodat" number="6262"/>
-  <syscall name="faccessat" number="6263"/>
-  <syscall name="pselect6" number="6264"/>
-  <syscall name="ppoll" number="6265"/>
-  <syscall name="unshare" number="6266"/>
-  <syscall name="splice" number="6267"/>
-  <syscall name="sync_file_range" number="6268"/>
-  <syscall name="tee" number="6269"/>
-  <syscall name="vmsplice" number="6270"/>
+  <syscall name="inotify_init" number="6247" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="6248" groups="descriptor"/>
+  <syscall name="inotify_rm_watch" number="6249" groups="descriptor"/>
+  <syscall name="migrate_pages" number="6250" groups="memory"/>
+  <syscall name="openat" number="6251" groups="descriptor,file"/>
+  <syscall name="mkdirat" number="6252" groups="descriptor,file"/>
+  <syscall name="mknodat" number="6253" groups="descriptor,file"/>
+  <syscall name="fchownat" number="6254" groups="descriptor,file"/>
+  <syscall name="futimesat" number="6255" groups="descriptor,file"/>
+  <syscall name="newfstatat" number="6256" groups="descriptor,file"/>
+  <syscall name="unlinkat" number="6257" groups="descriptor,file"/>
+  <syscall name="renameat" number="6258" groups="descriptor,file"/>
+  <syscall name="linkat" number="6259" groups="descriptor,file"/>
+  <syscall name="symlinkat" number="6260" groups="descriptor,file"/>
+  <syscall name="readlinkat" number="6261" groups="descriptor,file"/>
+  <syscall name="fchmodat" number="6262" groups="descriptor,file"/>
+  <syscall name="faccessat" number="6263" groups="descriptor,file"/>
+  <syscall name="pselect6" number="6264" groups="descriptor"/>
+  <syscall name="ppoll" number="6265" groups="descriptor"/>
+  <syscall name="unshare" number="6266" groups="process"/>
+  <syscall name="splice" number="6267" groups="descriptor"/>
+  <syscall name="sync_file_range" number="6268" groups="descriptor"/>
+  <syscall name="tee" number="6269" groups="descriptor"/>
+  <syscall name="vmsplice" number="6270" groups="descriptor"/>
   <syscall name="move_pages" number="6271"/>
   <syscall name="set_robust_list" number="6272"/>
   <syscall name="get_robust_list" number="6273"/>
   <syscall name="kexec_load" number="6274"/>
   <syscall name="getcpu" number="6275"/>
-  <syscall name="epoll_pwait" number="6276"/>
+  <syscall name="epoll_pwait" number="6276" groups="descriptor"/>
   <syscall name="ioprio_set" number="6277"/>
   <syscall name="ioprio_get" number="6278"/>
-  <syscall name="utimensat" number="6279"/>
-  <syscall name="signalfd" number="6280"/>
-  <syscall name="timerfd" number="6281"/>
-  <syscall name="eventfd" number="6282"/>
-  <syscall name="fallocate" number="6283"/>
-  <syscall name="timerfd_create" number="6284"/>
-  <syscall name="timerfd_gettime" number="6285"/>
-  <syscall name="timerfd_settime" number="6286"/>
-  <syscall name="signalfd4" number="6287"/>
-  <syscall name="eventfd2" number="6288"/>
-  <syscall name="epoll_create1" number="6289"/>
-  <syscall name="dup3" number="6290"/>
-  <syscall name="pipe2" number="6291"/>
-  <syscall name="inotify_init1" number="6292"/>
-  <syscall name="preadv" number="6293"/>
-  <syscall name="pwritev" number="6294"/>
-  <syscall name="rt_tgsigqueueinfo" number="6295"/>
-  <syscall name="perf_event_open" number="6296"/>
-  <syscall name="accept4" number="6297"/>
-  <syscall name="recvmmsg" number="6298"/>
-  <syscall name="getdents64" number="6299"/>
-  <syscall name="fanotify_init" number="6300"/>
-  <syscall name="fanotify_mark" number="6301"/>
+  <syscall name="utimensat" number="6279" groups="descriptor,file"/>
+  <syscall name="signalfd" number="6280" groups="descriptor,signal"/>
+  <syscall name="timerfd" number="6281" groups="descriptor"/>
+  <syscall name="eventfd" number="6282" groups="descriptor"/>
+  <syscall name="fallocate" number="6283" groups="descriptor"/>
+  <syscall name="timerfd_create" number="6284" groups="descriptor"/>
+  <syscall name="timerfd_gettime" number="6285" groups="descriptor"/>
+  <syscall name="timerfd_settime" number="6286" groups="descriptor"/>
+  <syscall name="signalfd4" number="6287" groups="descriptor,signal"/>
+  <syscall name="eventfd2" number="6288" groups="descriptor"/>
+  <syscall name="epoll_create1" number="6289" groups="descriptor"/>
+  <syscall name="dup3" number="6290" groups="descriptor"/>
+  <syscall name="pipe2" number="6291" groups="descriptor"/>
+  <syscall name="inotify_init1" number="6292" groups="descriptor"/>
+  <syscall name="preadv" number="6293" groups="descriptor"/>
+  <syscall name="pwritev" number="6294" groups="descriptor"/>
+  <syscall name="rt_tgsigqueueinfo" number="6295" groups="process,signal"/>
+  <syscall name="perf_event_open" number="6296" groups="descriptor"/>
+  <syscall name="accept4" number="6297" groups="network"/>
+  <syscall name="recvmmsg" number="6298" groups="network"/>
+  <syscall name="getdents64" number="6299" groups="descriptor"/>
+  <syscall name="fanotify_init" number="6300" groups="descriptor"/>
+  <syscall name="fanotify_mark" number="6301" groups="descriptor,file"/>
   <syscall name="prlimit64" number="6302"/>
 </syscalls_info>
-- 
1.9.3

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v3 13/17] Create syscall groups for mips-o32.
  2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
                   ` (10 preceding siblings ...)
  2015-04-26  1:26 ` [PATCH v3 12/17] Create syscall groups for mips-n64 Gabriel Krisman Bertazi
@ 2015-04-26  1:47 ` Gabriel Krisman Bertazi
  2015-04-26  1:47 ` [PATCH v3 16/17] Create syscall groups for sparc Gabriel Krisman Bertazi
                   ` (6 subsequent siblings)
  18 siblings, 0 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-04-26  1:47 UTC (permalink / raw)
  To: gdb-patches; +Cc: dje, sergiodj, Gabriel Krisman Bertazi

This commit introduces the following syscall groups for the mips-o32
architecture: memory, ipc, process, descriptor, signal and file.

Please note that the sorting of the syscalls among these several groups
follows the same structure used in strace.

gdb/

	* syscalls/mips-o32-linux.xml: Add 'groups' attribute to several
	syscalls on mips-o32.  Create groups memory, ipc, file,
	descriptor, process and signal.
---
 gdb/syscalls/mips-o32-linux.xml | 398 ++++++++++++++++++++--------------------
 1 file changed, 200 insertions(+), 198 deletions(-)

diff --git a/gdb/syscalls/mips-o32-linux.xml b/gdb/syscalls/mips-o32-linux.xml
index ef8e421..14b4c55 100644
--- a/gdb/syscalls/mips-o32-linux.xml
+++ b/gdb/syscalls/mips-o32-linux.xml
@@ -13,78 +13,80 @@
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+<!-- The group field was based on strace.  -->
+
 <syscalls_info>
   <syscall name="syscall" number="4000"/>
-  <syscall name="exit" number="4001"/>
-  <syscall name="fork" number="4002"/>
-  <syscall name="read" number="4003"/>
-  <syscall name="write" number="4004"/>
-  <syscall name="open" number="4005"/>
-  <syscall name="close" number="4006"/>
-  <syscall name="waitpid" number="4007"/>
-  <syscall name="creat" number="4008"/>
-  <syscall name="link" number="4009"/>
-  <syscall name="unlink" number="4010"/>
-  <syscall name="execve" number="4011"/>
-  <syscall name="chdir" number="4012"/>
+  <syscall name="exit" number="4001" groups="process"/>
+  <syscall name="fork" number="4002" groups="process"/>
+  <syscall name="read" number="4003" groups="descriptor"/>
+  <syscall name="write" number="4004" groups="descriptor"/>
+  <syscall name="open" number="4005" groups="descriptor,file"/>
+  <syscall name="close" number="4006" groups="descriptor"/>
+  <syscall name="waitpid" number="4007" groups="process"/>
+  <syscall name="creat" number="4008" groups="descriptor,file"/>
+  <syscall name="link" number="4009" groups="file"/>
+  <syscall name="unlink" number="4010" groups="file"/>
+  <syscall name="execve" number="4011" groups="file,process"/>
+  <syscall name="chdir" number="4012" groups="file"/>
   <syscall name="time" number="4013"/>
-  <syscall name="mknod" number="4014"/>
-  <syscall name="chmod" number="4015"/>
-  <syscall name="lchown" number="4016"/>
-  <syscall name="break" number="4017"/>
-  <syscall name="lseek" number="4019"/>
+  <syscall name="mknod" number="4014" groups="file"/>
+  <syscall name="chmod" number="4015" groups="file"/>
+  <syscall name="lchown" number="4016" groups="file"/>
+  <syscall name="break" number="4017" groups="memory"/>
+  <syscall name="lseek" number="4019" groups="descriptor"/>
   <syscall name="getpid" number="4020"/>
-  <syscall name="mount" number="4021"/>
-  <syscall name="umount" number="4022"/>
+  <syscall name="mount" number="4021" groups="file"/>
+  <syscall name="umount" number="4022" groups="file"/>
   <syscall name="setuid" number="4023"/>
   <syscall name="getuid" number="4024"/>
   <syscall name="stime" number="4025"/>
   <syscall name="ptrace" number="4026"/>
   <syscall name="alarm" number="4027"/>
-  <syscall name="pause" number="4029"/>
-  <syscall name="utime" number="4030"/>
+  <syscall name="pause" number="4029" groups="signal"/>
+  <syscall name="utime" number="4030" groups="file"/>
   <syscall name="stty" number="4031"/>
   <syscall name="gtty" number="4032"/>
-  <syscall name="access" number="4033"/>
+  <syscall name="access" number="4033" groups="file"/>
   <syscall name="nice" number="4034"/>
   <syscall name="ftime" number="4035"/>
   <syscall name="sync" number="4036"/>
-  <syscall name="kill" number="4037"/>
-  <syscall name="rename" number="4038"/>
-  <syscall name="mkdir" number="4039"/>
-  <syscall name="rmdir" number="4040"/>
-  <syscall name="dup" number="4041"/>
-  <syscall name="pipe" number="4042"/>
+  <syscall name="kill" number="4037" groups="signal"/>
+  <syscall name="rename" number="4038" groups="file"/>
+  <syscall name="mkdir" number="4039" groups="file"/>
+  <syscall name="rmdir" number="4040" groups="file"/>
+  <syscall name="dup" number="4041" groups="descriptor"/>
+  <syscall name="pipe" number="4042" groups="descriptor"/>
   <syscall name="times" number="4043"/>
   <syscall name="prof" number="4044"/>
-  <syscall name="brk" number="4045"/>
+  <syscall name="brk" number="4045" groups="memory"/>
   <syscall name="setgid" number="4046"/>
   <syscall name="getgid" number="4047"/>
-  <syscall name="signal" number="4048"/>
+  <syscall name="signal" number="4048" groups="signal"/>
   <syscall name="geteuid" number="4049"/>
   <syscall name="getegid" number="4050"/>
-  <syscall name="acct" number="4051"/>
-  <syscall name="umount2" number="4052"/>
+  <syscall name="acct" number="4051" groups="file"/>
+  <syscall name="umount2" number="4052" groups="file"/>
   <syscall name="lock" number="4053"/>
-  <syscall name="ioctl" number="4054"/>
-  <syscall name="fcntl" number="4055"/>
+  <syscall name="ioctl" number="4054" groups="descriptor"/>
+  <syscall name="fcntl" number="4055" groups="descriptor"/>
   <syscall name="mpx" number="4056"/>
   <syscall name="setpgid" number="4057"/>
   <syscall name="ulimit" number="4058"/>
   <syscall name="umask" number="4060"/>
-  <syscall name="chroot" number="4061"/>
+  <syscall name="chroot" number="4061" groups="file"/>
   <syscall name="ustat" number="4062"/>
-  <syscall name="dup2" number="4063"/>
+  <syscall name="dup2" number="4063" groups="descriptor"/>
   <syscall name="getppid" number="4064"/>
   <syscall name="getpgrp" number="4065"/>
   <syscall name="setsid" number="4066"/>
-  <syscall name="sigaction" number="4067"/>
-  <syscall name="sgetmask" number="4068"/>
-  <syscall name="ssetmask" number="4069"/>
+  <syscall name="sigaction" number="4067" groups="signal"/>
+  <syscall name="sgetmask" number="4068" groups="signal"/>
+  <syscall name="ssetmask" number="4069" groups="signal"/>
   <syscall name="setreuid" number="4070"/>
   <syscall name="setregid" number="4071"/>
-  <syscall name="sigsuspend" number="4072"/>
-  <syscall name="sigpending" number="4073"/>
+  <syscall name="sigsuspend" number="4072" groups="signal"/>
+  <syscall name="sigpending" number="4073" groups="signal"/>
   <syscall name="sethostname" number="4074"/>
   <syscall name="setrlimit" number="4075"/>
   <syscall name="getrlimit" number="4076"/>
@@ -93,78 +95,78 @@
   <syscall name="settimeofday" number="4079"/>
   <syscall name="getgroups" number="4080"/>
   <syscall name="setgroups" number="4081"/>
-  <syscall name="symlink" number="4083"/>
-  <syscall name="readlink" number="4085"/>
-  <syscall name="uselib" number="4086"/>
-  <syscall name="swapon" number="4087"/>
+  <syscall name="symlink" number="4083" groups="file"/>
+  <syscall name="readlink" number="4085" groups="file"/>
+  <syscall name="uselib" number="4086" groups="file"/>
+  <syscall name="swapon" number="4087" groups="file"/>
   <syscall name="reboot" number="4088"/>
-  <syscall name="readdir" number="4089"/>
-  <syscall name="mmap" number="4090"/>
-  <syscall name="munmap" number="4091"/>
-  <syscall name="truncate" number="4092"/>
-  <syscall name="ftruncate" number="4093"/>
-  <syscall name="fchmod" number="4094"/>
-  <syscall name="fchown" number="4095"/>
+  <syscall name="readdir" number="4089" groups="descriptor"/>
+  <syscall name="mmap" number="4090" groups="descriptor,memory"/>
+  <syscall name="munmap" number="4091" groups="memory"/>
+  <syscall name="truncate" number="4092" groups="file"/>
+  <syscall name="ftruncate" number="4093" groups="descriptor"/>
+  <syscall name="fchmod" number="4094" groups="descriptor"/>
+  <syscall name="fchown" number="4095" groups="descriptor"/>
   <syscall name="getpriority" number="4096"/>
   <syscall name="setpriority" number="4097"/>
   <syscall name="profil" number="4098"/>
-  <syscall name="statfs" number="4099"/>
-  <syscall name="fstatfs" number="4100"/>
+  <syscall name="statfs" number="4099" groups="file"/>
+  <syscall name="fstatfs" number="4100" groups="descriptor"/>
   <syscall name="ioperm" number="4101"/>
-  <syscall name="socketcall" number="4102"/>
+  <syscall name="socketcall" number="4102" groups="descriptor"/>
   <syscall name="syslog" number="4103"/>
   <syscall name="setitimer" number="4104"/>
   <syscall name="getitimer" number="4105"/>
-  <syscall name="stat" number="4106"/>
-  <syscall name="lstat" number="4107"/>
-  <syscall name="fstat" number="4108"/>
+  <syscall name="stat" number="4106" groups="file"/>
+  <syscall name="lstat" number="4107" groups="file"/>
+  <syscall name="fstat" number="4108" groups="descriptor"/>
   <syscall name="iopl" number="4110"/>
   <syscall name="vhangup" number="4111"/>
   <syscall name="idle" number="4112"/>
   <syscall name="vm86" number="4113"/>
-  <syscall name="wait4" number="4114"/>
-  <syscall name="swapoff" number="4115"/>
+  <syscall name="wait4" number="4114" groups="process"/>
+  <syscall name="swapoff" number="4115" groups="file"/>
   <syscall name="sysinfo" number="4116"/>
-  <syscall name="ipc" number="4117"/>
-  <syscall name="fsync" number="4118"/>
-  <syscall name="sigreturn" number="4119"/>
-  <syscall name="clone" number="4120"/>
+  <syscall name="ipc" number="4117" groups="ipc"/>
+  <syscall name="fsync" number="4118" groups="descriptor"/>
+  <syscall name="sigreturn" number="4119" groups="signal"/>
+  <syscall name="clone" number="4120" groups="process"/>
   <syscall name="setdomainname" number="4121"/>
   <syscall name="uname" number="4122"/>
   <syscall name="modify_ldt" number="4123"/>
   <syscall name="adjtimex" number="4124"/>
-  <syscall name="mprotect" number="4125"/>
-  <syscall name="sigprocmask" number="4126"/>
+  <syscall name="mprotect" number="4125" groups="memory"/>
+  <syscall name="sigprocmask" number="4126" groups="signal"/>
   <syscall name="create_module" number="4127"/>
   <syscall name="init_module" number="4128"/>
   <syscall name="delete_module" number="4129"/>
   <syscall name="get_kernel_syms" number="4130"/>
-  <syscall name="quotactl" number="4131"/>
+  <syscall name="quotactl" number="4131" groups="file"/>
   <syscall name="getpgid" number="4132"/>
-  <syscall name="fchdir" number="4133"/>
+  <syscall name="fchdir" number="4133" groups="descriptor"/>
   <syscall name="bdflush" number="4134"/>
   <syscall name="sysfs" number="4135"/>
   <syscall name="personality" number="4136"/>
   <syscall name="afs_syscall" number="4137"/>
   <syscall name="setfsuid" number="4138"/>
   <syscall name="setfsgid" number="4139"/>
-  <syscall name="_llseek" number="4140"/>
-  <syscall name="getdents" number="4141"/>
-  <syscall name="_newselect" number="4142"/>
-  <syscall name="flock" number="4143"/>
-  <syscall name="msync" number="4144"/>
-  <syscall name="readv" number="4145"/>
-  <syscall name="writev" number="4146"/>
+  <syscall name="_llseek" number="4140" groups="descriptor"/>
+  <syscall name="getdents" number="4141" groups="descriptor"/>
+  <syscall name="_newselect" number="4142" groups="descriptor"/>
+  <syscall name="flock" number="4143" groups="descriptor"/>
+  <syscall name="msync" number="4144" groups="memory"/>
+  <syscall name="readv" number="4145" groups="descriptor"/>
+  <syscall name="writev" number="4146" groups="descriptor"/>
   <syscall name="cacheflush" number="4147"/>
   <syscall name="cachectl" number="4148"/>
   <syscall name="sysmips" number="4149"/>
   <syscall name="getsid" number="4151"/>
-  <syscall name="fdatasync" number="4152"/>
+  <syscall name="fdatasync" number="4152" groups="descriptor"/>
   <syscall name="_sysctl" number="4153"/>
-  <syscall name="mlock" number="4154"/>
-  <syscall name="munlock" number="4155"/>
-  <syscall name="mlockall" number="4156"/>
-  <syscall name="munlockall" number="4157"/>
+  <syscall name="mlock" number="4154" groups="memory"/>
+  <syscall name="munlock" number="4155" groups="memory"/>
+  <syscall name="mlockall" number="4156" groups="memory"/>
+  <syscall name="munlockall" number="4157" groups="memory"/>
   <syscall name="sched_setparam" number="4158"/>
   <syscall name="sched_getparam" number="4159"/>
   <syscall name="sched_setscheduler" number="4160"/>
@@ -174,76 +176,76 @@
   <syscall name="sched_get_priority_min" number="4164"/>
   <syscall name="sched_rr_get_interval" number="4165"/>
   <syscall name="nanosleep" number="4166"/>
-  <syscall name="mremap" number="4167"/>
-  <syscall name="accept" number="4168"/>
-  <syscall name="bind" number="4169"/>
-  <syscall name="connect" number="4170"/>
-  <syscall name="getpeername" number="4171"/>
-  <syscall name="getsockname" number="4172"/>
-  <syscall name="getsockopt" number="4173"/>
-  <syscall name="listen" number="4174"/>
-  <syscall name="recv" number="4175"/>
-  <syscall name="recvfrom" number="4176"/>
-  <syscall name="recvmsg" number="4177"/>
-  <syscall name="send" number="4178"/>
-  <syscall name="sendmsg" number="4179"/>
-  <syscall name="sendto" number="4180"/>
-  <syscall name="setsockopt" number="4181"/>
-  <syscall name="shutdown" number="4182"/>
-  <syscall name="socket" number="4183"/>
-  <syscall name="socketpair" number="4184"/>
+  <syscall name="mremap" number="4167" groups="memory"/>
+  <syscall name="accept" number="4168" groups="network"/>
+  <syscall name="bind" number="4169" groups="network"/>
+  <syscall name="connect" number="4170" groups="network"/>
+  <syscall name="getpeername" number="4171" groups="network"/>
+  <syscall name="getsockname" number="4172" groups="network"/>
+  <syscall name="getsockopt" number="4173" groups="network"/>
+  <syscall name="listen" number="4174" groups="network"/>
+  <syscall name="recv" number="4175" groups="network"/>
+  <syscall name="recvfrom" number="4176" groups="network"/>
+  <syscall name="recvmsg" number="4177" groups="network"/>
+  <syscall name="send" number="4178" groups="network"/>
+  <syscall name="sendmsg" number="4179" groups="network"/>
+  <syscall name="sendto" number="4180" groups="network"/>
+  <syscall name="setsockopt" number="4181" groups="network"/>
+  <syscall name="shutdown" number="4182" groups="network"/>
+  <syscall name="socket" number="4183" groups="network"/>
+  <syscall name="socketpair" number="4184" groups="network"/>
   <syscall name="setresuid" number="4185"/>
   <syscall name="getresuid" number="4186"/>
   <syscall name="query_module" number="4187"/>
-  <syscall name="poll" number="4188"/>
+  <syscall name="poll" number="4188" groups="descriptor"/>
   <syscall name="nfsservctl" number="4189"/>
   <syscall name="setresgid" number="4190"/>
   <syscall name="getresgid" number="4191"/>
   <syscall name="prctl" number="4192"/>
-  <syscall name="rt_sigreturn" number="4193"/>
-  <syscall name="rt_sigaction" number="4194"/>
-  <syscall name="rt_sigprocmask" number="4195"/>
-  <syscall name="rt_sigpending" number="4196"/>
-  <syscall name="rt_sigtimedwait" number="4197"/>
-  <syscall name="rt_sigqueueinfo" number="4198"/>
-  <syscall name="rt_sigsuspend" number="4199"/>
-  <syscall name="pread64" number="4200"/>
-  <syscall name="pwrite64" number="4201"/>
-  <syscall name="chown" number="4202"/>
-  <syscall name="getcwd" number="4203"/>
+  <syscall name="rt_sigreturn" number="4193" groups="signal"/>
+  <syscall name="rt_sigaction" number="4194" groups="signal"/>
+  <syscall name="rt_sigprocmask" number="4195" groups="signal"/>
+  <syscall name="rt_sigpending" number="4196" groups="signal"/>
+  <syscall name="rt_sigtimedwait" number="4197" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="4198" groups="signal"/>
+  <syscall name="rt_sigsuspend" number="4199" groups="signal"/>
+  <syscall name="pread64" number="4200" groups="descriptor"/>
+  <syscall name="pwrite64" number="4201" groups="descriptor"/>
+  <syscall name="chown" number="4202" groups="file"/>
+  <syscall name="getcwd" number="4203" groups="file"/>
   <syscall name="capget" number="4204"/>
   <syscall name="capset" number="4205"/>
-  <syscall name="sigaltstack" number="4206"/>
-  <syscall name="sendfile" number="4207"/>
+  <syscall name="sigaltstack" number="4206" groups="signal"/>
+  <syscall name="sendfile" number="4207" groups="descriptor,network"/>
   <syscall name="getpmsg" number="4208"/>
   <syscall name="putpmsg" number="4209"/>
-  <syscall name="mmap2" number="4210"/>
-  <syscall name="truncate64" number="4211"/>
-  <syscall name="ftruncate64" number="4212"/>
-  <syscall name="stat64" number="4213"/>
-  <syscall name="lstat64" number="4214"/>
-  <syscall name="fstat64" number="4215"/>
-  <syscall name="pivot_root" number="4216"/>
-  <syscall name="mincore" number="4217"/>
-  <syscall name="madvise" number="4218"/>
-  <syscall name="getdents64" number="4219"/>
-  <syscall name="fcntl64" number="4220"/>
+  <syscall name="mmap2" number="4210" groups="descriptor,memory"/>
+  <syscall name="truncate64" number="4211" groups="file"/>
+  <syscall name="ftruncate64" number="4212" groups="descriptor"/>
+  <syscall name="stat64" number="4213" groups="file"/>
+  <syscall name="lstat64" number="4214" groups="file"/>
+  <syscall name="fstat64" number="4215" groups="descriptor"/>
+  <syscall name="pivot_root" number="4216" groups="file"/>
+  <syscall name="mincore" number="4217" groups="memory"/>
+  <syscall name="madvise" number="4218" groups="memory"/>
+  <syscall name="getdents64" number="4219" groups="descriptor"/>
+  <syscall name="fcntl64" number="4220" groups="descriptor"/>
   <syscall name="gettid" number="4222"/>
-  <syscall name="readahead" number="4223"/>
-  <syscall name="setxattr" number="4224"/>
-  <syscall name="lsetxattr" number="4225"/>
-  <syscall name="fsetxattr" number="4226"/>
-  <syscall name="getxattr" number="4227"/>
-  <syscall name="lgetxattr" number="4228"/>
-  <syscall name="fgetxattr" number="4229"/>
-  <syscall name="listxattr" number="4230"/>
-  <syscall name="llistxattr" number="4231"/>
-  <syscall name="flistxattr" number="4232"/>
-  <syscall name="removexattr" number="4233"/>
-  <syscall name="lremovexattr" number="4234"/>
-  <syscall name="fremovexattr" number="4235"/>
-  <syscall name="tkill" number="4236"/>
-  <syscall name="sendfile64" number="4237"/>
+  <syscall name="readahead" number="4223" groups="descriptor"/>
+  <syscall name="setxattr" number="4224" groups="file"/>
+  <syscall name="lsetxattr" number="4225" groups="file"/>
+  <syscall name="fsetxattr" number="4226" groups="descriptor"/>
+  <syscall name="getxattr" number="4227" groups="file"/>
+  <syscall name="lgetxattr" number="4228" groups="file"/>
+  <syscall name="fgetxattr" number="4229" groups="descriptor"/>
+  <syscall name="listxattr" number="4230" groups="file"/>
+  <syscall name="llistxattr" number="4231" groups="file"/>
+  <syscall name="flistxattr" number="4232" groups="descriptor"/>
+  <syscall name="removexattr" number="4233" groups="file"/>
+  <syscall name="lremovexattr" number="4234" groups="file"/>
+  <syscall name="fremovexattr" number="4235" groups="descriptor"/>
+  <syscall name="tkill" number="4236" groups="signal"/>
+  <syscall name="sendfile64" number="4237" groups="descriptor,network"/>
   <syscall name="futex" number="4238"/>
   <syscall name="sched_setaffinity" number="4239"/>
   <syscall name="sched_getaffinity" number="4240"/>
@@ -252,17 +254,17 @@
   <syscall name="io_getevents" number="4243"/>
   <syscall name="io_submit" number="4244"/>
   <syscall name="io_cancel" number="4245"/>
-  <syscall name="exit_group" number="4246"/>
+  <syscall name="exit_group" number="4246" groups="process"/>
   <syscall name="lookup_dcookie" number="4247"/>
-  <syscall name="epoll_create" number="4248"/>
-  <syscall name="epoll_ctl" number="4249"/>
-  <syscall name="epoll_wait" number="4250"/>
-  <syscall name="remap_file_pages" number="4251"/>
+  <syscall name="epoll_create" number="4248" groups="descriptor"/>
+  <syscall name="epoll_ctl" number="4249" groups="descriptor"/>
+  <syscall name="epoll_wait" number="4250" groups="descriptor"/>
+  <syscall name="remap_file_pages" number="4251" groups="memory"/>
   <syscall name="set_tid_address" number="4252"/>
   <syscall name="restart_syscall" number="4253"/>
   <syscall name="fadvise64" number="4254"/>
-  <syscall name="statfs64" number="4255"/>
-  <syscall name="fstatfs64" number="4256"/>
+  <syscall name="statfs64" number="4255" groups="file"/>
+  <syscall name="fstatfs64" number="4256" groups="descriptor"/>
   <syscall name="timer_create" number="4257"/>
   <syscall name="timer_settime" number="4258"/>
   <syscall name="timer_gettime" number="4259"/>
@@ -272,11 +274,11 @@
   <syscall name="clock_gettime" number="4263"/>
   <syscall name="clock_getres" number="4264"/>
   <syscall name="clock_nanosleep" number="4265"/>
-  <syscall name="tgkill" number="4266"/>
-  <syscall name="utimes" number="4267"/>
-  <syscall name="mbind" number="4268"/>
-  <syscall name="get_mempolicy" number="4269"/>
-  <syscall name="set_mempolicy" number="4270"/>
+  <syscall name="tgkill" number="4266" groups="signal"/>
+  <syscall name="utimes" number="4267" groups="file"/>
+  <syscall name="mbind" number="4268" groups="memory"/>
+  <syscall name="get_mempolicy" number="4269" groups="memory"/>
+  <syscall name="set_mempolicy" number="4270" groups="memory"/>
   <syscall name="mq_open" number="4271"/>
   <syscall name="mq_unlink" number="4272"/>
   <syscall name="mq_timedsend" number="4273"/>
@@ -284,64 +286,64 @@
   <syscall name="mq_notify" number="4275"/>
   <syscall name="mq_getsetattr" number="4276"/>
   <syscall name="vserver" number="4277"/>
-  <syscall name="waitid" number="4278"/>
+  <syscall name="waitid" number="4278" groups="process"/>
   <syscall name="add_key" number="4280"/>
   <syscall name="request_key" number="4281"/>
   <syscall name="keyctl" number="4282"/>
   <syscall name="set_thread_area" number="4283"/>
-  <syscall name="inotify_init" number="4284"/>
-  <syscall name="inotify_add_watch" number="4285"/>
-  <syscall name="inotify_rm_watch" number="4286"/>
-  <syscall name="migrate_pages" number="4287"/>
-  <syscall name="openat" number="4288"/>
-  <syscall name="mkdirat" number="4289"/>
-  <syscall name="mknodat" number="4290"/>
-  <syscall name="fchownat" number="4291"/>
-  <syscall name="futimesat" number="4292"/>
-  <syscall name="fstatat64" number="4293"/>
-  <syscall name="unlinkat" number="4294"/>
-  <syscall name="renameat" number="4295"/>
-  <syscall name="linkat" number="4296"/>
-  <syscall name="symlinkat" number="4297"/>
-  <syscall name="readlinkat" number="4298"/>
-  <syscall name="fchmodat" number="4299"/>
-  <syscall name="faccessat" number="4300"/>
-  <syscall name="pselect6" number="4301"/>
-  <syscall name="ppoll" number="4302"/>
-  <syscall name="unshare" number="4303"/>
-  <syscall name="splice" number="4304"/>
-  <syscall name="sync_file_range" number="4305"/>
-  <syscall name="tee" number="4306"/>
-  <syscall name="vmsplice" number="4307"/>
-  <syscall name="move_pages" number="4308"/>
+  <syscall name="inotify_init" number="4284" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="4285" groups="descriptor"/>
+  <syscall name="inotify_rm_watch" number="4286" groups="descriptor"/>
+  <syscall name="migrate_pages" number="4287" groups="memory"/>
+  <syscall name="openat" number="4288" groups="descriptor,file"/>
+  <syscall name="mkdirat" number="4289" groups="descriptor,file"/>
+  <syscall name="mknodat" number="4290" groups="descriptor,file"/>
+  <syscall name="fchownat" number="4291" groups="descriptor,file"/>
+  <syscall name="futimesat" number="4292" groups="descriptor,file"/>
+  <syscall name="fstatat64" number="4293" groups="descriptor,file"/>
+  <syscall name="unlinkat" number="4294" groups="descriptor,file"/>
+  <syscall name="renameat" number="4295" groups="descriptor,file"/>
+  <syscall name="linkat" number="4296" groups="descriptor,file"/>
+  <syscall name="symlinkat" number="4297" groups="descriptor,file"/>
+  <syscall name="readlinkat" number="4298" groups="descriptor,file"/>
+  <syscall name="fchmodat" number="4299" groups="descriptor,file"/>
+  <syscall name="faccessat" number="4300" groups="descriptor,file"/>
+  <syscall name="pselect6" number="4301" groups="descriptor"/>
+  <syscall name="ppoll" number="4302" groups="descriptor"/>
+  <syscall name="unshare" number="4303" groups="process"/>
+  <syscall name="splice" number="4304" groups="descriptor"/>
+  <syscall name="sync_file_range" number="4305" groups="descriptor"/>
+  <syscall name="tee" number="4306" groups="descriptor"/>
+  <syscall name="vmsplice" number="4307" groups="descriptor"/>
+  <syscall name="move_pages" number="4308" groups="memory"/>
   <syscall name="set_robust_list" number="4309"/>
   <syscall name="get_robust_list" number="4310"/>
   <syscall name="kexec_load" number="4311"/>
   <syscall name="getcpu" number="4312"/>
-  <syscall name="epoll_pwait" number="4313"/>
+  <syscall name="epoll_pwait" number="4313" groups="descriptor"/>
   <syscall name="ioprio_set" number="4314"/>
   <syscall name="ioprio_get" number="4315"/>
   <syscall name="utimensat" number="4316"/>
-  <syscall name="signalfd" number="4317"/>
-  <syscall name="timerfd" number="4318"/>
-  <syscall name="eventfd" number="4319"/>
-  <syscall name="fallocate" number="4320"/>
-  <syscall name="timerfd_create" number="4321"/>
-  <syscall name="timerfd_gettime" number="4322"/>
-  <syscall name="timerfd_settime" number="4323"/>
-  <syscall name="signalfd4" number="4324"/>
-  <syscall name="eventfd2" number="4325"/>
-  <syscall name="epoll_create1" number="4326"/>
-  <syscall name="dup3" number="4327"/>
-  <syscall name="pipe2" number="4328"/>
-  <syscall name="inotify_init1" number="4329"/>
-  <syscall name="preadv" number="4330"/>
-  <syscall name="pwritev" number="4331"/>
-  <syscall name="rt_tgsigqueueinfo" number="4332"/>
-  <syscall name="perf_event_open" number="4333"/>
-  <syscall name="accept4" number="4334"/>
-  <syscall name="recvmmsg" number="4335"/>
-  <syscall name="fanotify_init" number="4336"/>
-  <syscall name="fanotify_mark" number="4337"/>
+  <syscall name="signalfd" number="4317" groups="descriptor,signal"/>
+  <syscall name="timerfd" number="4318" groups="descriptor"/>
+  <syscall name="eventfd" number="4319" groups="descriptor"/>
+  <syscall name="fallocate" number="4320" groups="descriptor"/>
+  <syscall name="timerfd_create" number="4321" groups="descriptor"/>
+  <syscall name="timerfd_gettime" number="4322" groups="descriptor"/>
+  <syscall name="timerfd_settime" number="4323" groups="descriptor"/>
+  <syscall name="signalfd4" number="4324" groups="descriptor,signal"/>
+  <syscall name="eventfd2" number="4325" groups="descriptor"/>
+  <syscall name="epoll_create1" number="4326" groups="descriptor"/>
+  <syscall name="dup3" number="4327" groups="descriptor"/>
+  <syscall name="pipe2" number="4328" groups="descriptor"/>
+  <syscall name="inotify_init1" number="4329" groups="descriptor"/>
+  <syscall name="preadv" number="4330" groups="descriptor"/>
+  <syscall name="pwritev" number="4331" groups="descriptor"/>
+  <syscall name="rt_tgsigqueueinfo" number="4332" groups="process,signal"/>
+  <syscall name="perf_event_open" number="4333" groups="descriptor"/>
+  <syscall name="accept4" number="4334" groups="network"/>
+  <syscall name="recvmmsg" number="4335" groups="network"/>
+  <syscall name="fanotify_init" number="4336" groups="descriptor"/>
+  <syscall name="fanotify_mark" number="4337" groups="descriptor,file"/>
   <syscall name="prlimit64" number="4338"/>
 </syscalls_info>
-- 
1.9.3

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v3 15/17] Create syscall groups for s390x.
  2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
                   ` (13 preceding siblings ...)
  2015-04-26  1:47 ` [PATCH v3 17/17] Create syscall groups for sparc64 Gabriel Krisman Bertazi
@ 2015-04-26  1:47 ` Gabriel Krisman Bertazi
  2015-04-26  1:47 ` [PATCH v3 14/17] Create syscall groups for s390 Gabriel Krisman Bertazi
                   ` (3 subsequent siblings)
  18 siblings, 0 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-04-26  1:47 UTC (permalink / raw)
  To: gdb-patches; +Cc: dje, sergiodj, Gabriel Krisman Bertazi

This commit introduces the following syscall groups for the s390x
architecture: memory, ipc, process, descriptor, signal and file.

Please note that the sorting of the syscalls among these several groups
follows the same structure used in strace.

gdb/

	* syscalls/s390x-linux.xml: Add 'groups' attribute to several
	syscalls on s390x.  Create groups memory, ipc, file, descriptor,
	process and signal.
---
 gdb/syscalls/s390x-linux.xml | 324 ++++++++++++++++++++++---------------------
 1 file changed, 163 insertions(+), 161 deletions(-)

diff --git a/gdb/syscalls/s390x-linux.xml b/gdb/syscalls/s390x-linux.xml
index 7e727fb..2d08d0d 100644
--- a/gdb/syscalls/s390x-linux.xml
+++ b/gdb/syscalls/s390x-linux.xml
@@ -13,122 +13,124 @@
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+<!-- The group field was based on strace.  -->
+
 <syscalls_info>
   <syscall name="exit" number="1"/>
-  <syscall name="fork" number="2"/>
-  <syscall name="read" number="3"/>
-  <syscall name="write" number="4"/>
-  <syscall name="open" number="5"/>
-  <syscall name="close" number="6"/>
+  <syscall name="fork" number="2" groups="process"/>
+  <syscall name="read" number="3" groups="descriptor"/>
+  <syscall name="write" number="4" groups="descriptor"/>
+  <syscall name="open" number="5" groups="descriptor,file"/>
+  <syscall name="close" number="6" groups="descriptor"/>
   <syscall name="restart_syscall" number="7"/>
-  <syscall name="creat" number="8"/>
-  <syscall name="link" number="9"/>
-  <syscall name="unlink" number="10"/>
-  <syscall name="execve" number="11"/>
-  <syscall name="chdir" number="12"/>
-  <syscall name="mknod" number="14"/>
-  <syscall name="chmod" number="15"/>
-  <syscall name="lseek" number="19"/>
+  <syscall name="creat" number="8" groups="descriptor,file"/>
+  <syscall name="link" number="9" groups="file"/>
+  <syscall name="unlink" number="10" groups="file"/>
+  <syscall name="execve" number="11" groups="file,process"/>
+  <syscall name="chdir" number="12" groups="file"/>
+  <syscall name="mknod" number="14" groups="file"/>
+  <syscall name="chmod" number="15" groups="file"/>
+  <syscall name="lseek" number="19" groups="descriptor"/>
   <syscall name="getpid" number="20"/>
-  <syscall name="mount" number="21"/>
-  <syscall name="umount" number="22"/>
+  <syscall name="mount" number="21" groups="file"/>
+  <syscall name="umount" number="22" groups="file"/>
   <syscall name="ptrace" number="26"/>
   <syscall name="alarm" number="27"/>
-  <syscall name="pause" number="29"/>
-  <syscall name="utime" number="30"/>
-  <syscall name="access" number="33"/>
+  <syscall name="pause" number="29" groups="signal"/>
+  <syscall name="utime" number="30" groups="file"/>
+  <syscall name="access" number="33" groups="file"/>
   <syscall name="nice" number="34"/>
   <syscall name="sync" number="36"/>
-  <syscall name="kill" number="37"/>
-  <syscall name="rename" number="38"/>
-  <syscall name="mkdir" number="39"/>
-  <syscall name="rmdir" number="40"/>
-  <syscall name="dup" number="41"/>
-  <syscall name="pipe" number="42"/>
+  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="rename" number="38" groups="file"/>
+  <syscall name="mkdir" number="39" groups="file"/>
+  <syscall name="rmdir" number="40" groups="file"/>
+  <syscall name="dup" number="41" groups="descriptor"/>
+  <syscall name="pipe" number="42" groups="descriptor"/>
   <syscall name="times" number="43"/>
-  <syscall name="brk" number="45"/>
-  <syscall name="signal" number="48"/>
-  <syscall name="acct" number="51"/>
+  <syscall name="brk" number="45" groups="memory"/>
+  <syscall name="signal" number="48" groups="signal"/>
+  <syscall name="acct" number="51" groups="file"/>
   <syscall name="umount2" number="52"/>
-  <syscall name="ioctl" number="54"/>
-  <syscall name="fcntl" number="55"/>
+  <syscall name="ioctl" number="54" groups="descriptor"/>
+  <syscall name="fcntl" number="55" groups="descriptor"/>
   <syscall name="setpgid" number="57"/>
   <syscall name="umask" number="60"/>
-  <syscall name="chroot" number="61"/>
+  <syscall name="chroot" number="61" groups="file"/>
   <syscall name="ustat" number="62"/>
-  <syscall name="dup2" number="63"/>
+  <syscall name="dup2" number="63" groups="descriptor"/>
   <syscall name="getppid" number="64"/>
   <syscall name="getpgrp" number="65"/>
   <syscall name="setsid" number="66"/>
-  <syscall name="sigaction" number="67"/>
-  <syscall name="sigsuspend" number="72"/>
-  <syscall name="sigpending" number="73"/>
+  <syscall name="sigaction" number="67" groups="signal"/>
+  <syscall name="sigsuspend" number="72" groups="signal"/>
+  <syscall name="sigpending" number="73" groups="signal"/>
   <syscall name="sethostname" number="74"/>
   <syscall name="setrlimit" number="75"/>
   <syscall name="getrusage" number="77"/>
   <syscall name="gettimeofday" number="78"/>
   <syscall name="settimeofday" number="79"/>
-  <syscall name="symlink" number="83"/>
-  <syscall name="readlink" number="85"/>
-  <syscall name="uselib" number="86"/>
-  <syscall name="swapon" number="87"/>
+  <syscall name="symlink" number="83" groups="file"/>
+  <syscall name="readlink" number="85" groups="file"/>
+  <syscall name="uselib" number="86" groups="file"/>
+  <syscall name="swapon" number="87" groups="file"/>
   <syscall name="reboot" number="88"/>
   <syscall name="readdir" number="89"/>
-  <syscall name="mmap" number="90"/>
-  <syscall name="munmap" number="91"/>
-  <syscall name="truncate" number="92"/>
-  <syscall name="ftruncate" number="93"/>
-  <syscall name="fchmod" number="94"/>
+  <syscall name="mmap" number="90" groups="descriptor,memory"/>
+  <syscall name="munmap" number="91" groups="memory"/>
+  <syscall name="truncate" number="92" groups="file"/>
+  <syscall name="ftruncate" number="93" groups="descriptor"/>
+  <syscall name="fchmod" number="94" groups="descriptor"/>
   <syscall name="getpriority" number="96"/>
   <syscall name="setpriority" number="97"/>
-  <syscall name="statfs" number="99"/>
-  <syscall name="fstatfs" number="100"/>
-  <syscall name="socketcall" number="102"/>
+  <syscall name="statfs" number="99" groups="file"/>
+  <syscall name="fstatfs" number="100" groups="descriptor"/>
+  <syscall name="socketcall" number="102" groups="descriptor"/>
   <syscall name="syslog" number="103"/>
   <syscall name="setitimer" number="104"/>
   <syscall name="getitimer" number="105"/>
-  <syscall name="stat" number="106"/>
-  <syscall name="lstat" number="107"/>
-  <syscall name="fstat" number="108"/>
+  <syscall name="stat" number="106" groups="file"/>
+  <syscall name="lstat" number="107" groups="file"/>
+  <syscall name="fstat" number="108" groups="descriptor"/>
   <syscall name="lookup_dcookie" number="110"/>
   <syscall name="vhangup" number="111"/>
   <syscall name="idle" number="112"/>
-  <syscall name="wait4" number="114"/>
-  <syscall name="swapoff" number="115"/>
+  <syscall name="wait4" number="114" groups="process"/>
+  <syscall name="swapoff" number="115" groups="file"/>
   <syscall name="sysinfo" number="116"/>
-  <syscall name="ipc" number="117"/>
-  <syscall name="fsync" number="118"/>
-  <syscall name="sigreturn" number="119"/>
-  <syscall name="clone" number="120"/>
+  <syscall name="ipc" number="117" groups="ipc"/>
+  <syscall name="fsync" number="118" groups="descriptor"/>
+  <syscall name="sigreturn" number="119" groups="signal"/>
+  <syscall name="clone" number="120" groups="process"/>
   <syscall name="setdomainname" number="121"/>
   <syscall name="uname" number="122"/>
   <syscall name="adjtimex" number="124"/>
-  <syscall name="mprotect" number="125"/>
-  <syscall name="sigprocmask" number="126"/>
+  <syscall name="mprotect" number="125" groups="memory"/>
+  <syscall name="sigprocmask" number="126" groups="signal"/>
   <syscall name="create_module" number="127"/>
   <syscall name="init_module" number="128"/>
   <syscall name="delete_module" number="129"/>
   <syscall name="get_kernel_syms" number="130"/>
-  <syscall name="quotactl" number="131"/>
+  <syscall name="quotactl" number="131" groups="file"/>
   <syscall name="getpgid" number="132"/>
-  <syscall name="fchdir" number="133"/>
+  <syscall name="fchdir" number="133" groups="descriptor"/>
   <syscall name="bdflush" number="134"/>
   <syscall name="sysfs" number="135"/>
   <syscall name="personality" number="136"/>
   <syscall name="afs_syscall" number="137"/>
-  <syscall name="getdents" number="141"/>
-  <syscall name="select" number="142"/>
-  <syscall name="flock" number="143"/>
-  <syscall name="msync" number="144"/>
-  <syscall name="readv" number="145"/>
-  <syscall name="writev" number="146"/>
+  <syscall name="getdents" number="141" groups="descriptor"/>
+  <syscall name="select" number="142" groups="descriptor"/>
+  <syscall name="flock" number="143" groups="descriptor"/>
+  <syscall name="msync" number="144" groups="memory"/>
+  <syscall name="readv" number="145" groups="descriptor"/>
+  <syscall name="writev" number="146" groups="descriptor"/>
   <syscall name="getsid" number="147"/>
-  <syscall name="fdatasync" number="148"/>
+  <syscall name="fdatasync" number="148" groups="descriptor"/>
   <syscall name="_sysctl" number="149"/>
-  <syscall name="mlock" number="150"/>
-  <syscall name="munlock" number="151"/>
-  <syscall name="mlockall" number="152"/>
-  <syscall name="munlockall" number="153"/>
+  <syscall name="mlock" number="150" groups="memory"/>
+  <syscall name="munlock" number="151" groups="memory"/>
+  <syscall name="mlockall" number="152" groups="memory"/>
+  <syscall name="munlockall" number="153" groups="memory"/>
   <syscall name="sched_setparam" number="154"/>
   <syscall name="sched_getparam" number="155"/>
   <syscall name="sched_setscheduler" number="156"/>
@@ -138,30 +140,30 @@
   <syscall name="sched_get_priority_min" number="160"/>
   <syscall name="sched_rr_get_interval" number="161"/>
   <syscall name="nanosleep" number="162"/>
-  <syscall name="mremap" number="163"/>
+  <syscall name="mremap" number="163" groups="memory"/>
   <syscall name="query_module" number="167"/>
-  <syscall name="poll" number="168"/>
+  <syscall name="poll" number="168" groups="descriptor"/>
   <syscall name="nfsservctl" number="169"/>
   <syscall name="prctl" number="172"/>
-  <syscall name="rt_sigreturn" number="173"/>
-  <syscall name="rt_sigaction" number="174"/>
-  <syscall name="rt_sigprocmask" number="175"/>
-  <syscall name="rt_sigpending" number="176"/>
-  <syscall name="rt_sigtimedwait" number="177"/>
-  <syscall name="rt_sigqueueinfo" number="178"/>
-  <syscall name="rt_sigsuspend" number="179"/>
+  <syscall name="rt_sigreturn" number="173" groups="signal"/>
+  <syscall name="rt_sigaction" number="174" groups="signal"/>
+  <syscall name="rt_sigprocmask" number="175" groups="signal"/>
+  <syscall name="rt_sigpending" number="176" groups="signal"/>
+  <syscall name="rt_sigtimedwait" number="177" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="178" groups="signal"/>
+  <syscall name="rt_sigsuspend" number="179" groups="signal"/>
   <syscall name="pread64" number="180"/>
   <syscall name="pwrite64" number="181"/>
-  <syscall name="getcwd" number="183"/>
+  <syscall name="getcwd" number="183" groups="file"/>
   <syscall name="capget" number="184"/>
   <syscall name="capset" number="185"/>
-  <syscall name="sigaltstack" number="186"/>
-  <syscall name="sendfile" number="187"/>
+  <syscall name="sigaltstack" number="186" groups="signal"/>
+  <syscall name="sendfile" number="187" groups="descriptor,network"/>
   <syscall name="getpmsg" number="188"/>
   <syscall name="putpmsg" number="189"/>
-  <syscall name="vfork" number="190"/>
+  <syscall name="vfork" number="190" groups="process"/>
   <syscall name="getrlimit" number="191"/>
-  <syscall name="lchown" number="198"/>
+  <syscall name="lchown" number="198" groups="file"/>
   <syscall name="getuid" number="199"/>
   <syscall name="getgid" number="200"/>
   <syscall name="geteuid" number="201"/>
@@ -170,50 +172,50 @@
   <syscall name="setregid" number="204"/>
   <syscall name="getgroups" number="205"/>
   <syscall name="setgroups" number="206"/>
-  <syscall name="fchown" number="207"/>
+  <syscall name="fchown" number="207" groups="descriptor"/>
   <syscall name="setresuid" number="208"/>
   <syscall name="getresuid" number="209"/>
   <syscall name="setresgid" number="210"/>
   <syscall name="getresgid" number="211"/>
-  <syscall name="chown" number="212"/>
+  <syscall name="chown" number="212" groups="file"/>
   <syscall name="setuid" number="213"/>
   <syscall name="setgid" number="214"/>
   <syscall name="setfsuid" number="215"/>
   <syscall name="setfsgid" number="216"/>
-  <syscall name="pivot_root" number="217"/>
-  <syscall name="mincore" number="218"/>
-  <syscall name="madvise" number="219"/>
-  <syscall name="getdents64" number="220"/>
-  <syscall name="readahead" number="222"/>
-  <syscall name="setxattr" number="224"/>
-  <syscall name="lsetxattr" number="225"/>
-  <syscall name="fsetxattr" number="226"/>
-  <syscall name="getxattr" number="227"/>
-  <syscall name="lgetxattr" number="228"/>
-  <syscall name="fgetxattr" number="229"/>
-  <syscall name="listxattr" number="230"/>
-  <syscall name="llistxattr" number="231"/>
-  <syscall name="flistxattr" number="232"/>
-  <syscall name="removexattr" number="233"/>
-  <syscall name="lremovexattr" number="234"/>
-  <syscall name="fremovexattr" number="235"/>
+  <syscall name="pivot_root" number="217" groups="file"/>
+  <syscall name="mincore" number="218" groups="memory"/>
+  <syscall name="madvise" number="219" groups="memory"/>
+  <syscall name="getdents64" number="220" groups="descriptor"/>
+  <syscall name="readahead" number="222" groups="descriptor"/>
+  <syscall name="setxattr" number="224" groups="file"/>
+  <syscall name="lsetxattr" number="225" groups="file"/>
+  <syscall name="fsetxattr" number="226" groups="descriptor"/>
+  <syscall name="getxattr" number="227" groups="file"/>
+  <syscall name="lgetxattr" number="228" groups="file"/>
+  <syscall name="fgetxattr" number="229" groups="descriptor"/>
+  <syscall name="listxattr" number="230" groups="file"/>
+  <syscall name="llistxattr" number="231" groups="file"/>
+  <syscall name="flistxattr" number="232" groups="descriptor"/>
+  <syscall name="removexattr" number="233" groups="file"/>
+  <syscall name="lremovexattr" number="234" groups="file"/>
+  <syscall name="fremovexattr" number="235" groups="descriptor"/>
   <syscall name="gettid" number="236"/>
-  <syscall name="tkill" number="237"/>
+  <syscall name="tkill" number="237" groups="signal"/>
   <syscall name="futex" number="238"/>
   <syscall name="sched_setaffinity" number="239"/>
   <syscall name="sched_getaffinity" number="240"/>
-  <syscall name="tgkill" number="241"/>
+  <syscall name="tgkill" number="241" groups="signal"/>
   <syscall name="io_setup" number="243"/>
   <syscall name="io_destroy" number="244"/>
   <syscall name="io_getevents" number="245"/>
   <syscall name="io_submit" number="246"/>
   <syscall name="io_cancel" number="247"/>
-  <syscall name="exit_group" number="248"/>
-  <syscall name="epoll_create" number="249"/>
-  <syscall name="epoll_ctl" number="250"/>
-  <syscall name="epoll_wait" number="251"/>
+  <syscall name="exit_group" number="248" groups="process"/>
+  <syscall name="epoll_create" number="249" groups="descriptor"/>
+  <syscall name="epoll_ctl" number="250" groups="descriptor"/>
+  <syscall name="epoll_wait" number="251" groups="descriptor"/>
   <syscall name="set_tid_address" number="252"/>
-  <syscall name="fadvise64" number="253"/>
+  <syscall name="fadvise64" number="253" groups="descriptor"/>
   <syscall name="timer_create" number="254"/>
   <syscall name="timer_settime" number="255"/>
   <syscall name="timer_gettime" number="256"/>
@@ -223,9 +225,9 @@
   <syscall name="clock_gettime" number="260"/>
   <syscall name="clock_getres" number="261"/>
   <syscall name="clock_nanosleep" number="262"/>
-  <syscall name="statfs64" number="265"/>
-  <syscall name="fstatfs64" number="266"/>
-  <syscall name="remap_file_pages" number="267"/>
+  <syscall name="statfs64" number="265" groups="file"/>
+  <syscall name="fstatfs64" number="266" groups="descriptor"/>
+  <syscall name="remap_file_pages" number="267" groups="memory"/>
   <syscall name="mq_open" number="271"/>
   <syscall name="mq_unlink" number="272"/>
   <syscall name="mq_timedsend" number="273"/>
@@ -236,61 +238,61 @@
   <syscall name="add_key" number="278"/>
   <syscall name="request_key" number="279"/>
   <syscall name="keyctl" number="280"/>
-  <syscall name="waitid" number="281"/>
+  <syscall name="waitid" number="281" groups="process"/>
   <syscall name="ioprio_set" number="282"/>
   <syscall name="ioprio_get" number="283"/>
-  <syscall name="inotify_init" number="284"/>
-  <syscall name="inotify_add_watch" number="285"/>
-  <syscall name="inotify_rm_watch" number="286"/>
-  <syscall name="openat" number="288"/>
-  <syscall name="mkdirat" number="289"/>
-  <syscall name="mknodat" number="290"/>
-  <syscall name="fchownat" number="291"/>
-  <syscall name="futimesat" number="292"/>
-  <syscall name="newfstatat" number="293"/>
-  <syscall name="unlinkat" number="294"/>
-  <syscall name="renameat" number="295"/>
-  <syscall name="linkat" number="296"/>
-  <syscall name="symlinkat" number="297"/>
-  <syscall name="readlinkat" number="298"/>
-  <syscall name="fchmodat" number="299"/>
-  <syscall name="faccessat" number="300"/>
-  <syscall name="pselect6" number="301"/>
-  <syscall name="ppoll" number="302"/>
-  <syscall name="unshare" number="303"/>
+  <syscall name="inotify_init" number="284" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="285" groups="descriptor"/>
+  <syscall name="inotify_rm_watch" number="286" groups="descriptor"/>
+  <syscall name="openat" number="288" groups="descriptor,file"/>
+  <syscall name="mkdirat" number="289" groups="descriptor,file"/>
+  <syscall name="mknodat" number="290" groups="descriptor,file"/>
+  <syscall name="fchownat" number="291" groups="descriptor,file"/>
+  <syscall name="futimesat" number="292" groups="descriptor,file"/>
+  <syscall name="newfstatat" number="293" groups="descriptor,file"/>
+  <syscall name="unlinkat" number="294" groups="descriptor,file"/>
+  <syscall name="renameat" number="295" groups="descriptor,file"/>
+  <syscall name="linkat" number="296" groups="descriptor,file"/>
+  <syscall name="symlinkat" number="297" groups="descriptor,file"/>
+  <syscall name="readlinkat" number="298" groups="descriptor,file"/>
+  <syscall name="fchmodat" number="299" groups="descriptor,file"/>
+  <syscall name="faccessat" number="300" groups="descriptor,file"/>
+  <syscall name="pselect6" number="301" groups="descriptor"/>
+  <syscall name="ppoll" number="302" groups="descriptor"/>
+  <syscall name="unshare" number="303" groups="process"/>
   <syscall name="set_robust_list" number="304"/>
   <syscall name="get_robust_list" number="305"/>
-  <syscall name="splice" number="306"/>
-  <syscall name="sync_file_range" number="307"/>
-  <syscall name="tee" number="308"/>
-  <syscall name="vmsplice" number="309"/>
+  <syscall name="splice" number="306" groups="descriptor"/>
+  <syscall name="sync_file_range" number="307" groups="descriptor"/>
+  <syscall name="tee" number="308" groups="descriptor"/>
+  <syscall name="vmsplice" number="309" groups="descriptor"/>
   <syscall name="getcpu" number="311"/>
-  <syscall name="epoll_pwait" number="312"/>
-  <syscall name="utimes" number="313"/>
-  <syscall name="fallocate" number="314"/>
-  <syscall name="utimensat" number="315"/>
-  <syscall name="signalfd" number="316"/>
-  <syscall name="timerfd" number="317"/>
-  <syscall name="eventfd" number="318"/>
-  <syscall name="timerfd_create" number="319"/>
-  <syscall name="timerfd_settime" number="320"/>
-  <syscall name="timerfd_gettime" number="321"/>
-  <syscall name="signalfd4" number="322"/>
-  <syscall name="eventfd2" number="323"/>
-  <syscall name="inotify_init1" number="324"/>
-  <syscall name="pipe2" number="325"/>
-  <syscall name="dup3" number="326"/>
-  <syscall name="epoll_create1" number="327"/>
-  <syscall name="rt_tgsigqueueinfo" number="330"/>
-  <syscall name="perf_event_open" number="331"/>
-  <syscall name="fanotify_init" number="332"/>
-  <syscall name="fanotify_mark" number="333"/>
+  <syscall name="epoll_pwait" number="312" groups="descriptor"/>
+  <syscall name="utimes" number="313" groups="file"/>
+  <syscall name="fallocate" number="314" groups="descriptor"/>
+  <syscall name="utimensat" number="315" groups="descriptor,file"/>
+  <syscall name="signalfd" number="316" groups="descriptor,signal"/>
+  <syscall name="timerfd" number="317" groups="descriptor"/>
+  <syscall name="eventfd" number="318" groups="descriptor"/>
+  <syscall name="timerfd_create" number="319" groups="descriptor"/>
+  <syscall name="timerfd_settime" number="320" groups="descriptor"/>
+  <syscall name="timerfd_gettime" number="321" groups="descriptor"/>
+  <syscall name="signalfd4" number="322" groups="descriptor,signal"/>
+  <syscall name="eventfd2" number="323" groups="descriptor"/>
+  <syscall name="inotify_init1" number="324" groups="descriptor"/>
+  <syscall name="pipe2" number="325" groups="descriptor"/>
+  <syscall name="dup3" number="326" groups="descriptor"/>
+  <syscall name="epoll_create1" number="327" groups="descriptor"/>
+  <syscall name="rt_tgsigqueueinfo" number="330" groups="process,signal"/>
+  <syscall name="perf_event_open" number="331" groups="descriptor"/>
+  <syscall name="fanotify_init" number="332" groups="descriptor"/>
+  <syscall name="fanotify_mark" number="333" groups="descriptor,file"/>
   <syscall name="prlimit64" number="334"/>
-  <syscall name="name_to_handle_at" number="335"/>
-  <syscall name="open_by_handle_at" number="336"/>
+  <syscall name="name_to_handle_at" number="335" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" number="336" groups="descriptor"/>
   <syscall name="clock_adjtime" number="337"/>
-  <syscall name="syncfs" number="338"/>
-  <syscall name="setns" number="339"/>
+  <syscall name="syncfs" number="338" groups="descriptor"/>
+  <syscall name="setns" number="339" groups="descriptor"/>
   <syscall name="process_vm_readv" number="340"/>
   <syscall name="process_vm_writev" number="341"/>
   <syscall name="s390_runtime_instr" number="342"/>
-- 
1.9.3

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v3 17/17] Create syscall groups for sparc64.
  2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
                   ` (12 preceding siblings ...)
  2015-04-26  1:47 ` [PATCH v3 16/17] Create syscall groups for sparc Gabriel Krisman Bertazi
@ 2015-04-26  1:47 ` Gabriel Krisman Bertazi
  2015-04-26  1:47 ` [PATCH v3 15/17] Create syscall groups for s390x Gabriel Krisman Bertazi
                   ` (4 subsequent siblings)
  18 siblings, 0 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-04-26  1:47 UTC (permalink / raw)
  To: gdb-patches; +Cc: dje, sergiodj, Gabriel Krisman Bertazi

This commit introduces the following syscall groups for the sparc64
architecture: memory, ipc, process, descriptor, signal and file.

Please note that the sorting of the syscalls among these several groups
follows the same structure used in strace.

gdb/

	* syscalls/sparc64-linux.xml: Add 'groups' attribute to several
	syscalls on sparc64.  Create groups memory, ipc, file,
	descriptor, process and signal.
---
 gdb/syscalls/sparc64-linux.xml | 332 +++++++++++++++++++++--------------------
 1 file changed, 167 insertions(+), 165 deletions(-)

diff --git a/gdb/syscalls/sparc64-linux.xml b/gdb/syscalls/sparc64-linux.xml
index c7c149d..358c3f9 100644
--- a/gdb/syscalls/sparc64-linux.xml
+++ b/gdb/syscalls/sparc64-linux.xml
@@ -13,27 +13,29 @@
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+<!-- The group field was based on strace.  -->
+
 <syscalls_info>
   <syscall name="restart_syscall" number="0"/>
-  <syscall name="exit" number="1"/>
-  <syscall name="fork" number="2"/>
-  <syscall name="read" number="3"/>
-  <syscall name="write" number="4"/>
-  <syscall name="open" number="5"/>
-  <syscall name="close" number="6"/>
-  <syscall name="wait4" number="7"/>
-  <syscall name="creat" number="8"/>
-  <syscall name="link" number="9"/>
-  <syscall name="unlink" number="10"/>
-  <syscall name="execv" number="11"/>
-  <syscall name="chdir" number="12"/>
+  <syscall name="exit" number="1" groups="process"/>
+  <syscall name="fork" number="2" groups="process"/>
+  <syscall name="read" number="3" groups="descriptor"/>
+  <syscall name="write" number="4" groups="descriptor"/>
+  <syscall name="open" number="5" groups="descriptor,file"/>
+  <syscall name="close" number="6" groups="descriptor"/>
+  <syscall name="wait4" number="7" groups="process"/>
+  <syscall name="creat" number="8" groups="descriptor,file"/>
+  <syscall name="link" number="9" groups="file"/>
+  <syscall name="unlink" number="10" groups="file"/>
+  <syscall name="execv" number="11" groups="file,process"/>
+  <syscall name="chdir" number="12" groups="file"/>
   <syscall name="chown"	number="13"/>
-  <syscall name="mknod" number="14"/>
-  <syscall name="chmod" number="15"/>
-  <syscall name="lchown" number="16"/>
-  <syscall name="brk" number="17"/>
+  <syscall name="mknod" number="14" groups="file"/>
+  <syscall name="chmod" number="15" groups="file"/>
+  <syscall name="lchown" number="16" groups="file"/>
+  <syscall name="brk" number="17" groups="memory"/>
   <syscall name="perfctr" number="18"/>
-  <syscall name="lseek" number="19"/>
+  <syscall name="lseek" number="19" groups="descriptor"/>
   <syscall name="getpid" number="20"/>
   <syscall name="capget" number="21"/>
   <syscall name="capset" number="22"/>
@@ -43,61 +45,61 @@
   <syscall name="ptrace" number="26"/>
   <syscall name="alarm" number="27"/>
   <syscall name="sigaltstack" number="28"/>
-  <syscall name="pause" number="29"/>
-  <syscall name="utime" number="30"/>
-  <syscall name="access" number="33"/>
+  <syscall name="pause" number="29" groups="signal"/>
+  <syscall name="utime" number="30" groups="file"/>
+  <syscall name="access" number="33" groups="file"/>
   <syscall name="nice" number="34"/>
   <syscall name="sync" number="36"/>
-  <syscall name="kill" number="37"/>
-  <syscall name="stat" number="38"/>
-  <syscall name="sendfile" number="39"/>
-  <syscall name="lstat" number="40"/>
-  <syscall name="dup" number="41"/>
-  <syscall name="pipe" number="42"/>
+  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="stat" number="38" groups="file"/>
+  <syscall name="sendfile" number="39" groups="descriptor,network"/>
+  <syscall name="lstat" number="40" groups="file"/>
+  <syscall name="dup" number="41" groups="descriptor"/>
+  <syscall name="pipe" number="42" groups="descriptor"/>
   <syscall name="times" number="43"/>
   <syscall name="umount2" number="45"/>
   <syscall name="setgid" number="46"/>
   <syscall name="getgid" number="47"/>
-  <syscall name="signal" number="48"/>
+  <syscall name="signal" number="48" groups="signal"/>
   <syscall name="geteuid" number="49"/>
   <syscall name="getegid" number="50"/>
-  <syscall name="acct" number="51"/>
+  <syscall name="acct" number="51" groups="file"/>
   <syscall name="memory_ordering" number="52"/>
-  <syscall name="ioctl" number="54"/>
+  <syscall name="ioctl" number="54" groups="descriptor"/>
   <syscall name="reboot" number="55"/>
-  <syscall name="symlink" number="57"/>
-  <syscall name="readlink" number="58"/>
-  <syscall name="execve" number="59"/>
+  <syscall name="symlink" number="57" groups="file"/>
+  <syscall name="readlink" number="58" groups="file"/>
+  <syscall name="execve" number="59" groups="file,process"/>
   <syscall name="umask" number="60"/>
-  <syscall name="chroot" number="61"/>
-  <syscall name="fstat" number="62"/>
-  <syscall name="fstat64" number="63"/>
+  <syscall name="chroot" number="61" groups="file"/>
+  <syscall name="fstat" number="62" groups="descriptor"/>
+  <syscall name="fstat64" number="63" groups="descriptor"/>
   <syscall name="getpagesize" number="64"/>
-  <syscall name="msync" number="65"/>
-  <syscall name="vfork" number="66"/>
+  <syscall name="msync" number="65" groups="memory"/>
+  <syscall name="vfork" number="66" groups="process"/>
   <syscall name="pread64" number="67"/>
   <syscall name="pwrite64" number="68"/>
-  <syscall name="mmap" number="71"/>
-  <syscall name="munmap" number="73"/>
-  <syscall name="mprotect" number="74"/>
-  <syscall name="madvise" number="75"/>
+  <syscall name="mmap" number="71" groups="descriptor,memory"/>
+  <syscall name="munmap" number="73" groups="memory"/>
+  <syscall name="mprotect" number="74" groups="memory"/>
+  <syscall name="madvise" number="75" groups="memory"/>
   <syscall name="vhangup" number="76"/>
-  <syscall name="mincore" number="78"/>
+  <syscall name="mincore" number="78" groups="memory"/>
   <syscall name="getgroups" number="79"/>
   <syscall name="setgroups" number="80"/>
   <syscall name="getpgrp" number="81"/>
   <syscall name="setitimer" number="83"/>
-  <syscall name="swapon" number="85"/>
+  <syscall name="swapon" number="85" groups="file"/>
   <syscall name="getitimer" number="86"/>
   <syscall name="sethostname" number="88"/>
-  <syscall name="dup2" number="90"/>
-  <syscall name="fcntl" number="92"/>
-  <syscall name="select" number="93"/>
-  <syscall name="fsync" number="95"/>
+  <syscall name="dup2" number="90" groups="descriptor"/>
+  <syscall name="fcntl" number="92" groups="descriptor"/>
+  <syscall name="select" number="93" groups="descriptor"/>
+  <syscall name="fsync" number="95" groups="descriptor"/>
   <syscall name="setpriority" number="96"/>
-  <syscall name="socket" number="97"/>
-  <syscall name="connect" number="98"/>
-  <syscall name="accept" number="99"/>
+  <syscall name="socket" number="97" groups="network"/>
+  <syscall name="connect" number="98" groups="network"/>
+  <syscall name="accept" number="99" groups="network"/>
   <syscall name="getpriority" number="100"/>
   <syscall name="rt_sigreturn" number="101"/>
   <syscall name="rt_sigaction" number="102"/>
@@ -110,109 +112,109 @@
   <syscall name="getresuid" number="109"/>
   <syscall name="setresgid" number="110"/>
   <syscall name="getresgid" number="111"/>
-  <syscall name="recvmsg" number="113"/>
-  <syscall name="sendmsg" number="114"/>
+  <syscall name="recvmsg" number="113" groups="network"/>
+  <syscall name="sendmsg" number="114" groups="network"/>
   <syscall name="gettimeofday" number="116"/>
   <syscall name="getrusage" number="117"/>
-  <syscall name="getsockopt" number="118"/>
-  <syscall name="getcwd" number="119"/>
-  <syscall name="readv" number="120"/>
-  <syscall name="writev" number="121"/>
+  <syscall name="getsockopt" number="118" groups="network"/>
+  <syscall name="getcwd" number="119" groups="file"/>
+  <syscall name="readv" number="120" groups="descriptor"/>
+  <syscall name="writev" number="121" groups="descriptor"/>
   <syscall name="settimeofday" number="122"/>
-  <syscall name="fchown" number="123"/>
-  <syscall name="fchmod" number="124"/>
-  <syscall name="recvfrom" number="125"/>
+  <syscall name="fchown" number="123" groups="descriptor"/>
+  <syscall name="fchmod" number="124" groups="descriptor"/>
+  <syscall name="recvfrom" number="125" groups="network"/>
   <syscall name="setreuid" number="126"/>
   <syscall name="setregid" number="127"/>
-  <syscall name="rename" number="128"/>
-  <syscall name="truncate" number="129"/>
-  <syscall name="ftruncate" number="130"/>
-  <syscall name="flock" number="131"/>
-  <syscall name="lstat64" number="132"/>
-  <syscall name="sendto" number="133"/>
-  <syscall name="shutdown" number="134"/>
-  <syscall name="socketpair" number="135"/>
-  <syscall name="mkdir" number="136"/>
-  <syscall name="rmdir" number="137"/>
-  <syscall name="utimes" number="138"/>
-  <syscall name="stat64" number="139"/>
-  <syscall name="sendfile64" number="140"/>
-  <syscall name="getpeername" number="141"/>
+  <syscall name="rename" number="128" groups="file"/>
+  <syscall name="truncate" number="129" groups="file"/>
+  <syscall name="ftruncate" number="130" groups="descriptor"/>
+  <syscall name="flock" number="131" groups="descriptor"/>
+  <syscall name="lstat64" number="132" groups="file"/>
+  <syscall name="sendto" number="133" groups="network"/>
+  <syscall name="shutdown" number="134" groups="network"/>
+  <syscall name="socketpair" number="135" groups="network"/>
+  <syscall name="mkdir" number="136" groups="file"/>
+  <syscall name="rmdir" number="137" groups="file"/>
+  <syscall name="utimes" number="138" groups="file"/>
+  <syscall name="stat64" number="139" groups="file"/>
+  <syscall name="sendfile64" number="140" groups="descriptor,network"/>
+  <syscall name="getpeername" number="141" groups="network"/>
   <syscall name="futex" number="142"/>
   <syscall name="gettid" number="143"/>
   <syscall name="getrlimit" number="144"/>
   <syscall name="setrlimit" number="145"/>
-  <syscall name="pivot_root" number="146"/>
+  <syscall name="pivot_root" number="146" groups="file"/>
   <syscall name="prctl" number="147"/>
   <syscall name="pciconfig_read" number="148"/>
   <syscall name="pciconfig_write" number="149"/>
-  <syscall name="getsockname" number="150"/>
+  <syscall name="getsockname" number="150" groups="network"/>
   <syscall name="inotify_init" number="151"/>
   <syscall name="inotify_add_watch" number="152"/>
-  <syscall name="poll" number="153"/>
-  <syscall name="getdents64" number="154"/>
+  <syscall name="poll" number="153" groups="descriptor"/>
+  <syscall name="getdents64" number="154" groups="descriptor"/>
   <syscall name="inotify_rm_watch" number="156"/>
-  <syscall name="statfs" number="157"/>
-  <syscall name="fstatfs" number="158"/>
-  <syscall name="umount" number="159"/>
+  <syscall name="statfs" number="157" groups="file"/>
+  <syscall name="fstatfs" number="158" groups="descriptor"/>
+  <syscall name="umount" number="159" groups="file"/>
   <syscall name="sched_set_affinity" number="160"/>
   <syscall name="sched_get_affinity" number="161"/>
   <syscall name="getdomainname" number="162"/>
   <syscall name="setdomainname" number="163"/>
   <syscall name="utrap_install" number="164"/>
-  <syscall name="quotactl" number="165"/>
+  <syscall name="quotactl" number="165" groups="file"/>
   <syscall name="set_tid_address" number="166"/>
-  <syscall name="mount" number="167"/>
+  <syscall name="mount" number="167" groups="file"/>
   <syscall name="ustat" number="168"/>
-  <syscall name="setxattr" number="169"/>
-  <syscall name="lsetxattr" number="170"/>
-  <syscall name="fsetxattr" number="171"/>
-  <syscall name="getxattr" number="172"/>
-  <syscall name="lgetxattr" number="173"/>
-  <syscall name="getdents" number="174"/>
+  <syscall name="setxattr" number="169" groups="file"/>
+  <syscall name="lsetxattr" number="170" groups="file"/>
+  <syscall name="fsetxattr" number="171" groups="descriptor"/>
+  <syscall name="getxattr" number="172" groups="file"/>
+  <syscall name="lgetxattr" number="173" groups="file"/>
+  <syscall name="getdents" number="174" groups="descriptor"/>
   <syscall name="setsid" number="175"/>
-  <syscall name="fchdir" number="176"/>
-  <syscall name="fgetxattr" number="177"/>
-  <syscall name="listxattr" number="178"/>
-  <syscall name="llistxattr" number="179"/>
-  <syscall name="flistxattr" number="180"/>
+  <syscall name="fchdir" number="176" groups="descriptor"/>
+  <syscall name="fgetxattr" number="177" groups="descriptor"/>
+  <syscall name="listxattr" number="178" groups="file"/>
+  <syscall name="llistxattr" number="179" groups="file"/>
+  <syscall name="flistxattr" number="180" groups="descriptor"/>
   <syscall name="removexattr" number="181"/>
   <syscall name="lremovexattr" number="182"/>
-  <syscall name="sigpending" number="183"/>
+  <syscall name="sigpending" number="183" groups="signal"/>
   <syscall name="query_module" number="184"/>
   <syscall name="setpgid" number="185"/>
   <syscall name="fremovexattr" number="186"/>
-  <syscall name="tkill" number="187"/>
-  <syscall name="exit_group" number="188"/>
+  <syscall name="tkill" number="187" groups="signal"/>
+  <syscall name="exit_group" number="188" groups="process"/>
   <syscall name="uname" number="189"/>
   <syscall name="init_module" number="190"/>
   <syscall name="personality" number="191"/>
   <syscall name="remap_file_pages" number="192"/>
   <syscall name="epoll_create" number="193"/>
-  <syscall name="epoll_ctl" number="194"/>
-  <syscall name="epoll_wait" number="195"/>
+  <syscall name="epoll_ctl" number="194" groups="descriptor"/>
+  <syscall name="epoll_wait" number="195" groups="descriptor"/>
   <syscall name="ioprio_set" number="196"/>
   <syscall name="getppid" number="197"/>
-  <syscall name="sigaction" number="198"/>
-  <syscall name="sgetmask" number="199"/>
-  <syscall name="ssetmask" number="200"/>
-  <syscall name="sigsuspend" number="201"/>
+  <syscall name="sigaction" number="198" groups="signal"/>
+  <syscall name="sgetmask" number="199" groups="signal"/>
+  <syscall name="ssetmask" number="200" groups="signal"/>
+  <syscall name="sigsuspend" number="201" groups="signal"/>
   <syscall name="oldlstat" number="202"/>
-  <syscall name="uselib" number="203"/>
-  <syscall name="readdir" number="204"/>
-  <syscall name="readahead" number="205"/>
-  <syscall name="socketcall" number="206"/>
+  <syscall name="uselib" number="203" groups="file"/>
+  <syscall name="readdir" number="204" groups="descriptor"/>
+  <syscall name="readahead" number="205" groups="descriptor"/>
+  <syscall name="socketcall" number="206" groups="descriptor"/>
   <syscall name="syslog" number="207"/>
   <syscall name="lookup_dcookie" number="208"/>
-  <syscall name="fadvise64" number="209"/>
+  <syscall name="fadvise64" number="209" groups="descriptor"/>
   <syscall name="fadvise64_64" number="210"/>
-  <syscall name="tgkill" number="211"/>
-  <syscall name="waitpid" number="212"/>
-  <syscall name="swapoff" number="213"/>
+  <syscall name="tgkill" number="211" groups="signal"/>
+  <syscall name="waitpid" number="212" groups="process"/>
+  <syscall name="swapoff" number="213" groups="file"/>
   <syscall name="sysinfo" number="214"/>
-  <syscall name="ipc" number="215"/>
-  <syscall name="sigreturn" number="216"/>
-  <syscall name="clone" number="217"/>
+  <syscall name="ipc" number="215" groups="ipc"/>
+  <syscall name="sigreturn" number="216" groups="signal"/>
+  <syscall name="clone" number="217" groups="process"/>
   <syscall name="ioprio_get" number="218"/>
   <syscall name="adjtimex" number="219"/>
   <syscall name="sigprocmask" number="220"/>
@@ -228,13 +230,13 @@
   <syscall name="_newselect" number="230"/>
   <syscall name="splice" number="232"/>
   <syscall name="stime" number="233"/>
-  <syscall name="statfs64" number="234"/>
-  <syscall name="fstatfs64" number="235"/>
-  <syscall name="_llseek" number="236"/>
-  <syscall name="mlock" number="237"/>
-  <syscall name="munlock" number="238"/>
-  <syscall name="mlockall" number="239"/>
-  <syscall name="munlockall" number="240"/>
+  <syscall name="statfs64" number="234" groups="file"/>
+  <syscall name="fstatfs64" number="235" groups="descriptor"/>
+  <syscall name="_llseek" number="236" groups="descriptor"/>
+  <syscall name="mlock" number="237" groups="memory"/>
+  <syscall name="munlock" number="238" groups="memory"/>
+  <syscall name="mlockall" number="239" groups="memory"/>
+  <syscall name="munlockall" number="240" groups="memory"/>
   <syscall name="sched_setparam" number="241"/>
   <syscall name="sched_getparam" number="242"/>
   <syscall name="sched_setscheduler" number="243"/>
@@ -244,10 +246,10 @@
   <syscall name="sched_get_priority_min" number="247"/>
   <syscall name="sched_rr_get_interval" number="248"/>
   <syscall name="nanosleep" number="249"/>
-  <syscall name="mremap" number="250"/>
+  <syscall name="mremap" number="250" groups="memory"/>
   <syscall name="_sysctl" number="251"/>
   <syscall name="getsid" number="252"/>
-  <syscall name="fdatasync" number="253"/>
+  <syscall name="fdatasync" number="253" groups="descriptor"/>
   <syscall name="nfsservctl" number="254"/>
   <syscall name="sync_file_range" number="255"/>
   <syscall name="clock_settime" number="256"/>
@@ -273,54 +275,54 @@
   <syscall name="mq_timedreceive" number="276"/>
   <syscall name="mq_notify" number="277"/>
   <syscall name="mq_getsetattr" number="278"/>
-  <syscall name="waitid" number="279"/>
-  <syscall name="tee" number="280"/>
+  <syscall name="waitid" number="279" groups="process"/>
+  <syscall name="tee" number="280" groups="descriptor"/>
   <syscall name="add_key" number="281"/>
   <syscall name="request_key" number="282"/>
   <syscall name="keyctl" number="283"/>
-  <syscall name="openat" number="284"/>
-  <syscall name="mkdirat" number="285"/>
-  <syscall name="mknodat" number="286"/>
-  <syscall name="fchownat" number="287"/>
-  <syscall name="futimesat" number="288"/>
-  <syscall name="fstatat64" number="289"/>
-  <syscall name="unlinkat" number="290"/>
-  <syscall name="renameat" number="291"/>
-  <syscall name="linkat" number="292"/>
-  <syscall name="symlinkat" number="293"/>
-  <syscall name="readlinkat" number="294"/>
-  <syscall name="fchmodat" number="295"/>
-  <syscall name="faccessat" number="296"/>
-  <syscall name="pselect6" number="297"/>
-  <syscall name="ppoll" number="298"/>
-  <syscall name="unshare" number="299"/>
+  <syscall name="openat" number="284" groups="descriptor,file"/>
+  <syscall name="mkdirat" number="285" groups="descriptor,file"/>
+  <syscall name="mknodat" number="286" groups="descriptor,file"/>
+  <syscall name="fchownat" number="287" groups="descriptor,file"/>
+  <syscall name="futimesat" number="288" groups="descriptor,file"/>
+  <syscall name="fstatat64" number="289" groups="descriptor,file"/>
+  <syscall name="unlinkat" number="290" groups="descriptor,file"/>
+  <syscall name="renameat" number="291" groups="descriptor,file"/>
+  <syscall name="linkat" number="292" groups="descriptor,file"/>
+  <syscall name="symlinkat" number="293" groups="descriptor,file"/>
+  <syscall name="readlinkat" number="294" groups="descriptor,file"/>
+  <syscall name="fchmodat" number="295" groups="descriptor,file"/>
+  <syscall name="faccessat" number="296" groups="descriptor,file"/>
+  <syscall name="pselect6" number="297" groups="descriptor"/>
+  <syscall name="ppoll" number="298" groups="descriptor"/>
+  <syscall name="unshare" number="299" groups="process"/>
   <syscall name="set_robust_list" number="300"/>
   <syscall name="get_robust_list" number="301"/>
-  <syscall name="migrate_pages" number="302"/>
-  <syscall name="mbind" number="303"/>
-  <syscall name="get_mempolicy" number="304"/>
-  <syscall name="set_mempolicy" number="305"/>
+  <syscall name="migrate_pages" number="302" groups="memory"/>
+  <syscall name="mbind" number="303" groups="memory"/>
+  <syscall name="get_mempolicy" number="304" groups="memory"/>
+  <syscall name="set_mempolicy" number="305" groups="memory"/>
   <syscall name="kexec_load" number="306"/>
-  <syscall name="move_pages" number="307"/>
+  <syscall name="move_pages" number="307" groups="memory"/>
   <syscall name="getcpu" number="308"/>
-  <syscall name="epoll_pwait" number="309"/>
-  <syscall name="utimensat" number="310"/>
-  <syscall name="signalfd" number="311"/>
-  <syscall name="timerfd_create" number="312"/>
-  <syscall name="eventfd" number="313"/>
-  <syscall name="fallocate" number="314"/>
-  <syscall name="timerfd_settime" number="315"/>
-  <syscall name="timerfd_gettime" number="316"/>
-  <syscall name="signalfd4" number="317"/>
-  <syscall name="eventfd2" number="318"/>
-  <syscall name="epoll_create1" number="319"/>
-  <syscall name="dup3" number="320"/>
-  <syscall name="pipe2" number="321"/>
-  <syscall name="inotify_init1" number="322"/>
-  <syscall name="accept4" number="323"/>
-  <syscall name="preadv" number="324"/>
-  <syscall name="pwritev" number="325"/>
-  <syscall name="rt_tgsigqueueinfo" number="326"/>
-  <syscall name="perf_event_open" number="327"/>
-  <syscall name="recvmmsg" number="328"/>
+  <syscall name="epoll_pwait" number="309" groups="descriptor"/>
+  <syscall name="utimensat" number="310" groups="descriptor,file"/>
+  <syscall name="signalfd" number="311" groups="descriptor,signal"/>
+  <syscall name="timerfd_create" number="312" groups="descriptor"/>
+  <syscall name="eventfd" number="313" groups="descriptor"/>
+  <syscall name="fallocate" number="314" groups="descriptor"/>
+  <syscall name="timerfd_settime" number="315" groups="descriptor"/>
+  <syscall name="timerfd_gettime" number="316" groups="descriptor"/>
+  <syscall name="signalfd4" number="317" groups="descriptor,signal"/>
+  <syscall name="eventfd2" number="318" groups="descriptor"/>
+  <syscall name="epoll_create1" number="319" groups="descriptor"/>
+  <syscall name="dup3" number="320" groups="descriptor"/>
+  <syscall name="pipe2" number="321" groups="descriptor"/>
+  <syscall name="inotify_init1" number="322" groups="descriptor"/>
+  <syscall name="accept4" number="323" groups="network"/>
+  <syscall name="preadv" number="324" groups="descriptor"/>
+  <syscall name="pwritev" number="325" groups="descriptor"/>
+  <syscall name="rt_tgsigqueueinfo" number="326" groups="process,signal"/>
+  <syscall name="perf_event_open" number="327" groups="descriptor"/>
+  <syscall name="recvmmsg" number="328" groups="network"/>
 </syscalls_info>
-- 
1.9.3

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH v3 03/17] Add tests for catching groups of syscalls on supported architectures.
  2015-04-26  1:25 ` [PATCH v3 03/17] Add tests for catching groups of syscalls on supported architectures Gabriel Krisman Bertazi
@ 2015-04-26 18:44   ` Sergio Durigan Junior
  0 siblings, 0 replies; 42+ messages in thread
From: Sergio Durigan Junior @ 2015-04-26 18:44 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi; +Cc: gdb-patches, dje

On Saturday, April 25 2015, Gabriel Krisman Bertazi wrote:

> gdb/testsuite/
>
> 	* gdb.base/catch-syscall.exp (do_syscall_tests): Add call
> 	to test_catch_syscall_group.
> 	(test_catch_syscall_group): New.

Hey,

Thanks for this third version.  I think we're almost there :-).

> ---
>  gdb/testsuite/gdb.base/catch-syscall.exp | 37 ++++++++++++++++++++++++++++++++
>  1 file changed, 37 insertions(+)
>
> diff --git a/gdb/testsuite/gdb.base/catch-syscall.exp b/gdb/testsuite/gdb.base/catch-syscall.exp
> index df0004a..c65c8e3 100644
> --- a/gdb/testsuite/gdb.base/catch-syscall.exp
> +++ b/gdb/testsuite/gdb.base/catch-syscall.exp
> @@ -269,6 +269,40 @@ proc test_catch_syscall_fail_nodatadir {} {
>      }
>  }
>  
> +proc test_catch_syscall_group {} {
> +    global decimal
> +
> +    set sysnum "\\\[${decimal}\\\]"
> +
> +    gdb_test "catch syscall g:process" \
> +	"Catchpoint $decimal \\(syscalls (\'(clone|fork|execve|exit)\' $sysnum)+.*" \
> +	"set catchpoint on a group of syscalls"
> +
> +    gdb_test "catch syscall group:process read" \
> +	"Catchpoint $decimal \\(syscalls (\'(clone|fork|execve|exit)\' $sysnum)+.*read.*\\)" \
> +	"set catchpoints on a group of syscalls and on a single syscall"
> +
> +    gdb_test "catch syscall group:" \
> +	"Unknown syscall group.*" \
> +	"set catchpoints on an invalid group"

You should use a full-anchored regex here.  You know exactly what to
expect from the command, so match it literally.

> +
> +    gdb_test "catch syscall g:junk" \
> +	"Unknown syscall group.*" \
> +	"set catchpoints on an unknown group."

Same here.

> +
> +    gdb_test "complete catch syscall g:proc" \
> +	"catch syscall g:process" \
> +	"complete catch syscall group with 'g:' prefix"
> +
> +    gdb_test "complete catch syscall group:proc" \
> +	"catch syscall group:process" \
> +	"complete catch syscall group with 'group:' prefix"
> +
> +    gdb_test "complete catch syscall g" \
> +	".*group:process.*" \
> +	"complete catch syscall group suggests 'group:' prefix"

What you can do here, assuming that all targets have the same groups, is
to use gdb_test_sequence and match all the "catch syscall group:XYZ"
entries.  Maybe that is too strict (it assumes that future targets will
also have to implement the exact same groups), but I think it is OK
doing that now and adjusting this in the future if we need.

> +}
> +
>  proc do_syscall_tests {} {
>      # NOTE: We don't have to point gdb at the correct data-directory.
>      # For the build tree that is handled by INTERNAL_GDBFLAGS.
> @@ -309,6 +343,9 @@ proc do_syscall_tests {} {
>      # Testing if the 'catch syscall' command works when switching to
>      # different architectures on-the-fly (PR gdb/10737).
>      if [runto_main] then { test_catch_syscall_multi_arch }
> +
> +    # Testing the 'catch' syscall command for a group of syscalls.
> +    if [runto_main] then { test_catch_syscall_group }
>  }
>  
>  proc test_catch_syscall_without_args_noxml {} {
> -- 
> 1.9.3

Other than that, this part is OK, but I am not a global maintainer to
approve.

-- 
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH v3 00/17] Catch syscall group
  2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
                   ` (16 preceding siblings ...)
  2015-04-26  1:47 ` [PATCH v3 11/17] Create syscall groups for mips-n32 Gabriel Krisman Bertazi
@ 2015-04-26 18:58 ` Sergio Durigan Junior
  2015-04-28 11:24 ` Pedro Alves
  18 siblings, 0 replies; 42+ messages in thread
From: Sergio Durigan Junior @ 2015-04-26 18:58 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi; +Cc: gdb-patches, dje

On Saturday, April 25 2015, Gabriel Krisman Bertazi wrote:

> Hello,
>
> This is the third version of the catch syscall group patches.  This
> version presents the following modifications, other than fixing the
> things Sergio and Doug pointed out in previous reviews:
>
> * Created syscall groups for every architecture supported by catch
>   syscall.

Thanks for doing that.

FWIW, I looked at the patches and, aside from some requests I've made on
the testsuite patch, I have no further comments.  They all seem good to
me (I am not a global maintainer).

Thanks again for implementing this nice feature :-).

Cheers,

-- 
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH v3 00/17] Catch syscall group
  2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
                   ` (17 preceding siblings ...)
  2015-04-26 18:58 ` [PATCH v3 00/17] Catch syscall group Sergio Durigan Junior
@ 2015-04-28 11:24 ` Pedro Alves
  2015-04-29  0:45   ` Sergio Durigan Junior
  18 siblings, 1 reply; 42+ messages in thread
From: Pedro Alves @ 2015-04-28 11:24 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi, gdb-patches; +Cc: dje, sergiodj

On 04/26/2015 02:25 AM, Gabriel Krisman Bertazi wrote:
> Hello,
> 
> This is the third version of the catch syscall group patches.  This
> version presents the following modifications, other than fixing the
> things Sergio and Doug pointed out in previous reviews:
> 
> * Created syscall groups for every architecture supported by catch
>   syscall.
> 
> The previous version only implemented syscalls for amd64.  I used a
> script to generate the xmls, and based the group field information on
> strace, so please share your thoughts if you disagree with any group.

Thanks.

OOC, does strace also maintain a separate group table per architecture?
Was your script something like a map of syscall _name_ to group?

I was wondering if we couldn't share most of the grouping
per-architecture, e.g., by having each arch syscall file xi:include a
base Linux default groups file, that listed the grouping without
the syscall number.  E.g., create a linux-defaults.xml like:

 <syscall-defaults name="select" groups="descriptor"/>
 ...
 <syscall-defaults name="openat" groups="descriptor,file"/>

And then the arch-specific syscall files would do:

 <xi:include href="linux-defaults.xml"/>
 ...
 <syscall name="select" number="82"/>
 ...
 <syscall name="arch_specific_foo" number="200" groups="descriptor"/>
 ...

And then we teach gdb about syscall-default-groups, or
we could even instead preprocess the architecture xml to expand
the groups into each syscall with xsltproc (we already use
this tool, see gdb/features/Makefile and gdb/features/number-regs.xsl).

> 
> I babysitted the xml generation scripts but I was not able to actually
> test them on architectures other than amd64 and i386.  It would be very
> nice if someone could actually run catch-syscall.exp on other
> architectures.

Thanks,
Pedro Alves

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH v3 00/17] Catch syscall group
  2015-04-28 11:24 ` Pedro Alves
@ 2015-04-29  0:45   ` Sergio Durigan Junior
  2015-04-29 10:44     ` Pedro Alves
  0 siblings, 1 reply; 42+ messages in thread
From: Sergio Durigan Junior @ 2015-04-29  0:45 UTC (permalink / raw)
  To: Pedro Alves; +Cc: Gabriel Krisman Bertazi, gdb-patches, dje

On Tuesday, April 28 2015, Pedro Alves wrote:

> I was wondering if we couldn't share most of the grouping
> per-architecture, e.g., by having each arch syscall file xi:include a
> base Linux default groups file, that listed the grouping without
> the syscall number.  E.g., create a linux-defaults.xml like:
>
>  <syscall-defaults name="select" groups="descriptor"/>
>  ...
>  <syscall-defaults name="openat" groups="descriptor,file"/>
>
> And then the arch-specific syscall files would do:
>
>  <xi:include href="linux-defaults.xml"/>
>  ...
>  <syscall name="select" number="82"/>
>  ...
>  <syscall name="arch_specific_foo" number="200" groups="descriptor"/>
>  ...
>
> And then we teach gdb about syscall-default-groups, or
> we could even instead preprocess the architecture xml to expand
> the groups into each syscall with xsltproc (we already use
> this tool, see gdb/features/Makefile and gdb/features/number-regs.xsl).

Thanks for the review, Pedro.  I think this is a nice idea, but I would
like to propose that we accept the patches as-is, without this
improvement, and then work on it later.  First, it's been a long time
since we're discussing this feature, and I don't want Krisman to not
feel encouraged to continue contributing :-).  Also, I think the syscall
XML generation really needs a revamp, independently of how/if we use
groups or not.  There should be possible, for example, to easily update
the XML's with the latest Linux kernel source.  This task is on my
plate, though it's a low priority.  So, for now, I think Krisman's work
is good enough.

In sum: I propose we go ahead now ("don't let the perfect be the enemy
of the good"), and concentrate on the XML problem later.

Cheers,

-- 
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH v3 00/17] Catch syscall group
  2015-04-29  0:45   ` Sergio Durigan Junior
@ 2015-04-29 10:44     ` Pedro Alves
  2015-05-04  2:34       ` Gabriel Krisman Bertazi
  0 siblings, 1 reply; 42+ messages in thread
From: Pedro Alves @ 2015-04-29 10:44 UTC (permalink / raw)
  To: Sergio Durigan Junior; +Cc: Gabriel Krisman Bertazi, gdb-patches, dje

On 04/28/2015 09:28 PM, Sergio Durigan Junior wrote:
> On Tuesday, April 28 2015, Pedro Alves wrote:
> 
>> I was wondering if we couldn't share most of the grouping
>> per-architecture, e.g., by having each arch syscall file xi:include a
>> base Linux default groups file, that listed the grouping without
>> the syscall number.  E.g., create a linux-defaults.xml like:
>>
> Thanks for the review, Pedro.  I think this is a nice idea, but I would
> like to propose that we accept the patches as-is, without this
> improvement, and then work on it later.  First, it's been a long time
> since we're discussing this feature, and I don't want Krisman to not
> feel encouraged to continue contributing :-).  

I think there's a difference from the feature itself, which was
discussed and I'm generally fine with, and the whole set of patches that are
new in this new revision of the series.  Those are revealing a problem
that I think should be addressed.

> Also, I think the syscall
> XML generation really needs a revamp, independently of how/if we use
> groups or not.  There should be possible, for example, to easily update
> the XML's with the latest Linux kernel source.  This task is on my
> plate, though it's a low priority.  So, for now, I think Krisman's work
> is good enough.

Updating the XML's from the Linux source is a different thing.  That
would only regenerate the set of syscalls and its numbers.  The grouping
is not something that can be extracted out of the kernel.

Note Gabriel is already using scripts to generate the xmls (hence
my questions in the previous email):

> The previous version only implemented syscalls for amd64.  I used a
> script to generate the xmls, and based the group field information on
> strace, so please share your thoughts if you disagree with any group.

... and this shows the issue that I'm seeing: we have seemingly the
same grouping done _14_ times.  That's not a sign of something that
is maintainable.

Maybe the linux-defaults.xml idea was overcomplicated.  The main
take away is that the syscall grouping should be the same
everywhere, which suggests that the xml files in their current
xml scheme should be generated.  The existing xml files map the syscall
names to syscall numbers, and that necessarily need to be per-architecture.
I'm super fine with adding the "groups" attribute to each
arch file.  But we can centralize that.  It does not have to be a
complicated thing at all.  Something like:

 - rename the existing files:

     $arch-linux.xml -> $arch-xml.in

 - add a simple linux-defaults file, containing a simple table, like:

~~~
# First column is syscall name, second column is syscall groups.
...
signalfd4 descriptor,signal
vfork process
...
~~~

And then add a build step that with a simple perl/python/awk/sed/whatever
script goes over each line of that table and seds each $arch-linux-xml.in
the file transforming:

  name="$first_column"

into

  name="$first_column" groups="$second_column"

etc.

E.g., from:
  <syscall name="signalfd4" number="289"/>

to:
  <syscall name="signalfd4" groups="descriptor,signal" number="289"/>

That is, a simple text substitution.

This makes is much easier to

 - review
 - maintain
 - extend for future syscalls / groups
 - extend for future architectures

than the same info in 14 (and counting) different files, probably
all in agreement with each other, but pretty much unverifiable.

> In sum: I propose we go ahead now ("don't let the perfect be the enemy
> of the good"), and concentrate on the XML problem later.

I'd like to hear what Gabriel thinks (both of my questions in the
previous email, and this one).

If there are grouping differences between the architectures (other
than which syscalls are wired/supported), Gabriel will have noticed
them, but that knowledge is lost (not encoded anywhere) in the
current form.

As a quick experiment, I did (which Gabriel's grouping patches applied):

 $ cat amd64-linux.xml | sed 's/ number=\"[0-9]*\"//g' | sort > amd64-linux-no-number.xml
 $ cat ppc-linux.xml | sed 's/ number=\"[0-9]*\"//g' | sort > ppc-linux-no-number.xml
 $ diff -up amd64-linux-no-number.xml ppc-linux-no-number.xml

and saw no difference in the grouping, but I did not do that
for all archs.

Thanks,
Pedro Alves

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH v3 00/17] Catch syscall group
  2015-04-29 10:44     ` Pedro Alves
@ 2015-05-04  2:34       ` Gabriel Krisman Bertazi
  2015-05-06 14:38         ` Pedro Alves
  0 siblings, 1 reply; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-05-04  2:34 UTC (permalink / raw)
  To: Pedro Alves; +Cc: Sergio Durigan Junior, gdb-patches, dje

[-- Attachment #1: Type: text/plain, Size: 3493 bytes --]

Pedro Alves <palves@redhat.com> writes:

> On 04/28/2015 09:28 PM, Sergio Durigan Junior wrote:
>> On Tuesday, April 28 2015, Pedro Alves wrote:
>> 
>>> I was wondering if we couldn't share most of the grouping
>>> per-architecture, e.g., by having each arch syscall file xi:include a
>>> base Linux default groups file, that listed the grouping without
>>> the syscall number.  E.g., create a linux-defaults.xml like:
>>>
>> Thanks for the review, Pedro.  I think this is a nice idea, but I would
>> like to propose that we accept the patches as-is, without this
>> improvement, and then work on it later.  First, it's been a long time
>> since we're discussing this feature, and I don't want Krisman to not
>> feel encouraged to continue contributing :-).  
>
> I think there's a difference from the feature itself, which was
> discussed and I'm generally fine with, and the whole set of patches that are
> new in this new revision of the series.  Those are revealing a problem
> that I think should be addressed.

Hi Pedro and Sergio,

Sorry for the time I took to reply to your emails.  Contributing to GDB
is something I do in my free time, and I only have such time on the
weekends nowadays :-)

So, first things first, thank you guys, for your review.

> I'd like to hear what Gabriel thinks (both of my questions in the
> previous email, and this one).

Well, I think this could have come up earlier, so I could have fixed it
already.  As Sergio pointed out, it's been a few months since we started
discussing this feature. :-)

OTOH, I agree that Pedro's suggestion is much more maintainable than
keeping the group information replicated in several xml files.  As a
matter of fact, when I first thought of this feature, I designed
something like his first suggestion, and I'm not sure why I didn't go
ahead with that plan.

> OOC, does strace also maintain a separate group table per architecture?
> Was your script something like a map of syscall _name_ to group?

Strace maintains static tables holding syscall names, numbers and group
information for each architecture separately.

My script parsed those tables and mapped the syscall names in GDB's xmls
to the group information from strace.

> If there are grouping differences between the architectures (other
> than which syscalls are wired/supported), Gabriel will have noticed
> them, but that knowledge is lost (not encoded anywhere) in the
> current form.

I didn't see any difference in group allocation for the same syscall in
different architectures.  So this shouldn't be an issue.

Pedro made two suggestions on how to proceed: (1) keep the information
in a xml file and teach GDB about it or generate the full xml file
during the build; (2) keep the group information inside a tabular text
file and use a simple text substitution to generate the full xml during
the build.

Personally, even though I'm not a big fan of the XML format in general,
I dislike option (2) because inserting a tabular text file now feels a
little clumsy.  since we already use XML for syscalls, I think syscall
groups should be stored similarly.

I plan to send a new version later this week (as soon as I have a break
From college) that implements Pedro's first suggestion.  Now, we keep
the information inside linux-defaults.xml and have a XSL script to
performs a join of the information and generate the full XML file.

Thanks!

-- 
Gabriel Krisman Bertazi

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH v3 00/17] Catch syscall group
  2015-05-04  2:34       ` Gabriel Krisman Bertazi
@ 2015-05-06 14:38         ` Pedro Alves
  2015-05-10 18:34           ` Gabriel Krisman Bertazi
  0 siblings, 1 reply; 42+ messages in thread
From: Pedro Alves @ 2015-05-06 14:38 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi; +Cc: Sergio Durigan Junior, gdb-patches, dje

On 05/04/2015 03:33 AM, Gabriel Krisman Bertazi wrote:

> Strace maintains static tables holding syscall names, numbers and group
> information for each architecture separately.
> 
> My script parsed those tables and mapped the syscall names in GDB's xmls
> to the group information from strace.
> 
>> If there are grouping differences between the architectures (other
>> than which syscalls are wired/supported), Gabriel will have noticed
>> them, but that knowledge is lost (not encoded anywhere) in the
>> current form.
> 
> I didn't see any difference in group allocation for the same syscall in
> different architectures.  So this shouldn't be an issue.
> 
> Pedro made two suggestions on how to proceed: (1) keep the information
> in a xml file and teach GDB about it or generate the full xml file
> during the build; (2) keep the group information inside a tabular text
> file and use a simple text substitution to generate the full xml during
> the build.
> 
> Personally, even though I'm not a big fan of the XML format in general,
> I dislike option (2) because inserting a tabular text file now feels a
> little clumsy.  since we already use XML for syscalls, I think syscall
> groups should be stored similarly.
> 
> I plan to send a new version later this week (as soon as I have a break
> From college) that implements Pedro's first suggestion.  Now, we keep
> the information inside linux-defaults.xml and have a XSL script to
> performs a join of the information and generate the full XML file.

Sounds great.  Thanks!

Thanks,
Pedro Alves

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH v3 00/17] Catch syscall group
  2015-05-06 14:38         ` Pedro Alves
@ 2015-05-10 18:34           ` Gabriel Krisman Bertazi
  2015-05-10 19:01             ` Sergio Durigan Junior
  0 siblings, 1 reply; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-05-10 18:34 UTC (permalink / raw)
  To: Pedro Alves; +Cc: Sergio Durigan Junior, gdb-patches, dje

[-- Attachment #1: Type: text/plain, Size: 1667 bytes --]

Pedro Alves <palves@redhat.com> writes:

>> in a xml file and teach GDB about it or generate the full xml file
>> during the build; (2) keep the group information inside a tabular text
>> file and use a simple text substitution to generate the full xml during
>> the build.
>> 
>> Personally, even though I'm not a big fan of the XML format in general,
>> I dislike option (2) because inserting a tabular text file now feels a
>> little clumsy.  since we already use XML for syscalls, I think syscall
>> groups should be stored similarly.
>> 
>> I plan to send a new version later this week (as soon as I have a break
>> From college) that implements Pedro's first suggestion.  Now, we keep
>> the information inside linux-defaults.xml and have a XSL script to
>> performs a join of the information and generate the full XML file.
>
> Sounds great.  Thanks!

I have a question before sending the new version.

I noticed that the GDB build step currently doesn't depend on xsltproc.
It is used only in gdb/features/Makefile to generate some .dat files,
that are also included in the repository at gdb/regformat.  Am I right?

At first, I intended to use xsltproc as a build step and only provide
the *.xml.in files in the repository.  But that would have the side
effect of forcing xsltproc to be available at build time, and I don't
know if is acceptable.

Other possibility would be to also push the generated files to the
repository.  We'd keep them in gdb/syscalls/generated/, or something
like that, and have a script to update the xmls when needed.

What do you think is the best approach here?

-- 
Gabriel Krisman Bertazi

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH v3 00/17] Catch syscall group
  2015-05-10 18:34           ` Gabriel Krisman Bertazi
@ 2015-05-10 19:01             ` Sergio Durigan Junior
  2015-05-11  0:28               ` [PATCH v4 0/4] catch " Gabriel Krisman Bertazi
  2015-05-11 11:39               ` [PATCH v3 00/17] Catch " Pedro Alves
  0 siblings, 2 replies; 42+ messages in thread
From: Sergio Durigan Junior @ 2015-05-10 19:01 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi; +Cc: Pedro Alves, gdb-patches, dje

[-- Attachment #1: Type: text/plain, Size: 1715 bytes --]

On Sunday, May 10 2015, Gabriel Krisman Bertazi wrote:

> I noticed that the GDB build step currently doesn't depend on xsltproc.
> It is used only in gdb/features/Makefile to generate some .dat files,
> that are also included in the repository at gdb/regformat.  Am I right?

Yes.  This is a common practice inside GDB.

> At first, I intended to use xsltproc as a build step and only provide
> the *.xml.in files in the repository.  But that would have the side
> effect of forcing xsltproc to be available at build time, and I don't
> know if is acceptable.

I don't see any reason to make GDB depend on xsltproc.  You are
basically doing all this work because it makes things easier to
maintain, but there is no reason to force the user to install a XSLT
processor.

> Other possibility would be to also push the generated files to the
> repository.  We'd keep them in gdb/syscalls/generated/, or something
> like that, and have a script to update the xmls when needed.

There is no reason to regenerate the XML files every time we build GDB,
because they would be the same every time, unless someone makes a
modification on the .in files.  The same applies, for example, to
configure.ac or gdbarch.sh.

This is the modus operandi here: put the generated files in the tree,
along with the templates.  I am against creating a "generated/"
directory inside gdb/syscalls/.  Just put the template files (*.in) in
the gdb/syscalls/ dir, and that's all.  Don't forget to include a README
with instructions on how to regenerate the XML files.

-- 
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/

[-- Attachment #2: Type: application/pgp-signature, Size: 818 bytes --]

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v4 5/5] Update documentation on catching a group of related syscalls.
  2015-05-11  0:28               ` [PATCH v4 0/4] catch " Gabriel Krisman Bertazi
  2015-05-11  0:28                 ` [PATCH v4 2/5] Add support to catch groups of syscalls Gabriel Krisman Bertazi
  2015-05-11  0:28                 ` [PATCH v4 1/5] Implemement support for groups of syscalls in the xml-syscall interface Gabriel Krisman Bertazi
@ 2015-05-11  0:28                 ` Gabriel Krisman Bertazi
  2015-05-11  0:40                   ` Gabriel Krisman Bertazi
  2015-05-11  0:28                 ` [PATCH v4 3/5] Add tests for catching groups of syscalls on supported architectures Gabriel Krisman Bertazi
                                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-05-11  0:28 UTC (permalink / raw)
  To: sergiodj; +Cc: palves, gdb-patches, dje, Gabriel Krisman Bertazi

gdb/

	* break-catch-syscall.c (_initialize_breakpoint): Update catch
	syscall command documentation.
	* NEWS: Include section about catching groups of syscalls.

gdb/doc/

	* gdb.texinfo (Set Catchpoints): Add 'group' argument to catch
	syscall.
---
 gdb/NEWS                  |  5 +++++
 gdb/break-catch-syscall.c | 10 +++++-----
 gdb/doc/gdb.texinfo       | 28 +++++++++++++++++++++++++++-
 3 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/gdb/NEWS b/gdb/NEWS
index 6ad68ac..a6b5e44 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -138,6 +138,11 @@ qXfer:exec-file:read
 HP/PA running HP-UX           hppa*-*-hpux*
 Itanium running HP-UX         ia64-*-hpux*
 
+* The "catch syscall" command catches groups of related syscalls.
+
+  The "catch syscall" command now supports catching a group of related
+  syscalls using the 'group:' or 'g:' prefix.
+
 *** Changes in GDB 7.9
 
 * GDB now supports hardware watchpoints on x86 GNU Hurd.
diff --git a/gdb/break-catch-syscall.c b/gdb/break-catch-syscall.c
index 686daf1..e65bd0a 100644
--- a/gdb/break-catch-syscall.c
+++ b/gdb/break-catch-syscall.c
@@ -723,11 +723,11 @@ _initialize_break_catch_syscall (void)
 					   catch_syscall_inferior_data_cleanup);
 
   add_catch_command ("syscall", _("\
-Catch system calls by their names and/or numbers.\n\
-Arguments say which system calls to catch.  If no arguments\n\
-are given, every system call will be caught.\n\
-Arguments, if given, should be one or more system call names\n\
-(if your system supports that), or system call numbers."),
+Catch system calls by their names, groups and/or numbers.\n\
+Arguments say which system calls to catch.  If no arguments are given,\n\
+every system call will be caught.  Arguments, if given, should be one\n\
+or more system call names (if your system supports that), system call\n\
+groups or system call numbers."),
 		     catch_syscall_command_1,
 		     catch_syscall_completer,
 		     CATCH_PERMANENT,
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 9e2787d..e2be1d3 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -4282,7 +4282,7 @@ A call to @code{exec}.  This is currently only available for HP-UX
 and @sc{gnu}/Linux.
 
 @item syscall
-@itemx syscall @r{[}@var{name} @r{|} @var{number}@r{]} @dots{} 
+@itemx syscall @r{[}@var{name} @r{|} @var{number} @r{|} @r{group:}@var{groupname} @r{|} @r{g:}@var{groupname}@r{]} @dots{}
 @kindex catch syscall
 @cindex break on a system call.
 A call to or return from a system call, a.k.a.@: @dfn{syscall}.  A
@@ -4317,6 +4317,15 @@ may be useful if @value{GDBN}'s database does not have the complete
 list of syscalls on your system (e.g., because @value{GDBN} lags
 behind the OS upgrades).
 
+You may specify a group of related syscalls to be caught at once using
+the @code{group:} syntax (@code{g:} is a shorter equivalent.).  For
+instance, on some platforms @value{GDBN} allows you to catch all
+network related syscalls, by passing the argument @code{group:network}
+to @code{catch syscall}.  Note that not all syscall groups are
+available in every system.  You can use the command completion
+facilities (@pxref{Completion,, command completion}) to list the
+syscall groups available on your environment.
+
 The example below illustrates how this command works if you don't provide
 arguments to it:
 
@@ -4373,6 +4382,23 @@ Program exited normally.
 (@value{GDBP})
 @end smallexample
 
+Here is an example of catching a syscall group:
+
+@smallexample
+(@value{GDBP}) catch syscall group:process
+Catchpoint 1 (syscalls 'exit' [1] 'fork' [2] 'waitpid' [7]
+'execve' [11] 'wait4' [114] 'clone' [120] 'vfork' [190]
+'exit_group' [252] 'waitid' [284] 'unshare' [310])
+(@value{GDBP}) r
+Starting program: /tmp/catch-syscall
+
+Catchpoint 1 (call to syscall fork), 0x00007ffff7df4e27 in open64 ()
+   from /lib64/ld-linux-x86-64.so.2
+
+(@value{GDBP}) c
+Continuing.
+@end smallexample
+
 However, there can be situations when there is no corresponding name
 in XML file for that syscall number.  In this case, @value{GDBN} prints
 a warning message saying that it was not able to find the syscall name,
-- 
2.1.0

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v4 4/5] Include group information in xml syscall files.
  2015-05-11  0:28               ` [PATCH v4 0/4] catch " Gabriel Krisman Bertazi
                                   ` (3 preceding siblings ...)
  2015-05-11  0:28                 ` [PATCH v4 3/5] Add tests for catching groups of syscalls on supported architectures Gabriel Krisman Bertazi
@ 2015-05-11  0:28                 ` Gabriel Krisman Bertazi
  2015-05-12 21:42                   ` Doug Evans
  2015-05-13 10:43                   ` Pedro Alves
  2015-05-13 10:47                 ` [PATCH v4 0/4] catch syscall group Pedro Alves
  5 siblings, 2 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-05-11  0:28 UTC (permalink / raw)
  To: sergiodj; +Cc: palves, gdb-patches, dje, Gabriel Krisman Bertazi

We maintain linux-defaults.xml.in, a template file to hold generic group
information.  It is used by the XSL script that parses the architecture
specific files to generate the final xml files, which are actually
installed and loaded by GDB.  The script is not run during the build
process, and must be run manually by a GDB maintainer when there is need
to update the syscalls information files.

gdb/

	* syscalls/Makefile: New file.
	* syscalls/apply-defaults.xsl: New file.
	* syscalls/linux-defaults.xml.in: New file.
	* syscalls/aarch64-linux.xml: Rename to aarch64-linux.xml.in.
	* syscalls/amd64-linux.xml: Rename to amd64-linux.xml.in.
	* syscalls/arm-linux.xml: Rename to arm-linux.xml.in.
	* syscalls/bfin-linux.xml: Rename to bfin-linux.xml.in.
	* syscalls/i386-linux.xml: Rename to i386-linux.xml.in.
	* syscalls/mips-n32-linux.xml: Rename to mips-n32-linux.xml.in.
	* syscalls/mips-n64-linux.xml: Rename to mips-n64-linux.xml.in.
	* syscalls/mips-o32-linux.xml: Rename to mips-o32-linux.xml.in.
	* syscalls/ppc-linux.xml: Rename to ppc-linux.xml.in.
	* syscalls/ppc64-linux.xml: Rename to ppc64-linux.xml.in.
	* syscalls/s390-linux.xml: Rename to s390-linux.xml.in.
	* syscalls/s390x-linux.xml: Rename to s390x-linux.xml.in.
	* syscalls/sparc-linux.xml: Rename to sparc-linux.xml.in.
	* syscalls/sparc64-linux.xml: Rename to sparc64-linux.xml.in.
---
 gdb/syscalls/Makefile                              |  41 ++++
 .../{aarch64-linux.xml => aarch64-linux.xml.in}    |   0
 .../{amd64-linux.xml => amd64-linux.xml.in}        |   0
 gdb/syscalls/apply-defaults.xsl                    |  27 +++
 gdb/syscalls/{arm-linux.xml => arm-linux.xml.in}   |   0
 gdb/syscalls/{bfin-linux.xml => bfin-linux.xml.in} |   0
 gdb/syscalls/{i386-linux.xml => i386-linux.xml.in} |   0
 gdb/syscalls/linux-defaults.xml.in                 | 243 +++++++++++++++++++++
 .../{mips-n32-linux.xml => mips-n32-linux.xml.in}  |   0
 .../{mips-n64-linux.xml => mips-n64-linux.xml.in}  |   0
 .../{mips-o32-linux.xml => mips-o32-linux.xml.in}  |   0
 gdb/syscalls/{ppc-linux.xml => ppc-linux.xml.in}   |   0
 .../{ppc64-linux.xml => ppc64-linux.xml.in}        |   0
 gdb/syscalls/{s390-linux.xml => s390-linux.xml.in} |   0
 .../{s390x-linux.xml => s390x-linux.xml.in}        |   0
 .../{sparc-linux.xml => sparc-linux.xml.in}        |   0
 .../{sparc64-linux.xml => sparc64-linux.xml.in}    |   0
 17 files changed, 311 insertions(+)
 create mode 100644 gdb/syscalls/Makefile
 rename gdb/syscalls/{aarch64-linux.xml => aarch64-linux.xml.in} (100%)
 rename gdb/syscalls/{amd64-linux.xml => amd64-linux.xml.in} (100%)
 create mode 100644 gdb/syscalls/apply-defaults.xsl
 rename gdb/syscalls/{arm-linux.xml => arm-linux.xml.in} (100%)
 rename gdb/syscalls/{bfin-linux.xml => bfin-linux.xml.in} (100%)
 rename gdb/syscalls/{i386-linux.xml => i386-linux.xml.in} (100%)
 create mode 100644 gdb/syscalls/linux-defaults.xml.in
 rename gdb/syscalls/{mips-n32-linux.xml => mips-n32-linux.xml.in} (100%)
 rename gdb/syscalls/{mips-n64-linux.xml => mips-n64-linux.xml.in} (100%)
 rename gdb/syscalls/{mips-o32-linux.xml => mips-o32-linux.xml.in} (100%)
 rename gdb/syscalls/{ppc-linux.xml => ppc-linux.xml.in} (100%)
 rename gdb/syscalls/{ppc64-linux.xml => ppc64-linux.xml.in} (100%)
 rename gdb/syscalls/{s390-linux.xml => s390-linux.xml.in} (100%)
 rename gdb/syscalls/{s390x-linux.xml => s390x-linux.xml.in} (100%)
 rename gdb/syscalls/{sparc-linux.xml => sparc-linux.xml.in} (100%)
 rename gdb/syscalls/{sparc64-linux.xml => sparc64-linux.xml.in} (100%)

diff --git a/gdb/syscalls/Makefile b/gdb/syscalls/Makefile
new file mode 100644
index 0000000..30fa4e4
--- /dev/null
+++ b/gdb/syscalls/Makefile
@@ -0,0 +1,41 @@
+# Copyright (C) 2007-2015 Free Software Foundation, Inc.
+
+# This file is part of GDB.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# This file requires GNU make!
+
+# This Makefile generates the XML syscall files from their xml.in and
+# *-defaults.xml counterparts.  Because this relies on xsltproc, it is
+# not normally run during the build process; it should be run by hand
+# when one of the affected source files is changed, and the results
+# should be kept in the GDB repository.
+
+# To generate the updated xml files, just enter the syscalls directory
+# and run
+#
+# $ make
+
+XSLTPROC = xsltproc
+SYSCALL_FILES = aarch64-linux.xml arm-linux.xml mips-n64-linux.xml \
+	ppc64-linux.xml s390-linux.xml sparc64-linux.xml \
+	amd64-linux.xml bfin-linux.xml i386-linux.xml \
+	mips-n32-linux.xml mips-o32-linux.xml ppc-linux.xml \
+	s390x-linux.xml sparc-linux.xml
+
+all: $(SYSCALL_FILES)
+
+%.xml: %.xml.in apply-defaults.xsl linux-defaults.xml.in
+	$(XSLTPROC) -o $@ apply-defaults.xsl $<
diff --git a/gdb/syscalls/aarch64-linux.xml b/gdb/syscalls/aarch64-linux.xml.in
similarity index 100%
rename from gdb/syscalls/aarch64-linux.xml
rename to gdb/syscalls/aarch64-linux.xml.in
diff --git a/gdb/syscalls/amd64-linux.xml b/gdb/syscalls/amd64-linux.xml.in
similarity index 100%
rename from gdb/syscalls/amd64-linux.xml
rename to gdb/syscalls/amd64-linux.xml.in
diff --git a/gdb/syscalls/apply-defaults.xsl b/gdb/syscalls/apply-defaults.xsl
new file mode 100644
index 0000000..5b7f224
--- /dev/null
+++ b/gdb/syscalls/apply-defaults.xsl
@@ -0,0 +1,27 @@
+<!-- Copyright (C) 2015 Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:output method="xml" doctype-system="gdb-syscalls.dtd"/>
+
+  <xsl:template match="node()|@*" name="identity">
+    <xsl:copy>
+      <xsl:apply-templates select="node()|@*"/>
+    </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match="/syscalls_info/syscall">
+    <xsl:copy>
+      <xsl:apply-templates select="@*|node()"/>
+      <xsl:variable name="syscall"><xsl:value-of select="@name"/></xsl:variable>
+      <xsl:for-each select="document('linux-defaults.xml.in')/syscalls_defaults/child::*[@name=$syscall]">
+	<xsl:attribute name="groups"><xsl:value-of select="@groups"/></xsl:attribute>
+      </xsl:for-each>
+    </xsl:copy>
+  </xsl:template>
+
+</xsl:stylesheet>
diff --git a/gdb/syscalls/arm-linux.xml b/gdb/syscalls/arm-linux.xml.in
similarity index 100%
rename from gdb/syscalls/arm-linux.xml
rename to gdb/syscalls/arm-linux.xml.in
diff --git a/gdb/syscalls/bfin-linux.xml b/gdb/syscalls/bfin-linux.xml.in
similarity index 100%
rename from gdb/syscalls/bfin-linux.xml
rename to gdb/syscalls/bfin-linux.xml.in
diff --git a/gdb/syscalls/i386-linux.xml b/gdb/syscalls/i386-linux.xml.in
similarity index 100%
rename from gdb/syscalls/i386-linux.xml
rename to gdb/syscalls/i386-linux.xml.in
diff --git a/gdb/syscalls/linux-defaults.xml.in b/gdb/syscalls/linux-defaults.xml.in
new file mode 100644
index 0000000..576be0c
--- /dev/null
+++ b/gdb/syscalls/linux-defaults.xml.in
@@ -0,0 +1,243 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2009-2015 Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!-- The group field information was based on strace.  -->
+
+<syscalls_defaults>
+  <syscall name="read" groups="descriptor"/>
+  <syscall name="write" groups="descriptor"/>
+  <syscall name="open" groups="descriptor,file"/>
+  <syscall name="close" groups="descriptor"/>
+  <syscall name="stat" groups="file"/>
+  <syscall name="fstat" groups="descriptor"/>
+  <syscall name="lstat" groups="file"/>
+  <syscall name="poll" groups="descriptor"/>
+  <syscall name="lseek" groups="descriptor"/>
+  <syscall name="mmap" groups="descriptor,memory"/>
+  <syscall name="mprotect" groups="memory"/>
+  <syscall name="munmap" groups="memory"/>
+  <syscall name="brk" groups="memory"/>
+  <syscall name="rt_sigaction" groups="signal"/>
+  <syscall name="rt_sigprocmask" groups="signal"/>
+  <syscall name="rt_sigreturn" groups="signal"/>
+  <syscall name="ioctl" groups="descriptor"/>
+  <syscall name="pread64" groups="descriptor"/>
+  <syscall name="pwrite64" groups="descriptor"/>
+  <syscall name="readv" groups="descriptor"/>
+  <syscall name="writev" groups="descriptor"/>
+  <syscall name="access" groups="file"/>
+  <syscall name="pipe" groups="descriptor"/>
+  <syscall name="select" groups="descriptor"/>
+  <syscall name="mremap" groups="memory"/>
+  <syscall name="msync" groups="memory"/>
+  <syscall name="mincore" groups="memory"/>
+  <syscall name="madvise" groups="memory"/>
+  <syscall name="shmget" groups="ipc"/>
+  <syscall name="shmat" groups="ipc,memory"/>
+  <syscall name="shmctl" groups="ipc"/>
+  <syscall name="dup" groups="descriptor"/>
+  <syscall name="dup2" groups="descriptor"/>
+  <syscall name="pause" groups="signal"/>
+  <syscall name="sendfile" groups="descriptor,network"/>
+  <syscall name="socket" groups="network"/>
+  <syscall name="connect" groups="network"/>
+  <syscall name="accept" groups="network"/>
+  <syscall name="sendto" groups="network"/>
+  <syscall name="recvfrom" groups="network"/>
+  <syscall name="sendmsg" groups="network"/>
+  <syscall name="recvmsg" groups="network"/>
+  <syscall name="shutdown" groups="network"/>
+  <syscall name="bind" groups="network"/>
+  <syscall name="listen" groups="network"/>
+  <syscall name="getsockname" groups="network"/>
+  <syscall name="getpeername" groups="network"/>
+  <syscall name="socketpair" groups="network"/>
+  <syscall name="setsockopt" groups="network"/>
+  <syscall name="getsockopt" groups="network"/>
+  <syscall name="clone" groups="process"/>
+  <syscall name="fork" groups="process"/>
+  <syscall name="vfork" groups="process"/>
+  <syscall name="execve" groups="file,process"/>
+  <syscall name="execv" groups="file,process"/>
+  <syscall name="exit" groups="process"/>
+  <syscall name="wait4" groups="process"/>
+  <syscall name="kill" groups="signal"/>
+  <syscall name="semget" groups="ipc"/>
+  <syscall name="semop" groups="ipc"/>
+  <syscall name="semctl" groups="ipc"/>
+  <syscall name="shmdt" groups="ipc,memory"/>
+  <syscall name="msgget" groups="ipc"/>
+  <syscall name="msgsnd" groups="ipc"/>
+  <syscall name="msgrcv" groups="ipc"/>
+  <syscall name="msgctl" groups="ipc"/>
+  <syscall name="fcntl" groups="descriptor"/>
+  <syscall name="flock" groups="descriptor"/>
+  <syscall name="fsync" groups="descriptor"/>
+  <syscall name="fdatasync" groups="descriptor"/>
+  <syscall name="truncate" groups="file"/>
+  <syscall name="ftruncate" groups="descriptor"/>
+  <syscall name="getdents" groups="descriptor"/>
+  <syscall name="getcwd" groups="file"/>
+  <syscall name="chdir" groups="file"/>
+  <syscall name="fchdir" groups="descriptor"/>
+  <syscall name="rename" groups="file"/>
+  <syscall name="mkdir" groups="file"/>
+  <syscall name="rmdir" groups="file"/>
+  <syscall name="creat" groups="descriptor,file"/>
+  <syscall name="link" groups="file"/>
+  <syscall name="unlink" groups="file"/>
+  <syscall name="symlink" groups="file"/>
+  <syscall name="readlink" groups="file"/>
+  <syscall name="chmod" groups="file"/>
+  <syscall name="fchmod" groups="descriptor"/>
+  <syscall name="chown" groups="file"/>
+  <syscall name="fchown" groups="descriptor"/>
+  <syscall name="lchown" groups="file"/>
+  <syscall name="rt_sigpending" groups="signal"/>
+  <syscall name="rt_sigtimedwait" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" groups="signal"/>
+  <syscall name="rt_sigsuspend" groups="signal"/>
+  <syscall name="sigaltstack" groups="signal"/>
+  <syscall name="utime" groups="file"/>
+  <syscall name="mknod" groups="file"/>
+  <syscall name="uselib" groups="file"/>
+  <syscall name="statfs" groups="file"/>
+  <syscall name="fstatfs" groups="descriptor"/>
+  <syscall name="mlock" groups="memory"/>
+  <syscall name="munlock" groups="memory"/>
+  <syscall name="mlockall" groups="memory"/>
+  <syscall name="munlockall" groups="memory"/>
+  <syscall name="pivot_root" groups="file"/>
+  <syscall name="arch_prctl" groups="process"/>
+  <syscall name="chroot" groups="file"/>
+  <syscall name="acct" groups="file"/>
+  <syscall name="mount" groups="file"/>
+  <syscall name="umount" groups="file"/>
+  <syscall name="umount2" groups="file"/>
+  <syscall name="swapon" groups="file"/>
+  <syscall name="swapoff" groups="file"/>
+  <syscall name="quotactl" groups="file"/>
+  <syscall name="readahead" groups="descriptor"/>
+  <syscall name="setxattr" groups="file"/>
+  <syscall name="lsetxattr" groups="file"/>
+  <syscall name="fsetxattr" groups="descriptor"/>
+  <syscall name="getxattr" groups="file"/>
+  <syscall name="lgetxattr" groups="file"/>
+  <syscall name="fgetxattr" groups="descriptor"/>
+  <syscall name="listxattr" groups="file"/>
+  <syscall name="llistxattr" groups="file"/>
+  <syscall name="flistxattr" groups="descriptor"/>
+  <syscall name="removexattr" groups="file"/>
+  <syscall name="lremovexattr" groups="file"/>
+  <syscall name="fremovexattr" groups="descriptor"/>
+  <syscall name="tkill" groups="signal"/>
+  <syscall name="epoll_create" groups="descriptor"/>
+  <syscall name="remap_file_pages" groups="memory"/>
+  <syscall name="getdents64" groups="descriptor"/>
+  <syscall name="semtimedop" groups="ipc"/>
+  <syscall name="fadvise64" groups="descriptor"/>
+  <syscall name="exit_group" groups="process"/>
+  <syscall name="epoll_wait" groups="descriptor"/>
+  <syscall name="epoll_ctl" groups="descriptor"/>
+  <syscall name="tgkill" groups="signal"/>
+  <syscall name="utimes" groups="file"/>
+  <syscall name="mbind" groups="memory"/>
+  <syscall name="set_mempolicy" groups="memory"/>
+  <syscall name="get_mempolicy" groups="memory"/>
+  <syscall name="waitid" groups="process"/>
+  <syscall name="inotify_init" groups="descriptor"/>
+  <syscall name="inotify_add_watch" groups="descriptor"/>
+  <syscall name="inotify_rm_watch" groups="descriptor"/>
+  <syscall name="migrate_pages" groups="memory"/>
+  <syscall name="openat" groups="descriptor,file"/>
+  <syscall name="mkdirat" groups="descriptor,file"/>
+  <syscall name="mknodat" groups="descriptor,file"/>
+  <syscall name="fchownat" groups="descriptor,file"/>
+  <syscall name="futimesat" groups="descriptor,file"/>
+  <syscall name="newfstatat" groups="descriptor,file"/>
+  <syscall name="unlinkat" groups="descriptor,file"/>
+  <syscall name="renameat" groups="descriptor,file"/>
+  <syscall name="linkat" groups="descriptor,file"/>
+  <syscall name="symlinkat" groups="descriptor,file"/>
+  <syscall name="readlinkat" groups="descriptor,file"/>
+  <syscall name="fchmodat" groups="descriptor,file"/>
+  <syscall name="faccessat" groups="descriptor,file"/>
+  <syscall name="pselect6" groups="descriptor"/>
+  <syscall name="ppoll" groups="descriptor"/>
+  <syscall name="unshare" groups="process"/>
+  <syscall name="splice" groups="descriptor"/>
+  <syscall name="tee" groups="descriptor"/>
+  <syscall name="sync_file_range" groups="descriptor"/>
+  <syscall name="vmsplice" groups="descriptor"/>
+  <syscall name="move_pages" groups="memory"/>
+  <syscall name="utimensat" groups="descriptor,file"/>
+  <syscall name="epoll_pwait" groups="descriptor"/>
+  <syscall name="signalfd" groups="descriptor,signal"/>
+  <syscall name="timerfd_create" groups="descriptor"/>
+  <syscall name="eventfd" groups="descriptor"/>
+  <syscall name="fallocate" groups="descriptor"/>
+  <syscall name="timerfd_settime" groups="descriptor"/>
+  <syscall name="timerfd_gettime" groups="descriptor"/>
+  <syscall name="accept4" groups="network"/>
+  <syscall name="signalfd4" groups="descriptor,signal"/>
+  <syscall name="eventfd2" groups="descriptor"/>
+  <syscall name="epoll_create1" groups="descriptor"/>
+  <syscall name="dup3" groups="descriptor"/>
+  <syscall name="pipe2" groups="descriptor"/>
+  <syscall name="inotify_init1" groups="descriptor"/>
+  <syscall name="preadv" groups="descriptor"/>
+  <syscall name="pwritev" groups="descriptor"/>
+  <syscall name="send" groups="network"/>
+  <syscall name="recv" groups="network"/>
+  <syscall name="statfs64" groups="file"/>
+  <syscall name="fstatfs64" groups="descriptor"/>
+  <syscall name="sendfile64" groups="descriptor,network"/>
+  <syscall name="rt_tgsigqueueinfo" groups="process,signal"/>
+  <syscall name="perf_event_open" groups="descriptor"/>
+  <syscall name="recvmmsg" groups="network"/>
+  <syscall name="fanotify_init" groups="descriptor"/>
+  <syscall name="fanotify_mark" groups="descriptor,file"/>
+  <syscall name="fchown32" groups="descriptor"/>
+  <syscall name="chown32" groups="file"/>
+  <syscall name="fcntl64" groups="descriptor"/>
+  <syscall name="mmap2" groups="descriptor,memory"/>
+  <syscall name="truncate64" groups="file"/>
+  <syscall name="ftruncate64" groups="descriptor"/>
+  <syscall name="stat64" groups="file"/>
+  <syscall name="lstat64" groups="file"/>
+  <syscall name="fstat64" groups="descriptor"/>
+  <syscall name="lchown32" groups="file"/>
+  <syscall name="name_to_handle_at" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" groups="descriptor"/>
+  <syscall name="_llseek" groups="descriptor"/>
+  <syscall name="syncfs" groups="descriptor"/>
+  <syscall name="sendmmsg" groups="network"/>
+  <syscall name="setns" groups="descriptor"/>
+  <syscall name="finit_module" groups="descriptor"/>
+  <syscall name="oldstat" groups="file"/>
+  <syscall name="sigaction" groups="signal"/>
+  <syscall name="sigreturn" groups="signal"/>
+  <syscall name="sigsuspend" groups="signal"/>
+  <syscall name="sigpending" groups="signal"/>
+  <syscall name="sigprocmask" groups="signal"/>
+  <syscall name="ipc" groups="ipc"/>
+  <syscall name="readdir" groups="descriptor"/>
+  <syscall name="socketcall" number="102" groups="descriptor"/>
+  <syscall name="break" groups="memory"/>
+  <syscall name="oldfstat" groups="descriptor"/>
+  <syscall name="signal" groups="signal"/>
+  <syscall name="sgetmask" groups="signal"/>
+  <syscall name="ssetmask" groups="signal"/>
+  <syscall name="oldlstat" groups="file"/>
+  <syscall name="waitpid" groups="process"/>
+  <syscall name="pread" groups="descriptor"/>
+  <syscall name="pwrite" groups="descriptor"/>
+  <syscall name="fadvise64_64" groups="descriptor"/>
+  <syscall name="fstatat64" groups="descriptor,file"/>
+  <syscall name="_newselect" groups="descriptor"/>
+  <syscall name="timerfd" number="6281" groups="descriptor"/>
+</syscalls_defaults>
diff --git a/gdb/syscalls/mips-n32-linux.xml b/gdb/syscalls/mips-n32-linux.xml.in
similarity index 100%
rename from gdb/syscalls/mips-n32-linux.xml
rename to gdb/syscalls/mips-n32-linux.xml.in
diff --git a/gdb/syscalls/mips-n64-linux.xml b/gdb/syscalls/mips-n64-linux.xml.in
similarity index 100%
rename from gdb/syscalls/mips-n64-linux.xml
rename to gdb/syscalls/mips-n64-linux.xml.in
diff --git a/gdb/syscalls/mips-o32-linux.xml b/gdb/syscalls/mips-o32-linux.xml.in
similarity index 100%
rename from gdb/syscalls/mips-o32-linux.xml
rename to gdb/syscalls/mips-o32-linux.xml.in
diff --git a/gdb/syscalls/ppc-linux.xml b/gdb/syscalls/ppc-linux.xml.in
similarity index 100%
rename from gdb/syscalls/ppc-linux.xml
rename to gdb/syscalls/ppc-linux.xml.in
diff --git a/gdb/syscalls/ppc64-linux.xml b/gdb/syscalls/ppc64-linux.xml.in
similarity index 100%
rename from gdb/syscalls/ppc64-linux.xml
rename to gdb/syscalls/ppc64-linux.xml.in
diff --git a/gdb/syscalls/s390-linux.xml b/gdb/syscalls/s390-linux.xml.in
similarity index 100%
rename from gdb/syscalls/s390-linux.xml
rename to gdb/syscalls/s390-linux.xml.in
diff --git a/gdb/syscalls/s390x-linux.xml b/gdb/syscalls/s390x-linux.xml.in
similarity index 100%
rename from gdb/syscalls/s390x-linux.xml
rename to gdb/syscalls/s390x-linux.xml.in
diff --git a/gdb/syscalls/sparc-linux.xml b/gdb/syscalls/sparc-linux.xml.in
similarity index 100%
rename from gdb/syscalls/sparc-linux.xml
rename to gdb/syscalls/sparc-linux.xml.in
diff --git a/gdb/syscalls/sparc64-linux.xml b/gdb/syscalls/sparc64-linux.xml.in
similarity index 100%
rename from gdb/syscalls/sparc64-linux.xml
rename to gdb/syscalls/sparc64-linux.xml.in
-- 
2.1.0

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v4 2/5] Add support to catch groups of syscalls.
  2015-05-11  0:28               ` [PATCH v4 0/4] catch " Gabriel Krisman Bertazi
@ 2015-05-11  0:28                 ` Gabriel Krisman Bertazi
  2015-05-13 10:38                   ` Pedro Alves
  2015-05-11  0:28                 ` [PATCH v4 1/5] Implemement support for groups of syscalls in the xml-syscall interface Gabriel Krisman Bertazi
                                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-05-11  0:28 UTC (permalink / raw)
  To: sergiodj; +Cc: palves, gdb-patches, dje, Gabriel Krisman Bertazi

This implements the catchpoint side.  While parsing 'catch syscall'
arguments, we verify if the argument is a syscall group and expand it to
a list of syscalls that are part of that group.

gdb/

	* break-catch-syscall.c (catch_syscall_split_args): Verify if
	argument is a syscall group and expand it to a list of syscalls
	when creating catchpoints.
	(catch_syscall_completer): Add word completion for system call
	groups.
---
 gdb/break-catch-syscall.c | 94 ++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 85 insertions(+), 9 deletions(-)

diff --git a/gdb/break-catch-syscall.c b/gdb/break-catch-syscall.c
index 1718f49..686daf1 100644
--- a/gdb/break-catch-syscall.c
+++ b/gdb/break-catch-syscall.c
@@ -462,10 +462,38 @@ catch_syscall_split_args (char *arg)
       cur_name[i] = '\0';
       arg += i;
 
-      /* Check if the user provided a syscall name or a number.  */
+      /* Check if the user provided a syscall name, group, or a number.  */
       syscall_number = (int) strtol (cur_name, &endptr, 0);
       if (*endptr == '\0')
-	get_syscall_by_number (gdbarch, syscall_number, &s);
+	{
+	  get_syscall_by_number (gdbarch, syscall_number, &s);
+	  VEC_safe_push (int, result, s.number);
+	}
+      else if (strncmp (cur_name, "g:", sizeof ("g:") - 1) == 0
+	       || strncmp (cur_name, "group:", sizeof ("group:") - 1) == 0)
+	{
+	  /* We have a syscall group.  Let's expand it into a syscall
+	     list before inserting.  */
+	  struct syscall *syscall_list;
+	  const char *group_name;
+
+	  /* Skip over "g:" and "group:" prefix strings.  */
+	  group_name = strchr (cur_name, ':') + 1;
+
+	  syscall_list = get_syscalls_by_group (gdbarch, group_name);
+
+	  if (syscall_list == NULL)
+	    error (_("Unknown syscall group '%s'."), group_name);
+
+	  for (i = 0; syscall_list[i].name != NULL; i++)
+	    {
+	      /* Insert each syscall that are part of the group.  No
+		 need to check if it is valid.  */
+	      VEC_safe_push (int, result, syscall_list[i].number);
+	    }
+
+	  xfree (syscall_list);
+	}
       else
 	{
 	  /* We have a name.  Let's check if it's valid and convert it
@@ -477,10 +505,10 @@ catch_syscall_split_args (char *arg)
 	       because GDB cannot do anything useful if there's no
 	       syscall number to be caught.  */
 	    error (_("Unknown syscall name '%s'."), cur_name);
-	}
 
-      /* Ok, it's valid.  */
-      VEC_safe_push (int, result, s.number);
+	  /* Ok, it's valid.  */
+	  VEC_safe_push (int, result, s.number);
+	}
     }
 
   discard_cleanups (cleanup);
@@ -595,11 +623,59 @@ static VEC (char_ptr) *
 catch_syscall_completer (struct cmd_list_element *cmd,
                          const char *text, const char *word)
 {
-  const char **list = get_syscall_names (get_current_arch ());
-  VEC (char_ptr) *retlist
-    = (list == NULL) ? NULL : complete_on_enum (list, word, word);
+  struct gdbarch *gdbarch = get_current_arch ();
+  struct cleanup *cleanups = make_cleanup (null_cleanup, NULL);
+  VEC (char_ptr) *group_retlist = NULL;
+  VEC (char_ptr) *syscall_retlist = NULL;
+  VEC (char_ptr) *retlist = NULL;
+  const char **group_list = NULL;
+  const char **syscall_list = NULL;
+  const char *prefix;
+  int i;
+
+  /* Completion considers ':' to be a word separator, so we use this to
+     verify whether the previous word was a group prefix.  If so, we
+     build the completion list using group names only.  */
+  for (prefix = word; prefix != text && prefix[-1] != ' '; prefix--)
+    ;
+
+  if (strncmp (prefix, "g:", sizeof ("g:") - 1) == 0
+      || strncmp (prefix, "group:", sizeof ("group:") - 1) == 0)
+    {
+      /* Perform completion inside 'group:' namespace only.  */
+      group_list = get_syscall_group_names (gdbarch);
+      retlist = (group_list == NULL
+		 ? NULL : complete_on_enum (group_list, word, word));
+    }
+  else
+    {
+      /* Complete with both, syscall names and groups.  */
+      syscall_list = get_syscall_names (gdbarch);
+      group_list = get_syscall_group_names (gdbarch);
+
+      /* Append "group:" prefix to syscall groups.  */
+      for (i = 0; group_list[i] != NULL; i++)
+	{
+	  char *prefixed_group = xstrprintf ("group:%s", group_list[i]);
+
+	  group_list[i] = prefixed_group;
+	  make_cleanup (xfree, prefixed_group);
+	}
+
+      syscall_retlist = ((syscall_list == NULL)
+			 ? NULL : complete_on_enum (syscall_list, word, word));
+      group_retlist = ((group_list == NULL)
+		       ? NULL : complete_on_enum (group_list, word, word));
+
+      retlist = VEC_merge (char_ptr, syscall_retlist, group_retlist);
+    }
+
+  VEC_free (char_ptr, syscall_retlist);
+  VEC_free (char_ptr, group_retlist);
+  xfree (syscall_list);
+  xfree (group_list);
+  do_cleanups (cleanups);
 
-  xfree (list);
   return retlist;
 }
 
-- 
2.1.0

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v4 3/5] Add tests for catching groups of syscalls on supported architectures.
  2015-05-11  0:28               ` [PATCH v4 0/4] catch " Gabriel Krisman Bertazi
                                   ` (2 preceding siblings ...)
  2015-05-11  0:28                 ` [PATCH v4 5/5] Update documentation on catching a group of related syscalls Gabriel Krisman Bertazi
@ 2015-05-11  0:28                 ` Gabriel Krisman Bertazi
  2015-05-11  0:28                 ` [PATCH v4 4/5] Include group information in xml syscall files Gabriel Krisman Bertazi
  2015-05-13 10:47                 ` [PATCH v4 0/4] catch syscall group Pedro Alves
  5 siblings, 0 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-05-11  0:28 UTC (permalink / raw)
  To: sergiodj; +Cc: palves, gdb-patches, dje, Gabriel Krisman Bertazi

gdb/testsuite/

	* gdb.base/catch-syscall.exp (do_syscall_tests): Add call
	to test_catch_syscall_group.
	(test_catch_syscall_group): New.
---
 gdb/testsuite/gdb.base/catch-syscall.exp | 39 ++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gdb/testsuite/gdb.base/catch-syscall.exp b/gdb/testsuite/gdb.base/catch-syscall.exp
index df0004a..a59eb3d 100644
--- a/gdb/testsuite/gdb.base/catch-syscall.exp
+++ b/gdb/testsuite/gdb.base/catch-syscall.exp
@@ -269,6 +269,42 @@ proc test_catch_syscall_fail_nodatadir {} {
     }
 }
 
+proc test_catch_syscall_group {} {
+    global decimal
+
+    set sysnum "\\\[${decimal}\\\]"
+
+    gdb_test "catch syscall g:process" \
+	"Catchpoint $decimal \\(syscalls (\'(clone|fork|execve|exit)\' $sysnum)+.*" \
+	"set catchpoint on a group of syscalls"
+
+    gdb_test "catch syscall group:process read" \
+	"Catchpoint $decimal \\(syscalls (\'(clone|fork|execve|exit)\' $sysnum)+.*read.*\\)" \
+	"set catchpoints on a group of syscalls and on a single syscall"
+
+    gdb_test "catch syscall group:" \
+	"Unknown syscall group ''\." \
+	"set catchpoints on an invalid group"
+
+    gdb_test "catch syscall g:junk" \
+	"Unknown syscall group 'junk'\." \
+	"set catchpoints on an unknown group."
+
+    gdb_test "complete catch syscall g:proc" \
+	"catch syscall g:process" \
+	"complete catch syscall group with 'g:' prefix"
+
+    gdb_test "complete catch syscall group:proc" \
+	"catch syscall group:process" \
+	"complete catch syscall group with 'group:' prefix"
+
+    gdb_test_sequence "complete catch syscall g" \
+	"complete catch syscall group suggests 'group:' prefix" {
+	    "group:descriptor" "group:file" "group:ipc" "group:memory"
+	    "group:network" "group:process" "group:signal"
+	}
+}
+
 proc do_syscall_tests {} {
     # NOTE: We don't have to point gdb at the correct data-directory.
     # For the build tree that is handled by INTERNAL_GDBFLAGS.
@@ -309,6 +345,9 @@ proc do_syscall_tests {} {
     # Testing if the 'catch syscall' command works when switching to
     # different architectures on-the-fly (PR gdb/10737).
     if [runto_main] then { test_catch_syscall_multi_arch }
+
+    # Testing the 'catch' syscall command for a group of syscalls.
+    if [runto_main] then { test_catch_syscall_group }
 }
 
 proc test_catch_syscall_without_args_noxml {} {
-- 
2.1.0

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v4 0/4] catch syscall group
  2015-05-10 19:01             ` Sergio Durigan Junior
@ 2015-05-11  0:28               ` Gabriel Krisman Bertazi
  2015-05-11  0:28                 ` [PATCH v4 2/5] Add support to catch groups of syscalls Gabriel Krisman Bertazi
                                   ` (5 more replies)
  2015-05-11 11:39               ` [PATCH v3 00/17] Catch " Pedro Alves
  1 sibling, 6 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-05-11  0:28 UTC (permalink / raw)
  To: sergiodj; +Cc: palves, gdb-patches, dje, Gabriel Krisman Bertazi

Thank you both for your review.

This version has the following improvements:

* Apply fixes suggested by Sergio in the testsuite.
* Use xsltproc to generate the xml files.

Regarding the last change, it allowed me to identify inconsistencies in
groups for some architectures.  The current design makes sure these
inconsistencies are fixed by centralizing the group information in a
single file.

Also, this patch series *does not* include the generated files because
they are too big and can get in the way of code review.  Reviewers must
generate those files by hand by entering the gdb/syscalls directory and
running the makefile there.  Build will fail if reviewer don't do this!
Once we get this approved, I'll make sure to include the generated files
in the commit before pushing.  Hopefully this will make code review
easier.

Also, I generated this format-patch with --find-renames.  If it gets in
the way of git am/git apply, please let me know and I'll resend it.

As usual, I'm not resending the documentation patch again because it was
already approved by Eli.

Thanks!

Gabriel Krisman Bertazi (4):
  Implemement support for groups of syscalls in the xml-syscall    
    interface.
  Add support to catch groups of syscalls.
  Add tests for catching groups of syscalls on supported    
    architectures.
  Include group information in xml syscall files.

 gdb/break-catch-syscall.c                          |  94 +++++++-
 gdb/syscalls/Makefile                              |  42 ++++
 .../{aarch64-linux.xml => aarch64-linux.xml.in}    |   0
 .../{amd64-linux.xml => amd64-linux.xml.in}        |   0
 gdb/syscalls/apply-defaults.xsl                    |  27 +++
 gdb/syscalls/{arm-linux.xml => arm-linux.xml.in}   |   0
 gdb/syscalls/{bfin-linux.xml => bfin-linux.xml.in} |   0
 gdb/syscalls/gdb-syscalls.dtd                      |   3 +-
 gdb/syscalls/{i386-linux.xml => i386-linux.xml.in} |   0
 gdb/syscalls/linux-defaults.xml.in                 | 243 +++++++++++++++++++++
 .../{mips-n32-linux.xml => mips-n32-linux.xml.in}  |   0
 .../{mips-n64-linux.xml => mips-n64-linux.xml.in}  |   0
 .../{mips-o32-linux.xml => mips-o32-linux.xml.in}  |   0
 gdb/syscalls/{ppc-linux.xml => ppc-linux.xml.in}   |   0
 .../{ppc64-linux.xml => ppc64-linux.xml.in}        |   0
 gdb/syscalls/{s390-linux.xml => s390-linux.xml.in} |   0
 .../{s390x-linux.xml => s390x-linux.xml.in}        |   0
 .../{sparc-linux.xml => sparc-linux.xml.in}        |   0
 .../{sparc64-linux.xml => sparc64-linux.xml.in}    |   0
 gdb/testsuite/gdb.base/catch-syscall.exp           |  39 ++++
 gdb/xml-syscall.c                                  | 231 +++++++++++++++++++-
 gdb/xml-syscall.h                                  |  16 ++
 22 files changed, 683 insertions(+), 12 deletions(-)
 create mode 100644 gdb/syscalls/Makefile
 rename gdb/syscalls/{aarch64-linux.xml => aarch64-linux.xml.in} (100%)
 rename gdb/syscalls/{amd64-linux.xml => amd64-linux.xml.in} (100%)
 create mode 100644 gdb/syscalls/apply-defaults.xsl
 rename gdb/syscalls/{arm-linux.xml => arm-linux.xml.in} (100%)
 rename gdb/syscalls/{bfin-linux.xml => bfin-linux.xml.in} (100%)
 rename gdb/syscalls/{i386-linux.xml => i386-linux.xml.in} (100%)
 create mode 100644 gdb/syscalls/linux-defaults.xml.in
 rename gdb/syscalls/{mips-n32-linux.xml => mips-n32-linux.xml.in} (100%)
 rename gdb/syscalls/{mips-n64-linux.xml => mips-n64-linux.xml.in} (100%)
 rename gdb/syscalls/{mips-o32-linux.xml => mips-o32-linux.xml.in} (100%)
 rename gdb/syscalls/{ppc-linux.xml => ppc-linux.xml.in} (100%)
 rename gdb/syscalls/{ppc64-linux.xml => ppc64-linux.xml.in} (100%)
 rename gdb/syscalls/{s390-linux.xml => s390-linux.xml.in} (100%)
 rename gdb/syscalls/{s390x-linux.xml => s390x-linux.xml.in} (100%)
 rename gdb/syscalls/{sparc-linux.xml => sparc-linux.xml.in} (100%)
 rename gdb/syscalls/{sparc64-linux.xml => sparc64-linux.xml.in} (100%)

-- 
2.1.0

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v4 1/5] Implemement support for groups of syscalls in the xml-syscall interface.
  2015-05-11  0:28               ` [PATCH v4 0/4] catch " Gabriel Krisman Bertazi
  2015-05-11  0:28                 ` [PATCH v4 2/5] Add support to catch groups of syscalls Gabriel Krisman Bertazi
@ 2015-05-11  0:28                 ` Gabriel Krisman Bertazi
  2015-05-11  0:28                 ` [PATCH v4 5/5] Update documentation on catching a group of related syscalls Gabriel Krisman Bertazi
                                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-05-11  0:28 UTC (permalink / raw)
  To: sergiodj; +Cc: palves, gdb-patches, dje, Gabriel Krisman Bertazi

This implements support for groups of syscalls in the xml-syscall
interface.

It is done by maintaining a list of syscall_group_desc for each syscall
group inside the syscalls_info structure.  Inside each
syscall_group_desc we have a vector of pointers to the syscalls that are
part of that group.

I also experimented with storing the group info inside each syscall_desc
element, but that wasn't very practical when dealing with syscalls that
are part of more than one group. :)

gdb/

	* syscalls/gdb-syscalls.dtd: Include group attribute to the
	syscall element.
	* xml-syscall.c (get_syscalls_by_group): New.
	(get_syscall_group_names): New.
	(struct syscall_group_desc): New structure to store group data.
	(struct syscalls_info): Include field to store the group list.
	(sysinfo_free_syscall_group_desc): New.
	(free_syscalls_info): Free group list.
	(syscall_group_create_syscall_group_desc): New.
	(syscall_group_add_syscall): New.
	(syscall_create_syscall_desc): Add syscall to its groups.
	(syscall_start_syscall): Load group attribute.
	(syscall_group_get_group_by_name): New.
	(xml_list_syscalls_by_group): New.
	(xml_list_of_groups): New.
	* xml-syscall.h (get_syscalls_by_group): Export function
	to retrieve a list of syscalls filtered by the group name.
	(get_syscall_group_names): Export function to retrieve the list
	of syscall groups.
---
 gdb/syscalls/gdb-syscalls.dtd |   3 +-
 gdb/xml-syscall.c             | 231 +++++++++++++++++++++++++++++++++++++++++-
 gdb/xml-syscall.h             |  16 +++
 3 files changed, 247 insertions(+), 3 deletions(-)

diff --git a/gdb/syscalls/gdb-syscalls.dtd b/gdb/syscalls/gdb-syscalls.dtd
index b05976e..66eb62f 100644
--- a/gdb/syscalls/gdb-syscalls.dtd
+++ b/gdb/syscalls/gdb-syscalls.dtd
@@ -11,4 +11,5 @@
 <!ELEMENT syscall		EMPTY>
 <!ATTLIST syscall
 	name			CDATA	#REQUIRED
-	number			CDATA	#REQUIRED>
+	number			CDATA	#REQUIRED
+	groups			CDATA	#IMPLIED>
diff --git a/gdb/xml-syscall.c b/gdb/xml-syscall.c
index ea85a2c..e171dba 100644
--- a/gdb/xml-syscall.c
+++ b/gdb/xml-syscall.c
@@ -77,6 +77,20 @@ get_syscall_names (struct gdbarch *gdbarch)
   return NULL;
 }
 
+struct syscall *
+get_syscalls_by_group (struct gdbarch *gdbarch, const char *group)
+{
+  syscall_warn_user ();
+  return NULL;
+}
+
+const char **
+get_syscall_group_names (struct gdbarch *gdbarch)
+{
+  syscall_warn_user ();
+  return NULL;
+}
+
 #else /* ! HAVE_LIBEXPAT */
 
 /* Structure which describes a syscall.  */
@@ -92,6 +106,19 @@ typedef struct syscall_desc
 } *syscall_desc_p;
 DEF_VEC_P(syscall_desc_p);
 
+/* Structure of a syscall group.  */
+typedef struct syscall_group_desc
+{
+  /* The group name.  */
+
+  char *name;
+
+  /* The syscalls that are part of the group.  */
+
+  VEC(syscall_desc_p) *syscalls;
+} *syscall_group_desc_p;
+DEF_VEC_P(syscall_group_desc_p);
+
 /* Structure that represents syscalls information.  */
 struct syscalls_info
 {
@@ -99,6 +126,10 @@ struct syscalls_info
 
   VEC(syscall_desc_p) *syscalls;
 
+  /* The syscall groups.  */
+
+  VEC(syscall_group_desc_p) *groups;
+
   /* Variable that will hold the last known data-directory.  This is
      useful to know whether we should re-read the XML info for the
      target.  */
@@ -126,11 +157,21 @@ syscalls_info_free_syscalls_desc (struct syscall_desc *sd)
   xfree (sd->name);
 }
 
+/* Free syscall_group_desc members but not the structure itself.  */
+
+static void
+syscalls_info_free_syscall_group_desc (struct syscall_group_desc *sd)
+{
+  VEC_free (syscall_desc_p, sd->syscalls);
+  xfree (sd->name);
+}
+
 static void
 free_syscalls_info (void *arg)
 {
   struct syscalls_info *syscalls_info = arg;
   struct syscall_desc *sysdesc;
+  struct syscall_group_desc *groupdesc;
   int i;
 
   xfree (syscalls_info->my_gdb_datadir);
@@ -144,6 +185,17 @@ free_syscalls_info (void *arg)
       VEC_free (syscall_desc_p, syscalls_info->syscalls);
     }
 
+  if (syscalls_info->groups != NULL)
+    {
+      for (i = 0;
+	   VEC_iterate (syscall_group_desc_p,
+			syscalls_info->groups, i, groupdesc);
+	   i++)
+	syscalls_info_free_syscall_group_desc (groupdesc);
+
+      VEC_free (syscall_group_desc_p, syscalls_info->groups);
+    }
+
   xfree (syscalls_info);
 }
 
@@ -153,16 +205,73 @@ make_cleanup_free_syscalls_info (struct syscalls_info *syscalls_info)
   return make_cleanup (free_syscalls_info, syscalls_info);
 }
 
+/* Create a new syscall group.  Return pointer to the
+   syscall_group_desc structure that represents the new group.  */
+
+static struct syscall_group_desc *
+syscall_group_create_syscall_group_desc (struct syscalls_info *syscalls_info,
+					 const char *group)
+{
+  struct syscall_group_desc *groupdesc = XCNEW (struct syscall_group_desc);
+
+  groupdesc->name = xstrdup (group);
+
+  VEC_safe_push (syscall_group_desc_p, syscalls_info->groups, groupdesc);
+
+  return groupdesc;
+}
+
+/* Add a syscall to the group.  If group doesn't exist, create it.  */
+
+static void
+syscall_group_add_syscall (struct syscalls_info *syscalls_info,
+			   struct syscall_desc *syscall,
+			   const char *group)
+{
+  struct syscall_group_desc *groupdesc;
+  int i;
+
+  /* Search for an existing group.  */
+  for (i = 0;
+       VEC_iterate (syscall_group_desc_p, syscalls_info->groups, i, groupdesc);
+       i++)
+    {
+      if (strcmp (groupdesc->name, group) == 0)
+	break;
+    }
+
+  if (groupdesc == NULL)
+    {
+      /* No group was found with this name.  We must create a new
+	 one.  */
+      groupdesc = syscall_group_create_syscall_group_desc (syscalls_info,
+							   group);
+    }
+
+  VEC_safe_push (syscall_desc_p, groupdesc->syscalls, syscall);
+}
+
 static void
 syscall_create_syscall_desc (struct syscalls_info *syscalls_info,
-                             const char *name, int number)
+			     const char *name, int number,
+			     char *groups)
 {
   struct syscall_desc *sysdesc = XCNEW (struct syscall_desc);
+  char *group;
 
   sysdesc->name = xstrdup (name);
   sysdesc->number = number;
 
   VEC_safe_push (syscall_desc_p, syscalls_info->syscalls, sysdesc);
+
+  /*  Add syscall to its groups.  */
+  if (groups != NULL)
+    {
+      for (group = strtok (groups, ",");
+	   group != NULL;
+	   group = strtok (NULL, ","))
+	syscall_group_add_syscall (syscalls_info, sysdesc, group);
+    }
 }
 
 /* Handle the start of a <syscall> element.  */
@@ -177,6 +286,7 @@ syscall_start_syscall (struct gdb_xml_parser *parser,
   /* syscall info.  */
   char *name = NULL;
   int number = 0;
+  char *groups = NULL;
 
   len = VEC_length (gdb_xml_value_s, attributes);
 
@@ -186,13 +296,15 @@ syscall_start_syscall (struct gdb_xml_parser *parser,
         name = attrs[i].value;
       else if (strcmp (attrs[i].name, "number") == 0)
         number = * (ULONGEST *) attrs[i].value;
+      else if (strcmp (attrs[i].name, "groups") == 0)
+        groups = attrs[i].value;
       else
         internal_error (__FILE__, __LINE__,
                         _("Unknown attribute name '%s'."), attrs[i].name);
     }
 
   gdb_assert (name);
-  syscall_create_syscall_desc (data->syscalls_info, name, number);
+  syscall_create_syscall_desc (data->syscalls_info, name, number, groups);
 }
 
 
@@ -200,6 +312,7 @@ syscall_start_syscall (struct gdb_xml_parser *parser,
 static const struct gdb_xml_attribute syscall_attr[] = {
   { "number", GDB_XML_AF_NONE, gdb_xml_parse_attr_ulongest, NULL },
   { "name", GDB_XML_AF_NONE, NULL, NULL },
+  { "groups", GDB_XML_AF_OPTIONAL, NULL, NULL },
   { NULL, GDB_XML_AF_NONE, NULL, NULL }
 };
 
@@ -321,6 +434,32 @@ init_syscalls_info (struct gdbarch *gdbarch)
   set_gdbarch_syscalls_info (gdbarch, syscalls_info);
 }
 
+/* Search for a syscall group by its name.  Return syscall_group_desc
+   structure for the group if found or NULL otherwise.  */
+
+static struct syscall_group_desc *
+syscall_group_get_group_by_name (const struct syscalls_info *syscalls_info,
+				 const char *group)
+{
+  struct syscall_group_desc *groupdesc;
+  int i;
+
+  if (syscalls_info == NULL)
+    return NULL;
+
+  if (group == NULL)
+    return NULL;
+
+   /* Search for existing group.  */
+  for (i = 0;
+       VEC_iterate (syscall_group_desc_p, syscalls_info->groups, i, groupdesc);
+       i++)
+    if (strcmp (groupdesc->name, group) == 0)
+      return groupdesc;
+
+  return NULL;
+}
+
 static int
 xml_get_syscall_number (struct gdbarch *gdbarch,
                         const char *syscall_name)
@@ -388,6 +527,74 @@ xml_list_of_syscalls (struct gdbarch *gdbarch)
   return names;
 }
 
+/* Iterate over the syscall_group_desc element to return a list of
+   syscalls that are part of the given group, terminated by an empty
+   element.  If the syscall group doesn't exist, return NULL.  */
+
+static struct syscall *
+xml_list_syscalls_by_group (struct gdbarch *gdbarch, const char *group)
+{
+  struct syscalls_info *syscalls_info = gdbarch_syscalls_info (gdbarch);
+  struct syscall_group_desc *groupdesc;
+  struct syscall_desc *sysdesc;
+  struct syscall *syscalls = NULL;
+  int nsyscalls;
+  int i;
+
+  if (syscalls_info == NULL)
+    return NULL;
+
+  groupdesc = syscall_group_get_group_by_name (syscalls_info, group);
+  if (groupdesc == NULL)
+    return NULL;
+
+  nsyscalls = VEC_length (syscall_desc_p, groupdesc->syscalls);
+  syscalls = xmalloc ((nsyscalls + 1) * sizeof (struct syscall));
+
+  for (i = 0;
+       VEC_iterate (syscall_desc_p, groupdesc->syscalls, i, sysdesc);
+       i++)
+    {
+      syscalls[i].name = sysdesc->name;
+      syscalls[i].number = sysdesc->number;
+    }
+
+  /* Add final element marker.  */
+  syscalls[i].name = NULL;
+  syscalls[i].number = 0;
+
+  return syscalls;
+}
+
+/* Return a NULL terminated list of syscall groups or an empty list, if
+   no syscall group is available.  Return NULL, if there is no syscall
+   information available.  */
+
+static const char **
+xml_list_of_groups (struct gdbarch *gdbarch)
+{
+  struct syscalls_info *syscalls_info = gdbarch_syscalls_info (gdbarch);
+  struct syscall_group_desc *groupdesc;
+  const char **names = NULL;
+  int i;
+  int ngroups;
+
+  if (syscalls_info == NULL)
+    return NULL;
+
+  ngroups = VEC_length (syscall_group_desc_p, syscalls_info->groups);
+  names = xmalloc ((ngroups + 1) * sizeof (char *));
+
+  for (i = 0;
+       VEC_iterate (syscall_group_desc_p, syscalls_info->groups, i, groupdesc);
+       i++)
+    names[i] = groupdesc->name;
+
+  names[i] = NULL;
+
+  return names;
+}
+
 void
 set_xml_syscall_file_name (struct gdbarch *gdbarch, const char *name)
 {
@@ -422,4 +629,24 @@ get_syscall_names (struct gdbarch *gdbarch)
   return xml_list_of_syscalls (gdbarch);
 }
 
+/* See comment in xml-syscall.h.  */
+
+struct syscall *
+get_syscalls_by_group (struct gdbarch *gdbarch, const char *group)
+{
+  init_syscalls_info (gdbarch);
+
+  return xml_list_syscalls_by_group (gdbarch, group);
+}
+
+/* See comment in xml-syscall.h.  */
+
+const char **
+get_syscall_group_names (struct gdbarch *gdbarch)
+{
+  init_syscalls_info (gdbarch);
+
+  return xml_list_of_groups (gdbarch);
+}
+
 #endif /* ! HAVE_LIBEXPAT */
diff --git a/gdb/xml-syscall.h b/gdb/xml-syscall.h
index 55c9696..a47a458 100644
--- a/gdb/xml-syscall.h
+++ b/gdb/xml-syscall.h
@@ -50,4 +50,20 @@ void get_syscall_by_name (struct gdbarch *gdbarch,
 
 const char **get_syscall_names (struct gdbarch *gdbarch);
 
+/* Function used to retrieve the list of syscalls of a given group in
+   the system.  Return a list of syscalls that are element of the
+   group, terminated by an empty element. The list is malloc'ed
+   and must be freed by the caller.  If group doesn't exist, return
+   NULL.  */
+
+struct syscall *get_syscalls_by_group (struct gdbarch *gdbarch,
+				       const char *group);
+
+/* Function used to retrieve the list of syscall groups in the system.
+   Return an array of strings terminated by a NULL element.  The list
+   must be freed by the caller.  Return NULL if there is no syscall
+   information available.  */
+
+const char **get_syscall_group_names (struct gdbarch *gdbarch);
+
 #endif /* XML_SYSCALL_H */
-- 
2.1.0

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH v4 5/5] Update documentation on catching a group of related syscalls.
  2015-05-11  0:28                 ` [PATCH v4 5/5] Update documentation on catching a group of related syscalls Gabriel Krisman Bertazi
@ 2015-05-11  0:40                   ` Gabriel Krisman Bertazi
  2015-05-13 10:30                     ` Pedro Alves
  0 siblings, 1 reply; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-05-11  0:40 UTC (permalink / raw)
  To: sergiodj; +Cc: palves, gdb-patches, dje

[-- Attachment #1: Type: text/plain, Size: 480 bytes --]

Gabriel Krisman Bertazi <gabriel@krisman.be> writes:

> gdb/
>
> 	* break-catch-syscall.c (_initialize_breakpoint): Update catch
> 	syscall command documentation.
> 	* NEWS: Include section about catching groups of syscalls.
>
> gdb/doc/
>
> 	* gdb.texinfo (Set Catchpoints): Add 'group' argument to catch
> 	syscall.

Oops,

Sorry, I sent the documentation patch again.  Please, ignore this one,
Eli already approved it twice. :)

-- 
Gabriel Krisman Bertazi

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH v3 00/17] Catch syscall group
  2015-05-10 19:01             ` Sergio Durigan Junior
  2015-05-11  0:28               ` [PATCH v4 0/4] catch " Gabriel Krisman Bertazi
@ 2015-05-11 11:39               ` Pedro Alves
  1 sibling, 0 replies; 42+ messages in thread
From: Pedro Alves @ 2015-05-11 11:39 UTC (permalink / raw)
  To: Sergio Durigan Junior, Gabriel Krisman Bertazi; +Cc: gdb-patches, dje

On 05/10/2015 08:01 PM, Sergio Durigan Junior wrote:
> On Sunday, May 10 2015, Gabriel Krisman Bertazi wrote:
> 
>> I noticed that the GDB build step currently doesn't depend on xsltproc.
>> It is used only in gdb/features/Makefile to generate some .dat files,
>> that are also included in the repository at gdb/regformat.  Am I right?
> 
> Yes.  This is a common practice inside GDB.
> 
>> At first, I intended to use xsltproc as a build step and only provide
>> the *.xml.in files in the repository.  But that would have the side
>> effect of forcing xsltproc to be available at build time, and I don't
>> know if is acceptable.
> 
> I don't see any reason to make GDB depend on xsltproc.  You are
> basically doing all this work because it makes things easier to
> maintain, but there is no reason to force the user to install a XSLT
> processor.
> 
>> Other possibility would be to also push the generated files to the
>> repository.  We'd keep them in gdb/syscalls/generated/, or something
>> like that, and have a script to update the xmls when needed.
> 
> There is no reason to regenerate the XML files every time we build GDB,
> because they would be the same every time, unless someone makes a
> modification on the .in files.  The same applies, for example, to
> configure.ac or gdbarch.sh.
> 
> This is the modus operandi here: put the generated files in the tree,
> along with the templates.  I am against creating a "generated/"
> directory inside gdb/syscalls/.  Just put the template files (*.in) in
> the gdb/syscalls/ dir, and that's all.  Don't forget to include a README
> with instructions on how to regenerate the XML files.
> 

Agreed.

Thanks,
Pedro Alves

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH v4 4/5] Include group information in xml syscall files.
  2015-05-11  0:28                 ` [PATCH v4 4/5] Include group information in xml syscall files Gabriel Krisman Bertazi
@ 2015-05-12 21:42                   ` Doug Evans
  2015-05-13  1:17                     ` Gabriel Krisman Bertazi
  2015-05-13 10:43                   ` Pedro Alves
  1 sibling, 1 reply; 42+ messages in thread
From: Doug Evans @ 2015-05-12 21:42 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi; +Cc: Sergio Durigan Junior, Pedro Alves, gdb-patches

On Sun, May 10, 2015 at 5:27 PM, Gabriel Krisman Bertazi
<gabriel@krisman.be> wrote:
> We maintain linux-defaults.xml.in, a template file to hold generic group
> information.  It is used by the XSL script that parses the architecture
> specific files to generate the final xml files, which are actually
> installed and loaded by GDB.  The script is not run during the build
> process, and must be run manually by a GDB maintainer when there is need
> to update the syscalls information files.
>
> gdb/
>
>         * syscalls/Makefile: New file.

Hi.
I would have expected syscalls/Makefile.in,
with requisite changes to generate Makefile in some configure.ac file.

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH v4 4/5] Include group information in xml syscall files.
  2015-05-12 21:42                   ` Doug Evans
@ 2015-05-13  1:17                     ` Gabriel Krisman Bertazi
  0 siblings, 0 replies; 42+ messages in thread
From: Gabriel Krisman Bertazi @ 2015-05-13  1:17 UTC (permalink / raw)
  To: Doug Evans; +Cc: Sergio Durigan Junior, Pedro Alves, gdb-patches

[-- Attachment #1: Type: text/plain, Size: 1146 bytes --]

Doug Evans <dje@google.com> writes:

> I would have expected syscalls/Makefile.in,
> with requisite changes to generate Makefile in some configure.ac file.

Hi Doug,

I saw your other message and I'll surely answer and apply your
suggestions as soon as I can, but let me make a quick question and
comment on my design here :)

I tried to follow the exact same design we have in gdb/Features.  There,
we only have a Makefile that doesn't depend on the configure script.  If
I understand correctly, all it takes to generate the files is a simple
'make blah'.  I tried to reproduce this behavior here.

Even though I understand the obvious benefits of using the configure
script, is there any actual differences between the expected behavior in
gdb/Features/Makefile that justifies it being a simple Makefile?  If
not, I'll probably work on a follow-up patch adjusting it, as well.

Btw, can any of you guys provide me with more information about the
maintainers mode?  I couldn't find many explanations in the Internals
wiki.  I can update the wiki once I have a better understanding of
it.

-- 
Gabriel Krisman Bertazi

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH v4 5/5] Update documentation on catching a group of related syscalls.
  2015-05-11  0:40                   ` Gabriel Krisman Bertazi
@ 2015-05-13 10:30                     ` Pedro Alves
  2015-05-13 16:40                       ` Eli Zaretskii
  0 siblings, 1 reply; 42+ messages in thread
From: Pedro Alves @ 2015-05-13 10:30 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi, sergiodj; +Cc: gdb-patches, dje

On 05/11/2015 01:40 AM, Gabriel Krisman Bertazi wrote:
> Gabriel Krisman Bertazi <gabriel@krisman.be> writes:
> 
>> gdb/
>>
>> 	* break-catch-syscall.c (_initialize_breakpoint): Update catch
>> 	syscall command documentation.
>> 	* NEWS: Include section about catching groups of syscalls.
>>
>> gdb/doc/
>>
>> 	* gdb.texinfo (Set Catchpoints): Add 'group' argument to catch
>> 	syscall.
> 
> Oops,
> 
> Sorry, I sent the documentation patch again.  Please, ignore this one,
> Eli already approved it twice. :)

Generally, personally, in such cases, I prefer that an already approved patch
is included in the series.  That is, it makes it easier for people to review
the whole series on its own.  Don't assume that people still have context
on previous discussions and patches in their heads.  For example, I didn't
really follow v1 and v2 closely (was OOO when most of the discussions
happened, I think), and when I saw v3 I had to go hunt for the
documentation patch.  You can just mention in the patch intro that it is
already approved.

Thanks,
Pedro Alves

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH v4 2/5] Add support to catch groups of syscalls.
  2015-05-11  0:28                 ` [PATCH v4 2/5] Add support to catch groups of syscalls Gabriel Krisman Bertazi
@ 2015-05-13 10:38                   ` Pedro Alves
  0 siblings, 0 replies; 42+ messages in thread
From: Pedro Alves @ 2015-05-13 10:38 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi, sergiodj; +Cc: gdb-patches, dje

On 05/11/2015 01:27 AM, Gabriel Krisman Bertazi wrote:
>  catch_syscall_completer (struct cmd_list_element *cmd,
>                           const char *text, const char *word)
>  {
> -  const char **list = get_syscall_names (get_current_arch ());
> -  VEC (char_ptr) *retlist
> -    = (list == NULL) ? NULL : complete_on_enum (list, word, word);
> +  struct gdbarch *gdbarch = get_current_arch ();
> +  struct cleanup *cleanups = make_cleanup (null_cleanup, NULL);
> +  VEC (char_ptr) *group_retlist = NULL;
> +  VEC (char_ptr) *syscall_retlist = NULL;
> +  VEC (char_ptr) *retlist = NULL;
> +  const char **group_list = NULL;
> +  const char **syscall_list = NULL;
> +  const char *prefix;
> +  int i;
> +

> +      /* Complete with both, syscall names and groups.  */
> +      syscall_list = get_syscall_names (gdbarch);
> +      group_list = get_syscall_group_names (gdbarch);
> +
> +      /* Append "group:" prefix to syscall groups.  */
> +      for (i = 0; group_list[i] != NULL; i++)
> +	{
> +	  char *prefixed_group = xstrprintf ("group:%s", group_list[i]);
> +
> +	  group_list[i] = prefixed_group;
> +	  make_cleanup (xfree, prefixed_group);
> +	}
> +

...

> +  VEC_free (char_ptr, syscall_retlist);
> +  VEC_free (char_ptr, group_retlist);
> +  xfree (syscall_list);
> +  xfree (group_list);
> +  do_cleanups (cleanups);
>  

Odd pattern of mixing VEC_free/xfree and cleanups.
Any reason those don't go through cleanups too?  Note: for
VECs, there's VEC_cleanup.

> -  xfree (list);
>    return retlist;
>  }
>  

Thanks,
Pedro Alves

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH v4 4/5] Include group information in xml syscall files.
  2015-05-11  0:28                 ` [PATCH v4 4/5] Include group information in xml syscall files Gabriel Krisman Bertazi
  2015-05-12 21:42                   ` Doug Evans
@ 2015-05-13 10:43                   ` Pedro Alves
  1 sibling, 0 replies; 42+ messages in thread
From: Pedro Alves @ 2015-05-13 10:43 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi, sergiodj; +Cc: gdb-patches, dje

On 05/11/2015 01:27 AM, Gabriel Krisman Bertazi wrote:
> We maintain linux-defaults.xml.in, a template file to hold generic group
> information.  It is used by the XSL script that parses the architecture
> specific files to generate the final xml files, which are actually
> installed and loaded by GDB.  The script is not run during the build
> process, and must be run manually by a GDB maintainer when there is need
> to update the syscalls information files.
> 
> gdb/
> 
> 	* syscalls/Makefile: New file.
> 	* syscalls/apply-defaults.xsl: New file.
> 	* syscalls/linux-defaults.xml.in: New file.
> 	* syscalls/aarch64-linux.xml: Rename to aarch64-linux.xml.in.
> 	* syscalls/amd64-linux.xml: Rename to amd64-linux.xml.in.
> 	* syscalls/arm-linux.xml: Rename to arm-linux.xml.in.
> 	* syscalls/bfin-linux.xml: Rename to bfin-linux.xml.in.
> 	* syscalls/i386-linux.xml: Rename to i386-linux.xml.in.
> 	* syscalls/mips-n32-linux.xml: Rename to mips-n32-linux.xml.in.
> 	* syscalls/mips-n64-linux.xml: Rename to mips-n64-linux.xml.in.
> 	* syscalls/mips-o32-linux.xml: Rename to mips-o32-linux.xml.in.
> 	* syscalls/ppc-linux.xml: Rename to ppc-linux.xml.in.
> 	* syscalls/ppc64-linux.xml: Rename to ppc64-linux.xml.in.
> 	* syscalls/s390-linux.xml: Rename to s390-linux.xml.in.
> 	* syscalls/s390x-linux.xml: Rename to s390x-linux.xml.in.
> 	* syscalls/sparc-linux.xml: Rename to sparc-linux.xml.in.
> 	* syscalls/sparc64-linux.xml: Rename to sparc64-linux.xml.in.
> ---
>  gdb/syscalls/Makefile                              |  41 ++++
>  .../{aarch64-linux.xml => aarch64-linux.xml.in}    |   0
>  .../{amd64-linux.xml => amd64-linux.xml.in}        |   0
>  gdb/syscalls/apply-defaults.xsl                    |  27 +++
>  gdb/syscalls/{arm-linux.xml => arm-linux.xml.in}   |   0
>  gdb/syscalls/{bfin-linux.xml => bfin-linux.xml.in} |   0
>  gdb/syscalls/{i386-linux.xml => i386-linux.xml.in} |   0
>  gdb/syscalls/linux-defaults.xml.in                 | 243 +++++++++++++++++++++
>  .../{mips-n32-linux.xml => mips-n32-linux.xml.in}  |   0
>  .../{mips-n64-linux.xml => mips-n64-linux.xml.in}  |   0
>  .../{mips-o32-linux.xml => mips-o32-linux.xml.in}  |   0
>  gdb/syscalls/{ppc-linux.xml => ppc-linux.xml.in}   |   0
>  .../{ppc64-linux.xml => ppc64-linux.xml.in}        |   0
>  gdb/syscalls/{s390-linux.xml => s390-linux.xml.in} |   0
>  .../{s390x-linux.xml => s390x-linux.xml.in}        |   0
>  .../{sparc-linux.xml => sparc-linux.xml.in}        |   0
>  .../{sparc64-linux.xml => sparc64-linux.xml.in}    |   0
>  17 files changed, 311 insertions(+)
>  create mode 100644 gdb/syscalls/Makefile
>  rename gdb/syscalls/{aarch64-linux.xml => aarch64-linux.xml.in} (100%)
>  rename gdb/syscalls/{amd64-linux.xml => amd64-linux.xml.in} (100%)
>  create mode 100644 gdb/syscalls/apply-defaults.xsl
>  rename gdb/syscalls/{arm-linux.xml => arm-linux.xml.in} (100%)
>  rename gdb/syscalls/{bfin-linux.xml => bfin-linux.xml.in} (100%)
>  rename gdb/syscalls/{i386-linux.xml => i386-linux.xml.in} (100%)
>  create mode 100644 gdb/syscalls/linux-defaults.xml.in
>  rename gdb/syscalls/{mips-n32-linux.xml => mips-n32-linux.xml.in} (100%)
>  rename gdb/syscalls/{mips-n64-linux.xml => mips-n64-linux.xml.in} (100%)
>  rename gdb/syscalls/{mips-o32-linux.xml => mips-o32-linux.xml.in} (100%)
>  rename gdb/syscalls/{ppc-linux.xml => ppc-linux.xml.in} (100%)
>  rename gdb/syscalls/{ppc64-linux.xml => ppc64-linux.xml.in} (100%)
>  rename gdb/syscalls/{s390-linux.xml => s390-linux.xml.in} (100%)
>  rename gdb/syscalls/{s390x-linux.xml => s390x-linux.xml.in} (100%)
>  rename gdb/syscalls/{sparc-linux.xml => sparc-linux.xml.in} (100%)
>  rename gdb/syscalls/{sparc64-linux.xml => sparc64-linux.xml.in} (100%)
> 
> diff --git a/gdb/syscalls/Makefile b/gdb/syscalls/Makefile
> new file mode 100644
> index 0000000..30fa4e4
> --- /dev/null
> +++ b/gdb/syscalls/Makefile
> @@ -0,0 +1,41 @@
> +# Copyright (C) 2007-2015 Free Software Foundation, Inc.
> +
> +# This file is part of GDB.
> +
> +# This program is free software; you can redistribute it and/or modify
> +# it under the terms of the GNU General Public License as published by
> +# the Free Software Foundation; either version 3 of the License, or
> +# (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
> +
> +# This file requires GNU make!
> +
> +# This Makefile generates the XML syscall files from their xml.in and
> +# *-defaults.xml counterparts.  Because this relies on xsltproc, it is
> +# not normally run during the build process; it should be run by hand
> +# when one of the affected source files is changed, and the results
> +# should be kept in the GDB repository.
> +
> +# To generate the updated xml files, just enter the syscalls directory
> +# and run
> +#
> +# $ make
> +
> +XSLTPROC = xsltproc
> +SYSCALL_FILES = aarch64-linux.xml arm-linux.xml mips-n64-linux.xml \
> +	ppc64-linux.xml s390-linux.xml sparc64-linux.xml \
> +	amd64-linux.xml bfin-linux.xml i386-linux.xml \
> +	mips-n32-linux.xml mips-o32-linux.xml ppc-linux.xml \
> +	s390x-linux.xml sparc-linux.xml
> +
> +all: $(SYSCALL_FILES)
> +
> +%.xml: %.xml.in apply-defaults.xsl linux-defaults.xml.in
> +	$(XSLTPROC) -o $@ apply-defaults.xsl $<
> diff --git a/gdb/syscalls/aarch64-linux.xml b/gdb/syscalls/aarch64-linux.xml.in
> similarity index 100%
> rename from gdb/syscalls/aarch64-linux.xml
> rename to gdb/syscalls/aarch64-linux.xml.in
> diff --git a/gdb/syscalls/amd64-linux.xml b/gdb/syscalls/amd64-linux.xml.in
> similarity index 100%
> rename from gdb/syscalls/amd64-linux.xml
> rename to gdb/syscalls/amd64-linux.xml.in
> diff --git a/gdb/syscalls/apply-defaults.xsl b/gdb/syscalls/apply-defaults.xsl
> new file mode 100644
> index 0000000..5b7f224
> --- /dev/null
> +++ b/gdb/syscalls/apply-defaults.xsl
> @@ -0,0 +1,27 @@
> +<!-- Copyright (C) 2015 Free Software Foundation, Inc.
> +
> +     Copying and distribution of this file, with or without modification,
> +     are permitted in any medium without royalty provided the copyright
> +     notice and this notice are preserved.  -->
> +
> +<xsl:stylesheet version="1.0"
> +		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> +  <xsl:output method="xml" doctype-system="gdb-syscalls.dtd"/>
> +
> +  <xsl:template match="node()|@*" name="identity">
> +    <xsl:copy>
> +      <xsl:apply-templates select="node()|@*"/>
> +    </xsl:copy>
> +  </xsl:template>
> +
> +  <xsl:template match="/syscalls_info/syscall">
> +    <xsl:copy>
> +      <xsl:apply-templates select="@*|node()"/>
> +      <xsl:variable name="syscall"><xsl:value-of select="@name"/></xsl:variable>
> +      <xsl:for-each select="document('linux-defaults.xml.in')/syscalls_defaults/child::*[@name=$syscall]">
> +	<xsl:attribute name="groups"><xsl:value-of select="@groups"/></xsl:attribute>
> +      </xsl:for-each>
> +    </xsl:copy>
> +  </xsl:template>
> +
> +</xsl:stylesheet>
> diff --git a/gdb/syscalls/arm-linux.xml b/gdb/syscalls/arm-linux.xml.in
> similarity index 100%
> rename from gdb/syscalls/arm-linux.xml
> rename to gdb/syscalls/arm-linux.xml.in
> diff --git a/gdb/syscalls/bfin-linux.xml b/gdb/syscalls/bfin-linux.xml.in
> similarity index 100%
> rename from gdb/syscalls/bfin-linux.xml
> rename to gdb/syscalls/bfin-linux.xml.in
> diff --git a/gdb/syscalls/i386-linux.xml b/gdb/syscalls/i386-linux.xml.in
> similarity index 100%
> rename from gdb/syscalls/i386-linux.xml
> rename to gdb/syscalls/i386-linux.xml.in
> diff --git a/gdb/syscalls/linux-defaults.xml.in b/gdb/syscalls/linux-defaults.xml.in
> new file mode 100644
> index 0000000..576be0c
> --- /dev/null
> +++ b/gdb/syscalls/linux-defaults.xml.in
> @@ -0,0 +1,243 @@
> +<?xml version="1.0"?>
> +<!-- Copyright (C) 2009-2015 Free Software Foundation, Inc.
> +
> +     Copying and distribution of this file, with or without modification,
> +     are permitted in any medium without royalty provided the copyright
> +     notice and this notice are preserved.  -->
> +
> +<!-- The group field information was based on strace.  -->
> +
> +<syscalls_defaults>
> +  <syscall name="read" groups="descriptor"/>
> +  <syscall name="write" groups="descriptor"/>
> +  <syscall name="open" groups="descriptor,file"/>
> +  <syscall name="close" groups="descriptor"/>
> +  <syscall name="stat" groups="file"/>
> +  <syscall name="fstat" groups="descriptor"/>
> +  <syscall name="lstat" groups="file"/>
> +  <syscall name="poll" groups="descriptor"/>
> +  <syscall name="lseek" groups="descriptor"/>
> +  <syscall name="mmap" groups="descriptor,memory"/>
> +  <syscall name="mprotect" groups="memory"/>
> +  <syscall name="munmap" groups="memory"/>
> +  <syscall name="brk" groups="memory"/>
> +  <syscall name="rt_sigaction" groups="signal"/>
> +  <syscall name="rt_sigprocmask" groups="signal"/>
> +  <syscall name="rt_sigreturn" groups="signal"/>
> +  <syscall name="ioctl" groups="descriptor"/>
> +  <syscall name="pread64" groups="descriptor"/>
> +  <syscall name="pwrite64" groups="descriptor"/>
> +  <syscall name="readv" groups="descriptor"/>
> +  <syscall name="writev" groups="descriptor"/>
> +  <syscall name="access" groups="file"/>
> +  <syscall name="pipe" groups="descriptor"/>
> +  <syscall name="select" groups="descriptor"/>
> +  <syscall name="mremap" groups="memory"/>
> +  <syscall name="msync" groups="memory"/>
> +  <syscall name="mincore" groups="memory"/>
> +  <syscall name="madvise" groups="memory"/>
> +  <syscall name="shmget" groups="ipc"/>
> +  <syscall name="shmat" groups="ipc,memory"/>
> +  <syscall name="shmctl" groups="ipc"/>
> +  <syscall name="dup" groups="descriptor"/>
> +  <syscall name="dup2" groups="descriptor"/>
> +  <syscall name="pause" groups="signal"/>
> +  <syscall name="sendfile" groups="descriptor,network"/>
> +  <syscall name="socket" groups="network"/>
> +  <syscall name="connect" groups="network"/>
> +  <syscall name="accept" groups="network"/>
> +  <syscall name="sendto" groups="network"/>
> +  <syscall name="recvfrom" groups="network"/>
> +  <syscall name="sendmsg" groups="network"/>
> +  <syscall name="recvmsg" groups="network"/>
> +  <syscall name="shutdown" groups="network"/>
> +  <syscall name="bind" groups="network"/>
> +  <syscall name="listen" groups="network"/>
> +  <syscall name="getsockname" groups="network"/>
> +  <syscall name="getpeername" groups="network"/>
> +  <syscall name="socketpair" groups="network"/>
> +  <syscall name="setsockopt" groups="network"/>
> +  <syscall name="getsockopt" groups="network"/>
> +  <syscall name="clone" groups="process"/>
> +  <syscall name="fork" groups="process"/>
> +  <syscall name="vfork" groups="process"/>
> +  <syscall name="execve" groups="file,process"/>
> +  <syscall name="execv" groups="file,process"/>
> +  <syscall name="exit" groups="process"/>
> +  <syscall name="wait4" groups="process"/>
> +  <syscall name="kill" groups="signal"/>
> +  <syscall name="semget" groups="ipc"/>
> +  <syscall name="semop" groups="ipc"/>
> +  <syscall name="semctl" groups="ipc"/>
> +  <syscall name="shmdt" groups="ipc,memory"/>
> +  <syscall name="msgget" groups="ipc"/>
> +  <syscall name="msgsnd" groups="ipc"/>
> +  <syscall name="msgrcv" groups="ipc"/>
> +  <syscall name="msgctl" groups="ipc"/>
> +  <syscall name="fcntl" groups="descriptor"/>
> +  <syscall name="flock" groups="descriptor"/>
> +  <syscall name="fsync" groups="descriptor"/>
> +  <syscall name="fdatasync" groups="descriptor"/>
> +  <syscall name="truncate" groups="file"/>
> +  <syscall name="ftruncate" groups="descriptor"/>
> +  <syscall name="getdents" groups="descriptor"/>
> +  <syscall name="getcwd" groups="file"/>
> +  <syscall name="chdir" groups="file"/>
> +  <syscall name="fchdir" groups="descriptor"/>
> +  <syscall name="rename" groups="file"/>
> +  <syscall name="mkdir" groups="file"/>
> +  <syscall name="rmdir" groups="file"/>
> +  <syscall name="creat" groups="descriptor,file"/>
> +  <syscall name="link" groups="file"/>
> +  <syscall name="unlink" groups="file"/>
> +  <syscall name="symlink" groups="file"/>
> +  <syscall name="readlink" groups="file"/>
> +  <syscall name="chmod" groups="file"/>
> +  <syscall name="fchmod" groups="descriptor"/>
> +  <syscall name="chown" groups="file"/>
> +  <syscall name="fchown" groups="descriptor"/>
> +  <syscall name="lchown" groups="file"/>
> +  <syscall name="rt_sigpending" groups="signal"/>
> +  <syscall name="rt_sigtimedwait" groups="signal"/>
> +  <syscall name="rt_sigqueueinfo" groups="signal"/>
> +  <syscall name="rt_sigsuspend" groups="signal"/>
> +  <syscall name="sigaltstack" groups="signal"/>
> +  <syscall name="utime" groups="file"/>
> +  <syscall name="mknod" groups="file"/>
> +  <syscall name="uselib" groups="file"/>
> +  <syscall name="statfs" groups="file"/>
> +  <syscall name="fstatfs" groups="descriptor"/>
> +  <syscall name="mlock" groups="memory"/>
> +  <syscall name="munlock" groups="memory"/>
> +  <syscall name="mlockall" groups="memory"/>
> +  <syscall name="munlockall" groups="memory"/>
> +  <syscall name="pivot_root" groups="file"/>
> +  <syscall name="arch_prctl" groups="process"/>
> +  <syscall name="chroot" groups="file"/>
> +  <syscall name="acct" groups="file"/>
> +  <syscall name="mount" groups="file"/>
> +  <syscall name="umount" groups="file"/>
> +  <syscall name="umount2" groups="file"/>
> +  <syscall name="swapon" groups="file"/>
> +  <syscall name="swapoff" groups="file"/>
> +  <syscall name="quotactl" groups="file"/>
> +  <syscall name="readahead" groups="descriptor"/>
> +  <syscall name="setxattr" groups="file"/>
> +  <syscall name="lsetxattr" groups="file"/>
> +  <syscall name="fsetxattr" groups="descriptor"/>
> +  <syscall name="getxattr" groups="file"/>
> +  <syscall name="lgetxattr" groups="file"/>
> +  <syscall name="fgetxattr" groups="descriptor"/>
> +  <syscall name="listxattr" groups="file"/>
> +  <syscall name="llistxattr" groups="file"/>
> +  <syscall name="flistxattr" groups="descriptor"/>
> +  <syscall name="removexattr" groups="file"/>
> +  <syscall name="lremovexattr" groups="file"/>
> +  <syscall name="fremovexattr" groups="descriptor"/>
> +  <syscall name="tkill" groups="signal"/>
> +  <syscall name="epoll_create" groups="descriptor"/>
> +  <syscall name="remap_file_pages" groups="memory"/>
> +  <syscall name="getdents64" groups="descriptor"/>
> +  <syscall name="semtimedop" groups="ipc"/>
> +  <syscall name="fadvise64" groups="descriptor"/>
> +  <syscall name="exit_group" groups="process"/>
> +  <syscall name="epoll_wait" groups="descriptor"/>
> +  <syscall name="epoll_ctl" groups="descriptor"/>
> +  <syscall name="tgkill" groups="signal"/>
> +  <syscall name="utimes" groups="file"/>
> +  <syscall name="mbind" groups="memory"/>
> +  <syscall name="set_mempolicy" groups="memory"/>
> +  <syscall name="get_mempolicy" groups="memory"/>
> +  <syscall name="waitid" groups="process"/>
> +  <syscall name="inotify_init" groups="descriptor"/>
> +  <syscall name="inotify_add_watch" groups="descriptor"/>
> +  <syscall name="inotify_rm_watch" groups="descriptor"/>
> +  <syscall name="migrate_pages" groups="memory"/>
> +  <syscall name="openat" groups="descriptor,file"/>
> +  <syscall name="mkdirat" groups="descriptor,file"/>
> +  <syscall name="mknodat" groups="descriptor,file"/>
> +  <syscall name="fchownat" groups="descriptor,file"/>
> +  <syscall name="futimesat" groups="descriptor,file"/>
> +  <syscall name="newfstatat" groups="descriptor,file"/>
> +  <syscall name="unlinkat" groups="descriptor,file"/>
> +  <syscall name="renameat" groups="descriptor,file"/>
> +  <syscall name="linkat" groups="descriptor,file"/>
> +  <syscall name="symlinkat" groups="descriptor,file"/>
> +  <syscall name="readlinkat" groups="descriptor,file"/>
> +  <syscall name="fchmodat" groups="descriptor,file"/>
> +  <syscall name="faccessat" groups="descriptor,file"/>
> +  <syscall name="pselect6" groups="descriptor"/>
> +  <syscall name="ppoll" groups="descriptor"/>
> +  <syscall name="unshare" groups="process"/>
> +  <syscall name="splice" groups="descriptor"/>
> +  <syscall name="tee" groups="descriptor"/>
> +  <syscall name="sync_file_range" groups="descriptor"/>
> +  <syscall name="vmsplice" groups="descriptor"/>
> +  <syscall name="move_pages" groups="memory"/>
> +  <syscall name="utimensat" groups="descriptor,file"/>
> +  <syscall name="epoll_pwait" groups="descriptor"/>
> +  <syscall name="signalfd" groups="descriptor,signal"/>
> +  <syscall name="timerfd_create" groups="descriptor"/>
> +  <syscall name="eventfd" groups="descriptor"/>
> +  <syscall name="fallocate" groups="descriptor"/>
> +  <syscall name="timerfd_settime" groups="descriptor"/>
> +  <syscall name="timerfd_gettime" groups="descriptor"/>
> +  <syscall name="accept4" groups="network"/>
> +  <syscall name="signalfd4" groups="descriptor,signal"/>
> +  <syscall name="eventfd2" groups="descriptor"/>
> +  <syscall name="epoll_create1" groups="descriptor"/>
> +  <syscall name="dup3" groups="descriptor"/>
> +  <syscall name="pipe2" groups="descriptor"/>
> +  <syscall name="inotify_init1" groups="descriptor"/>
> +  <syscall name="preadv" groups="descriptor"/>
> +  <syscall name="pwritev" groups="descriptor"/>
> +  <syscall name="send" groups="network"/>
> +  <syscall name="recv" groups="network"/>
> +  <syscall name="statfs64" groups="file"/>
> +  <syscall name="fstatfs64" groups="descriptor"/>
> +  <syscall name="sendfile64" groups="descriptor,network"/>
> +  <syscall name="rt_tgsigqueueinfo" groups="process,signal"/>
> +  <syscall name="perf_event_open" groups="descriptor"/>
> +  <syscall name="recvmmsg" groups="network"/>
> +  <syscall name="fanotify_init" groups="descriptor"/>
> +  <syscall name="fanotify_mark" groups="descriptor,file"/>
> +  <syscall name="fchown32" groups="descriptor"/>
> +  <syscall name="chown32" groups="file"/>
> +  <syscall name="fcntl64" groups="descriptor"/>
> +  <syscall name="mmap2" groups="descriptor,memory"/>
> +  <syscall name="truncate64" groups="file"/>
> +  <syscall name="ftruncate64" groups="descriptor"/>
> +  <syscall name="stat64" groups="file"/>
> +  <syscall name="lstat64" groups="file"/>
> +  <syscall name="fstat64" groups="descriptor"/>
> +  <syscall name="lchown32" groups="file"/>
> +  <syscall name="name_to_handle_at" groups="descriptor,file"/>
> +  <syscall name="open_by_handle_at" groups="descriptor"/>
> +  <syscall name="_llseek" groups="descriptor"/>
> +  <syscall name="syncfs" groups="descriptor"/>
> +  <syscall name="sendmmsg" groups="network"/>
> +  <syscall name="setns" groups="descriptor"/>
> +  <syscall name="finit_module" groups="descriptor"/>
> +  <syscall name="oldstat" groups="file"/>
> +  <syscall name="sigaction" groups="signal"/>
> +  <syscall name="sigreturn" groups="signal"/>
> +  <syscall name="sigsuspend" groups="signal"/>
> +  <syscall name="sigpending" groups="signal"/>
> +  <syscall name="sigprocmask" groups="signal"/>
> +  <syscall name="ipc" groups="ipc"/>
> +  <syscall name="readdir" groups="descriptor"/>
> +  <syscall name="socketcall" number="102" groups="descriptor"/>
> +  <syscall name="break" groups="memory"/>
> +  <syscall name="oldfstat" groups="descriptor"/>
> +  <syscall name="signal" groups="signal"/>
> +  <syscall name="sgetmask" groups="signal"/>
> +  <syscall name="ssetmask" groups="signal"/>
> +  <syscall name="oldlstat" groups="file"/>
> +  <syscall name="waitpid" groups="process"/>
> +  <syscall name="pread" groups="descriptor"/>
> +  <syscall name="pwrite" groups="descriptor"/>
> +  <syscall name="fadvise64_64" groups="descriptor"/>
> +  <syscall name="fstatat64" groups="descriptor,file"/>
> +  <syscall name="_newselect" groups="descriptor"/>
> +  <syscall name="timerfd" number="6281" groups="descriptor"/>

Looks like a stale 'number="6281"' sneaked in here.  Otherwise
this looks good to me.  Thanks for doing this.

Thanks,
Pedro Alves

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH v4 0/4] catch syscall group
  2015-05-11  0:28               ` [PATCH v4 0/4] catch " Gabriel Krisman Bertazi
                                   ` (4 preceding siblings ...)
  2015-05-11  0:28                 ` [PATCH v4 4/5] Include group information in xml syscall files Gabriel Krisman Bertazi
@ 2015-05-13 10:47                 ` Pedro Alves
  5 siblings, 0 replies; 42+ messages in thread
From: Pedro Alves @ 2015-05-13 10:47 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi, sergiodj; +Cc: gdb-patches, dje

On 05/11/2015 01:27 AM, Gabriel Krisman Bertazi wrote:
> Thank you both for your review.
> 
> This version has the following improvements:
> 
> * Apply fixes suggested by Sergio in the testsuite.
> * Use xsltproc to generate the xml files.
> 
> Regarding the last change, it allowed me to identify inconsistencies in
> groups for some architectures.  

It was a useful exercise then.  ;-)  Many thanks for following through
with this.

> The current design makes sure these
> inconsistencies are fixed by centralizing the group information in a
> single file.
> 
> Also, this patch series *does not* include the generated files because
> they are too big and can get in the way of code review.  Reviewers must
> generate those files by hand by entering the gdb/syscalls directory and
> running the makefile there.  Build will fail if reviewer don't do this!
> Once we get this approved, I'll make sure to include the generated files
> in the commit before pushing.  Hopefully this will make code review
> easier.

Do you have a public branch somewhere with that already done?
That'd make it easier for people to check the end result.  You could push
it to sourceware.org git nowadays, under "users/$yourname/$branch".  That
would be the easiest.

> Also, I generated this format-patch with --find-renames.  If it gets in
> the way of git am/git apply, please let me know and I'll resend it.
> 
> As usual, I'm not resending the documentation patch again because it was
> already approved by Eli.

Thanks,
Pedro Alves

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH v4 5/5] Update documentation on catching a group of related syscalls.
  2015-05-13 10:30                     ` Pedro Alves
@ 2015-05-13 16:40                       ` Eli Zaretskii
  0 siblings, 0 replies; 42+ messages in thread
From: Eli Zaretskii @ 2015-05-13 16:40 UTC (permalink / raw)
  To: Pedro Alves; +Cc: gabriel, sergiodj, gdb-patches, dje

> Date: Wed, 13 May 2015 11:29:56 +0100
> From: Pedro Alves <palves@redhat.com>
> CC: gdb-patches@sourceware.org, dje@google.com
> 
> > Sorry, I sent the documentation patch again.  Please, ignore this one,
> > Eli already approved it twice. :)
> 
> Generally, personally, in such cases, I prefer that an already approved patch
> is included in the series.

I don't mind, but please do tell that it was already approved.

Thanks.

^ permalink raw reply	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2015-05-13 16:40 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-26  1:25 [PATCH v3 00/17] Catch syscall group Gabriel Krisman Bertazi
2015-04-26  1:25 ` [PATCH v3 02/17] Add support to catch groups of syscalls Gabriel Krisman Bertazi
2015-04-26  1:25 ` [PATCH v3 03/17] Add tests for catching groups of syscalls on supported architectures Gabriel Krisman Bertazi
2015-04-26 18:44   ` Sergio Durigan Junior
2015-04-26  1:25 ` [PATCH v3 01/17] Implemement support for groups of syscalls in the xml-syscall interface Gabriel Krisman Bertazi
2015-04-26  1:26 ` [PATCH v3 09/17] Create syscall groups for bfin Gabriel Krisman Bertazi
2015-04-26  1:26 ` [PATCH v3 04/17] Create syscall groups for amd64 Gabriel Krisman Bertazi
2015-04-26  1:26 ` [PATCH v3 05/17] Create syscall groups for ppc Gabriel Krisman Bertazi
2015-04-26  1:26 ` [PATCH v3 07/17] Create syscall groups for aarch64 Gabriel Krisman Bertazi
2015-04-26  1:26 ` [PATCH v3 10/17] Create syscall groups for i386 Gabriel Krisman Bertazi
2015-04-26  1:26 ` [PATCH v3 06/17] Create syscall groups for ppc64 Gabriel Krisman Bertazi
2015-04-26  1:26 ` [PATCH v3 08/17] Create syscall groups for arm Gabriel Krisman Bertazi
2015-04-26  1:26 ` [PATCH v3 12/17] Create syscall groups for mips-n64 Gabriel Krisman Bertazi
2015-04-26  1:47 ` [PATCH v3 13/17] Create syscall groups for mips-o32 Gabriel Krisman Bertazi
2015-04-26  1:47 ` [PATCH v3 16/17] Create syscall groups for sparc Gabriel Krisman Bertazi
2015-04-26  1:47 ` [PATCH v3 17/17] Create syscall groups for sparc64 Gabriel Krisman Bertazi
2015-04-26  1:47 ` [PATCH v3 15/17] Create syscall groups for s390x Gabriel Krisman Bertazi
2015-04-26  1:47 ` [PATCH v3 14/17] Create syscall groups for s390 Gabriel Krisman Bertazi
2015-04-26  1:47 ` [PATCH v3 11/17] Create syscall groups for mips-n32 Gabriel Krisman Bertazi
2015-04-26 18:58 ` [PATCH v3 00/17] Catch syscall group Sergio Durigan Junior
2015-04-28 11:24 ` Pedro Alves
2015-04-29  0:45   ` Sergio Durigan Junior
2015-04-29 10:44     ` Pedro Alves
2015-05-04  2:34       ` Gabriel Krisman Bertazi
2015-05-06 14:38         ` Pedro Alves
2015-05-10 18:34           ` Gabriel Krisman Bertazi
2015-05-10 19:01             ` Sergio Durigan Junior
2015-05-11  0:28               ` [PATCH v4 0/4] catch " Gabriel Krisman Bertazi
2015-05-11  0:28                 ` [PATCH v4 2/5] Add support to catch groups of syscalls Gabriel Krisman Bertazi
2015-05-13 10:38                   ` Pedro Alves
2015-05-11  0:28                 ` [PATCH v4 1/5] Implemement support for groups of syscalls in the xml-syscall interface Gabriel Krisman Bertazi
2015-05-11  0:28                 ` [PATCH v4 5/5] Update documentation on catching a group of related syscalls Gabriel Krisman Bertazi
2015-05-11  0:40                   ` Gabriel Krisman Bertazi
2015-05-13 10:30                     ` Pedro Alves
2015-05-13 16:40                       ` Eli Zaretskii
2015-05-11  0:28                 ` [PATCH v4 3/5] Add tests for catching groups of syscalls on supported architectures Gabriel Krisman Bertazi
2015-05-11  0:28                 ` [PATCH v4 4/5] Include group information in xml syscall files Gabriel Krisman Bertazi
2015-05-12 21:42                   ` Doug Evans
2015-05-13  1:17                     ` Gabriel Krisman Bertazi
2015-05-13 10:43                   ` Pedro Alves
2015-05-13 10:47                 ` [PATCH v4 0/4] catch syscall group Pedro Alves
2015-05-11 11:39               ` [PATCH v3 00/17] Catch " Pedro Alves

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).