mirror of
https://github.com/rtlduino/RTL8710AF_GCC.git
synced 2026-07-14 23:35:42 +00:00
motify compile link error
motify compile link error
This commit is contained in:
parent
923914edae
commit
03e74a8e50
5418 changed files with 1367914 additions and 206149 deletions
|
|
@ -0,0 +1,124 @@
|
|||
# Copyright (C) 2010-2013 Free Software Foundation, Inc.
|
||||
|
||||
# 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/>.
|
||||
|
||||
import traceback
|
||||
import os
|
||||
import sys
|
||||
import _gdb
|
||||
|
||||
if sys.version_info[0] > 2:
|
||||
# Python 3 moved "reload"
|
||||
from imp import reload
|
||||
|
||||
from _gdb import *
|
||||
|
||||
class _GdbFile (object):
|
||||
# These two are needed in Python 3
|
||||
encoding = "UTF-8"
|
||||
errors = "strict"
|
||||
|
||||
def close(self):
|
||||
# Do nothing.
|
||||
return None
|
||||
|
||||
def isatty(self):
|
||||
return False
|
||||
|
||||
def writelines(self, iterable):
|
||||
for line in iterable:
|
||||
self.write(line)
|
||||
|
||||
def flush(self):
|
||||
flush()
|
||||
|
||||
class GdbOutputFile (_GdbFile):
|
||||
def write(self, s):
|
||||
write(s, stream=STDOUT)
|
||||
|
||||
sys.stdout = GdbOutputFile()
|
||||
|
||||
class GdbOutputErrorFile (_GdbFile):
|
||||
def write(self, s):
|
||||
write(s, stream=STDERR)
|
||||
|
||||
sys.stderr = GdbOutputErrorFile()
|
||||
|
||||
# Default prompt hook does nothing.
|
||||
prompt_hook = None
|
||||
|
||||
# Ensure that sys.argv is set to something.
|
||||
# We do not use PySys_SetArgvEx because it did not appear until 2.6.6.
|
||||
sys.argv = ['']
|
||||
|
||||
# Initial pretty printers.
|
||||
pretty_printers = []
|
||||
|
||||
# Initial type printers.
|
||||
type_printers = []
|
||||
|
||||
# Convenience variable to GDB's python directory
|
||||
PYTHONDIR = os.path.dirname(os.path.dirname(__file__))
|
||||
|
||||
# Auto-load all functions/commands.
|
||||
|
||||
# Packages to auto-load.
|
||||
|
||||
packages = [
|
||||
'function',
|
||||
'command'
|
||||
]
|
||||
|
||||
# pkgutil.iter_modules is not available prior to Python 2.6. Instead,
|
||||
# manually iterate the list, collating the Python files in each module
|
||||
# path. Construct the module name, and import.
|
||||
|
||||
def auto_load_packages():
|
||||
for package in packages:
|
||||
location = os.path.join(os.path.dirname(__file__), package)
|
||||
if os.path.exists(location):
|
||||
py_files = filter(lambda x: x.endswith('.py')
|
||||
and x != '__init__.py',
|
||||
os.listdir(location))
|
||||
|
||||
for py_file in py_files:
|
||||
# Construct from foo.py, gdb.module.foo
|
||||
modname = "%s.%s.%s" % ( __name__, package, py_file[:-3] )
|
||||
try:
|
||||
if modname in sys.modules:
|
||||
# reload modules with duplicate names
|
||||
reload(__import__(modname))
|
||||
else:
|
||||
__import__(modname)
|
||||
except:
|
||||
sys.stderr.write (traceback.format_exc() + "\n")
|
||||
|
||||
auto_load_packages()
|
||||
|
||||
def GdbSetPythonDirectory(dir):
|
||||
"""Update sys.path, reload gdb and auto-load packages."""
|
||||
global PYTHONDIR
|
||||
|
||||
try:
|
||||
sys.path.remove(PYTHONDIR)
|
||||
except ValueError:
|
||||
pass
|
||||
sys.path.insert(0, dir)
|
||||
|
||||
PYTHONDIR = dir
|
||||
|
||||
# note that reload overwrites the gdb module without deleting existing
|
||||
# attributes
|
||||
reload(__import__(__name__))
|
||||
auto_load_packages()
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
# Copyright (C) 2010-2013 Free Software Foundation, Inc.
|
||||
|
||||
# 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/>.
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,760 @@
|
|||
# GDB 'explore' command.
|
||||
# Copyright (C) 2012-2013 Free Software Foundation, Inc.
|
||||
|
||||
# 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/>.
|
||||
|
||||
"""Implementation of the GDB 'explore' command using the GDB Python API."""
|
||||
|
||||
import gdb
|
||||
import sys
|
||||
|
||||
if sys.version_info[0] > 2:
|
||||
# Python 3 renamed raw_input to input
|
||||
raw_input = input
|
||||
|
||||
class Explorer(object):
|
||||
"""Internal class which invokes other explorers."""
|
||||
|
||||
# This map is filled by the Explorer.init_env() function
|
||||
type_code_to_explorer_map = { }
|
||||
|
||||
_SCALAR_TYPE_LIST = (
|
||||
gdb.TYPE_CODE_CHAR,
|
||||
gdb.TYPE_CODE_INT,
|
||||
gdb.TYPE_CODE_BOOL,
|
||||
gdb.TYPE_CODE_FLT,
|
||||
gdb.TYPE_CODE_VOID,
|
||||
gdb.TYPE_CODE_ENUM,
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def guard_expr(expr):
|
||||
length = len(expr)
|
||||
guard = False
|
||||
|
||||
if expr[0] == '(' and expr[length-1] == ')':
|
||||
pass
|
||||
else:
|
||||
i = 0
|
||||
while i < length:
|
||||
c = expr[i]
|
||||
if (c == '_' or ('a' <= c and c <= 'z') or
|
||||
('A' <= c and c <= 'Z') or ('0' <= c and c <= '9')):
|
||||
pass
|
||||
else:
|
||||
guard = True
|
||||
break
|
||||
i += 1
|
||||
|
||||
if guard:
|
||||
return "(" + expr + ")"
|
||||
else:
|
||||
return expr
|
||||
|
||||
@staticmethod
|
||||
def explore_expr(expr, value, is_child):
|
||||
"""Main function to explore an expression value.
|
||||
|
||||
Arguments:
|
||||
expr: The expression string that is being explored.
|
||||
value: The gdb.Value value of the expression.
|
||||
is_child: Boolean value to indicate if the expression is a child.
|
||||
An expression is a child if it is derived from the main
|
||||
expression entered by the user. For example, if the user
|
||||
entered an expression which evaluates to a struct, then
|
||||
when exploring the fields of the struct, is_child is set
|
||||
to True internally.
|
||||
|
||||
Returns:
|
||||
No return value.
|
||||
"""
|
||||
type_code = value.type.code
|
||||
if type_code in Explorer.type_code_to_explorer_map:
|
||||
explorer_class = Explorer.type_code_to_explorer_map[type_code]
|
||||
while explorer_class.explore_expr(expr, value, is_child):
|
||||
pass
|
||||
else:
|
||||
print ("Explorer for type '%s' not yet available.\n" %
|
||||
str(value.type))
|
||||
|
||||
@staticmethod
|
||||
def explore_type(name, datatype, is_child):
|
||||
"""Main function to explore a data type.
|
||||
|
||||
Arguments:
|
||||
name: The string representing the path to the data type being
|
||||
explored.
|
||||
datatype: The gdb.Type value of the data type being explored.
|
||||
is_child: Boolean value to indicate if the name is a child.
|
||||
A name is a child if it is derived from the main name
|
||||
entered by the user. For example, if the user entered
|
||||
the name of struct type, then when exploring the fields
|
||||
of the struct, is_child is set to True internally.
|
||||
|
||||
Returns:
|
||||
No return value.
|
||||
"""
|
||||
type_code = datatype.code
|
||||
if type_code in Explorer.type_code_to_explorer_map:
|
||||
explorer_class = Explorer.type_code_to_explorer_map[type_code]
|
||||
while explorer_class.explore_type(name, datatype, is_child):
|
||||
pass
|
||||
else:
|
||||
print ("Explorer for type '%s' not yet available.\n" %
|
||||
str(datatype))
|
||||
|
||||
@staticmethod
|
||||
def init_env():
|
||||
"""Initializes the Explorer environment.
|
||||
This function should be invoked before starting any exploration. If
|
||||
invoked before an exploration, it need not be invoked for subsequent
|
||||
explorations.
|
||||
"""
|
||||
Explorer.type_code_to_explorer_map = {
|
||||
gdb.TYPE_CODE_CHAR : ScalarExplorer,
|
||||
gdb.TYPE_CODE_INT : ScalarExplorer,
|
||||
gdb.TYPE_CODE_BOOL : ScalarExplorer,
|
||||
gdb.TYPE_CODE_FLT : ScalarExplorer,
|
||||
gdb.TYPE_CODE_VOID : ScalarExplorer,
|
||||
gdb.TYPE_CODE_ENUM : ScalarExplorer,
|
||||
gdb.TYPE_CODE_STRUCT : CompoundExplorer,
|
||||
gdb.TYPE_CODE_UNION : CompoundExplorer,
|
||||
gdb.TYPE_CODE_PTR : PointerExplorer,
|
||||
gdb.TYPE_CODE_REF : ReferenceExplorer,
|
||||
gdb.TYPE_CODE_TYPEDEF : TypedefExplorer,
|
||||
gdb.TYPE_CODE_ARRAY : ArrayExplorer
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def is_scalar_type(type):
|
||||
"""Checks whether a type is a scalar type.
|
||||
A type is a scalar type of its type is
|
||||
gdb.TYPE_CODE_CHAR or
|
||||
gdb.TYPE_CODE_INT or
|
||||
gdb.TYPE_CODE_BOOL or
|
||||
gdb.TYPE_CODE_FLT or
|
||||
gdb.TYPE_CODE_VOID or
|
||||
gdb.TYPE_CODE_ENUM.
|
||||
|
||||
Arguments:
|
||||
type: The type to be checked.
|
||||
|
||||
Returns:
|
||||
'True' if 'type' is a scalar type. 'False' otherwise.
|
||||
"""
|
||||
return type.code in Explorer._SCALAR_TYPE_LIST
|
||||
|
||||
@staticmethod
|
||||
def return_to_parent_value():
|
||||
"""A utility function which prints that the current exploration session
|
||||
is returning to the parent value. Useful when exploring values.
|
||||
"""
|
||||
print ("\nReturning to parent value...\n")
|
||||
|
||||
@staticmethod
|
||||
def return_to_parent_value_prompt():
|
||||
"""A utility function which prompts the user to press the 'enter' key
|
||||
so that the exploration session can shift back to the parent value.
|
||||
Useful when exploring values.
|
||||
"""
|
||||
raw_input("\nPress enter to return to parent value: ")
|
||||
|
||||
@staticmethod
|
||||
def return_to_enclosing_type():
|
||||
"""A utility function which prints that the current exploration session
|
||||
is returning to the enclosing type. Useful when exploring types.
|
||||
"""
|
||||
print ("\nReturning to enclosing type...\n")
|
||||
|
||||
@staticmethod
|
||||
def return_to_enclosing_type_prompt():
|
||||
"""A utility function which prompts the user to press the 'enter' key
|
||||
so that the exploration session can shift back to the enclosing type.
|
||||
Useful when exploring types.
|
||||
"""
|
||||
raw_input("\nPress enter to return to enclosing type: ")
|
||||
|
||||
|
||||
class ScalarExplorer(object):
|
||||
"""Internal class used to explore scalar values."""
|
||||
|
||||
@staticmethod
|
||||
def explore_expr(expr, value, is_child):
|
||||
"""Function to explore scalar values.
|
||||
See Explorer.explore_expr and Explorer.is_scalar_type for more
|
||||
information.
|
||||
"""
|
||||
print ("'%s' is a scalar value of type '%s'." %
|
||||
(expr, value.type))
|
||||
print ("%s = %s" % (expr, str(value)))
|
||||
|
||||
if is_child:
|
||||
Explorer.return_to_parent_value_prompt()
|
||||
Explorer.return_to_parent_value()
|
||||
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
def explore_type(name, datatype, is_child):
|
||||
"""Function to explore scalar types.
|
||||
See Explorer.explore_type and Explorer.is_scalar_type for more
|
||||
information.
|
||||
"""
|
||||
if datatype.code == gdb.TYPE_CODE_ENUM:
|
||||
if is_child:
|
||||
print ("%s is of an enumerated type '%s'." %
|
||||
(name, str(datatype)))
|
||||
else:
|
||||
print ("'%s' is an enumerated type." % name)
|
||||
else:
|
||||
if is_child:
|
||||
print ("%s is of a scalar type '%s'." %
|
||||
(name, str(datatype)))
|
||||
else:
|
||||
print ("'%s' is a scalar type." % name)
|
||||
|
||||
if is_child:
|
||||
Explorer.return_to_enclosing_type_prompt()
|
||||
Explorer.return_to_enclosing_type()
|
||||
|
||||
return False
|
||||
|
||||
|
||||
class PointerExplorer(object):
|
||||
"""Internal class used to explore pointer values."""
|
||||
|
||||
@staticmethod
|
||||
def explore_expr(expr, value, is_child):
|
||||
"""Function to explore pointer values.
|
||||
See Explorer.explore_expr for more information.
|
||||
"""
|
||||
print ("'%s' is a pointer to a value of type '%s'" %
|
||||
(expr, str(value.type.target())))
|
||||
option = raw_input("Continue exploring it as a pointer to a single "
|
||||
"value [y/n]: ")
|
||||
if option == "y":
|
||||
deref_value = None
|
||||
try:
|
||||
deref_value = value.dereference()
|
||||
str(deref_value)
|
||||
except gdb.MemoryError:
|
||||
print ("'%s' a pointer pointing to an invalid memory "
|
||||
"location." % expr)
|
||||
if is_child:
|
||||
Explorer.return_to_parent_value_prompt()
|
||||
return False
|
||||
Explorer.explore_expr("*%s" % Explorer.guard_expr(expr),
|
||||
deref_value, is_child)
|
||||
return False
|
||||
|
||||
option = raw_input("Continue exploring it as a pointer to an "
|
||||
"array [y/n]: ")
|
||||
if option == "y":
|
||||
while True:
|
||||
index = 0
|
||||
try:
|
||||
index = int(raw_input("Enter the index of the element you "
|
||||
"want to explore in '%s': " % expr))
|
||||
except ValueError:
|
||||
break
|
||||
element_expr = "%s[%d]" % (Explorer.guard_expr(expr), index)
|
||||
element = value[index]
|
||||
try:
|
||||
str(element)
|
||||
except gdb.MemoryError:
|
||||
print ("Cannot read value at index %d." % index)
|
||||
continue
|
||||
Explorer.explore_expr(element_expr, element, True)
|
||||
return False
|
||||
|
||||
if is_child:
|
||||
Explorer.return_to_parent_value()
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
def explore_type(name, datatype, is_child):
|
||||
"""Function to explore pointer types.
|
||||
See Explorer.explore_type for more information.
|
||||
"""
|
||||
target_type = datatype.target()
|
||||
print ("\n%s is a pointer to a value of type '%s'." %
|
||||
(name, str(target_type)))
|
||||
|
||||
Explorer.explore_type("the pointee type of %s" % name,
|
||||
target_type,
|
||||
is_child)
|
||||
return False
|
||||
|
||||
|
||||
class ReferenceExplorer(object):
|
||||
"""Internal class used to explore reference (TYPE_CODE_REF) values."""
|
||||
|
||||
@staticmethod
|
||||
def explore_expr(expr, value, is_child):
|
||||
"""Function to explore array values.
|
||||
See Explorer.explore_expr for more information.
|
||||
"""
|
||||
referenced_value = value.referenced_value()
|
||||
Explorer.explore_expr(expr, referenced_value, is_child)
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
def explore_type(name, datatype, is_child):
|
||||
"""Function to explore pointer types.
|
||||
See Explorer.explore_type for more information.
|
||||
"""
|
||||
target_type = datatype.target()
|
||||
Explorer.explore_type(name, target_type, is_child)
|
||||
return False
|
||||
|
||||
|
||||
class ArrayExplorer(object):
|
||||
"""Internal class used to explore arrays."""
|
||||
|
||||
@staticmethod
|
||||
def explore_expr(expr, value, is_child):
|
||||
"""Function to explore array values.
|
||||
See Explorer.explore_expr for more information.
|
||||
"""
|
||||
target_type = value.type.target()
|
||||
print ("'%s' is an array of '%s'." % (expr, str(target_type)))
|
||||
index = 0
|
||||
try:
|
||||
index = int(raw_input("Enter the index of the element you want to "
|
||||
"explore in '%s': " % expr))
|
||||
except ValueError:
|
||||
if is_child:
|
||||
Explorer.return_to_parent_value()
|
||||
return False
|
||||
|
||||
element = None
|
||||
try:
|
||||
element = value[index]
|
||||
str(element)
|
||||
except gdb.MemoryError:
|
||||
print ("Cannot read value at index %d." % index)
|
||||
raw_input("Press enter to continue... ")
|
||||
return True
|
||||
|
||||
Explorer.explore_expr("%s[%d]" % (Explorer.guard_expr(expr), index),
|
||||
element, True)
|
||||
return True
|
||||
|
||||
@staticmethod
|
||||
def explore_type(name, datatype, is_child):
|
||||
"""Function to explore array types.
|
||||
See Explorer.explore_type for more information.
|
||||
"""
|
||||
target_type = datatype.target()
|
||||
print ("%s is an array of '%s'." % (name, str(target_type)))
|
||||
|
||||
Explorer.explore_type("the array element of %s" % name, target_type,
|
||||
is_child)
|
||||
return False
|
||||
|
||||
|
||||
class CompoundExplorer(object):
|
||||
"""Internal class used to explore struct, classes and unions."""
|
||||
|
||||
@staticmethod
|
||||
def _print_fields(print_list):
|
||||
"""Internal function which prints the fields of a struct/class/union.
|
||||
"""
|
||||
max_field_name_length = 0
|
||||
for pair in print_list:
|
||||
if max_field_name_length < len(pair[0]):
|
||||
max_field_name_length = len(pair[0])
|
||||
|
||||
for pair in print_list:
|
||||
print (" %*s = %s" % (max_field_name_length, pair[0], pair[1]))
|
||||
|
||||
@staticmethod
|
||||
def _get_real_field_count(fields):
|
||||
real_field_count = 0;
|
||||
for field in fields:
|
||||
if not field.artificial:
|
||||
real_field_count = real_field_count + 1
|
||||
|
||||
return real_field_count
|
||||
|
||||
@staticmethod
|
||||
def explore_expr(expr, value, is_child):
|
||||
"""Function to explore structs/classes and union values.
|
||||
See Explorer.explore_expr for more information.
|
||||
"""
|
||||
datatype = value.type
|
||||
type_code = datatype.code
|
||||
fields = datatype.fields()
|
||||
|
||||
if type_code == gdb.TYPE_CODE_STRUCT:
|
||||
type_desc = "struct/class"
|
||||
else:
|
||||
type_desc = "union"
|
||||
|
||||
if CompoundExplorer._get_real_field_count(fields) == 0:
|
||||
print ("The value of '%s' is a %s of type '%s' with no fields." %
|
||||
(expr, type_desc, str(value.type)))
|
||||
if is_child:
|
||||
Explorer.return_to_parent_value_prompt()
|
||||
return False
|
||||
|
||||
print ("The value of '%s' is a %s of type '%s' with the following "
|
||||
"fields:\n" % (expr, type_desc, str(value.type)))
|
||||
|
||||
has_explorable_fields = False
|
||||
choice_to_compound_field_map = { }
|
||||
current_choice = 0
|
||||
print_list = [ ]
|
||||
for field in fields:
|
||||
if field.artificial:
|
||||
continue
|
||||
field_full_name = Explorer.guard_expr(expr) + "." + field.name
|
||||
if field.is_base_class:
|
||||
field_value = value.cast(field.type)
|
||||
else:
|
||||
field_value = value[field.name]
|
||||
literal_value = ""
|
||||
if type_code == gdb.TYPE_CODE_UNION:
|
||||
literal_value = ("<Enter %d to explore this field of type "
|
||||
"'%s'>" % (current_choice, str(field.type)))
|
||||
has_explorable_fields = True
|
||||
else:
|
||||
if Explorer.is_scalar_type(field.type):
|
||||
literal_value = ("%s .. (Value of type '%s')" %
|
||||
(str(field_value), str(field.type)))
|
||||
else:
|
||||
if field.is_base_class:
|
||||
field_desc = "base class"
|
||||
else:
|
||||
field_desc = "field"
|
||||
literal_value = ("<Enter %d to explore this %s of type "
|
||||
"'%s'>" %
|
||||
(current_choice, field_desc,
|
||||
str(field.type)))
|
||||
has_explorable_fields = True
|
||||
|
||||
choice_to_compound_field_map[str(current_choice)] = (
|
||||
field_full_name, field_value)
|
||||
current_choice = current_choice + 1
|
||||
|
||||
print_list.append((field.name, literal_value))
|
||||
|
||||
CompoundExplorer._print_fields(print_list)
|
||||
print ("")
|
||||
|
||||
if has_explorable_fields:
|
||||
choice = raw_input("Enter the field number of choice: ")
|
||||
if choice in choice_to_compound_field_map:
|
||||
Explorer.explore_expr(choice_to_compound_field_map[choice][0],
|
||||
choice_to_compound_field_map[choice][1],
|
||||
True)
|
||||
return True
|
||||
else:
|
||||
if is_child:
|
||||
Explorer.return_to_parent_value()
|
||||
else:
|
||||
if is_child:
|
||||
Explorer.return_to_parent_value_prompt()
|
||||
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
def explore_type(name, datatype, is_child):
|
||||
"""Function to explore struct/class and union types.
|
||||
See Explorer.explore_type for more information.
|
||||
"""
|
||||
type_code = datatype.code
|
||||
type_desc = ""
|
||||
if type_code == gdb.TYPE_CODE_STRUCT:
|
||||
type_desc = "struct/class"
|
||||
else:
|
||||
type_desc = "union"
|
||||
|
||||
fields = datatype.fields()
|
||||
if CompoundExplorer._get_real_field_count(fields) == 0:
|
||||
if is_child:
|
||||
print ("%s is a %s of type '%s' with no fields." %
|
||||
(name, type_desc, str(datatype)))
|
||||
Explorer.return_to_enclosing_type_prompt()
|
||||
else:
|
||||
print ("'%s' is a %s with no fields." % (name, type_desc))
|
||||
return False
|
||||
|
||||
if is_child:
|
||||
print ("%s is a %s of type '%s' "
|
||||
"with the following fields:\n" %
|
||||
(name, type_desc, str(datatype)))
|
||||
else:
|
||||
print ("'%s' is a %s with the following "
|
||||
"fields:\n" %
|
||||
(name, type_desc))
|
||||
|
||||
has_explorable_fields = False
|
||||
current_choice = 0
|
||||
choice_to_compound_field_map = { }
|
||||
print_list = [ ]
|
||||
for field in fields:
|
||||
if field.artificial:
|
||||
continue
|
||||
if field.is_base_class:
|
||||
field_desc = "base class"
|
||||
else:
|
||||
field_desc = "field"
|
||||
rhs = ("<Enter %d to explore this %s of type '%s'>" %
|
||||
(current_choice, field_desc, str(field.type)))
|
||||
print_list.append((field.name, rhs))
|
||||
choice_to_compound_field_map[str(current_choice)] = (
|
||||
field.name, field.type, field_desc)
|
||||
current_choice = current_choice + 1
|
||||
|
||||
CompoundExplorer._print_fields(print_list)
|
||||
print ("")
|
||||
|
||||
if len(choice_to_compound_field_map) > 0:
|
||||
choice = raw_input("Enter the field number of choice: ")
|
||||
if choice in choice_to_compound_field_map:
|
||||
if is_child:
|
||||
new_name = ("%s '%s' of %s" %
|
||||
(choice_to_compound_field_map[choice][2],
|
||||
choice_to_compound_field_map[choice][0],
|
||||
name))
|
||||
else:
|
||||
new_name = ("%s '%s' of '%s'" %
|
||||
(choice_to_compound_field_map[choice][2],
|
||||
choice_to_compound_field_map[choice][0],
|
||||
name))
|
||||
Explorer.explore_type(new_name,
|
||||
choice_to_compound_field_map[choice][1], True)
|
||||
return True
|
||||
else:
|
||||
if is_child:
|
||||
Explorer.return_to_enclosing_type()
|
||||
else:
|
||||
if is_child:
|
||||
Explorer.return_to_enclosing_type_prompt()
|
||||
|
||||
return False
|
||||
|
||||
|
||||
class TypedefExplorer(object):
|
||||
"""Internal class used to explore values whose type is a typedef."""
|
||||
|
||||
@staticmethod
|
||||
def explore_expr(expr, value, is_child):
|
||||
"""Function to explore typedef values.
|
||||
See Explorer.explore_expr for more information.
|
||||
"""
|
||||
actual_type = value.type.strip_typedefs()
|
||||
print ("The value of '%s' is of type '%s' "
|
||||
"which is a typedef of type '%s'" %
|
||||
(expr, str(value.type), str(actual_type)))
|
||||
|
||||
Explorer.explore_expr(expr, value.cast(actual_type), is_child)
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
def explore_type(name, datatype, is_child):
|
||||
"""Function to explore typedef types.
|
||||
See Explorer.explore_type for more information.
|
||||
"""
|
||||
actual_type = datatype.strip_typedefs()
|
||||
if is_child:
|
||||
print ("The type of %s is a typedef of type '%s'." %
|
||||
(name, str(actual_type)))
|
||||
else:
|
||||
print ("The type '%s' is a typedef of type '%s'." %
|
||||
(name, str(actual_type)))
|
||||
|
||||
Explorer.explore_type(name, actual_type, is_child)
|
||||
return False
|
||||
|
||||
|
||||
class ExploreUtils(object):
|
||||
"""Internal class which provides utilities for the main command classes."""
|
||||
|
||||
@staticmethod
|
||||
def check_args(name, arg_str):
|
||||
"""Utility to check if adequate number of arguments are passed to an
|
||||
explore command.
|
||||
|
||||
Arguments:
|
||||
name: The name of the explore command.
|
||||
arg_str: The argument string passed to the explore command.
|
||||
|
||||
Returns:
|
||||
True if adequate arguments are passed, false otherwise.
|
||||
|
||||
Raises:
|
||||
gdb.GdbError if adequate arguments are not passed.
|
||||
"""
|
||||
if len(arg_str) < 1:
|
||||
raise gdb.GdbError("ERROR: '%s' requires an argument."
|
||||
% name)
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
@staticmethod
|
||||
def get_type_from_str(type_str):
|
||||
"""A utility function to deduce the gdb.Type value from a string
|
||||
representing the type.
|
||||
|
||||
Arguments:
|
||||
type_str: The type string from which the gdb.Type value should be
|
||||
deduced.
|
||||
|
||||
Returns:
|
||||
The deduced gdb.Type value if possible, None otherwise.
|
||||
"""
|
||||
try:
|
||||
# Assume the current language to be C/C++ and make a try.
|
||||
return gdb.parse_and_eval("(%s *)0" % type_str).type.target()
|
||||
except RuntimeError:
|
||||
# If assumption of current language to be C/C++ was wrong, then
|
||||
# lookup the type using the API.
|
||||
try:
|
||||
return gdb.lookup_type(type_str)
|
||||
except RuntimeError:
|
||||
return None
|
||||
|
||||
@staticmethod
|
||||
def get_value_from_str(value_str):
|
||||
"""A utility function to deduce the gdb.Value value from a string
|
||||
representing the value.
|
||||
|
||||
Arguments:
|
||||
value_str: The value string from which the gdb.Value value should
|
||||
be deduced.
|
||||
|
||||
Returns:
|
||||
The deduced gdb.Value value if possible, None otherwise.
|
||||
"""
|
||||
try:
|
||||
return gdb.parse_and_eval(value_str)
|
||||
except RuntimeError:
|
||||
return None
|
||||
|
||||
|
||||
class ExploreCommand(gdb.Command):
|
||||
"""Explore a value or a type valid in the current context.
|
||||
|
||||
Usage:
|
||||
|
||||
explore ARG
|
||||
|
||||
- ARG is either a valid expression or a type name.
|
||||
- At any stage of exploration, hit the return key (instead of a
|
||||
choice, if any) to return to the enclosing type or value.
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
super(ExploreCommand, self).__init__(name = "explore",
|
||||
command_class = gdb.COMMAND_DATA,
|
||||
prefix = True)
|
||||
|
||||
def invoke(self, arg_str, from_tty):
|
||||
if ExploreUtils.check_args("explore", arg_str) == False:
|
||||
return
|
||||
|
||||
# Check if it is a value
|
||||
value = ExploreUtils.get_value_from_str(arg_str)
|
||||
if value is not None:
|
||||
Explorer.explore_expr(arg_str, value, False)
|
||||
return
|
||||
|
||||
# If it is not a value, check if it is a type
|
||||
datatype = ExploreUtils.get_type_from_str(arg_str)
|
||||
if datatype is not None:
|
||||
Explorer.explore_type(arg_str, datatype, False)
|
||||
return
|
||||
|
||||
# If it is neither a value nor a type, raise an error.
|
||||
raise gdb.GdbError(
|
||||
("'%s' neither evaluates to a value nor is a type "
|
||||
"in the current context." %
|
||||
arg_str))
|
||||
|
||||
|
||||
class ExploreValueCommand(gdb.Command):
|
||||
"""Explore value of an expression valid in the current context.
|
||||
|
||||
Usage:
|
||||
|
||||
explore value ARG
|
||||
|
||||
- ARG is a valid expression.
|
||||
- At any stage of exploration, hit the return key (instead of a
|
||||
choice, if any) to return to the enclosing value.
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
super(ExploreValueCommand, self).__init__(
|
||||
name = "explore value", command_class = gdb.COMMAND_DATA)
|
||||
|
||||
def invoke(self, arg_str, from_tty):
|
||||
if ExploreUtils.check_args("explore value", arg_str) == False:
|
||||
return
|
||||
|
||||
value = ExploreUtils.get_value_from_str(arg_str)
|
||||
if value is None:
|
||||
raise gdb.GdbError(
|
||||
(" '%s' does not evaluate to a value in the current "
|
||||
"context." %
|
||||
arg_str))
|
||||
return
|
||||
|
||||
Explorer.explore_expr(arg_str, value, False)
|
||||
|
||||
|
||||
class ExploreTypeCommand(gdb.Command):
|
||||
"""Explore a type or the type of an expression valid in the current
|
||||
context.
|
||||
|
||||
Usage:
|
||||
|
||||
explore type ARG
|
||||
|
||||
- ARG is a valid expression or a type name.
|
||||
- At any stage of exploration, hit the return key (instead of a
|
||||
choice, if any) to return to the enclosing type.
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
super(ExploreTypeCommand, self).__init__(
|
||||
name = "explore type", command_class = gdb.COMMAND_DATA)
|
||||
|
||||
def invoke(self, arg_str, from_tty):
|
||||
if ExploreUtils.check_args("explore type", arg_str) == False:
|
||||
return
|
||||
|
||||
datatype = ExploreUtils.get_type_from_str(arg_str)
|
||||
if datatype is not None:
|
||||
Explorer.explore_type(arg_str, datatype, False)
|
||||
return
|
||||
|
||||
value = ExploreUtils.get_value_from_str(arg_str)
|
||||
if value is not None:
|
||||
print ("'%s' is of type '%s'." % (arg_str, str(value.type)))
|
||||
Explorer.explore_type(str(value.type), value.type, False)
|
||||
return
|
||||
|
||||
raise gdb.GdbError(("'%s' is not a type or value in the current "
|
||||
"context." % arg_str))
|
||||
|
||||
|
||||
Explorer.init_env()
|
||||
|
||||
ExploreCommand()
|
||||
ExploreValueCommand()
|
||||
ExploreTypeCommand()
|
||||
|
|
@ -0,0 +1,368 @@
|
|||
# Pretty-printer commands.
|
||||
# Copyright (C) 2010-2013 Free Software Foundation, Inc.
|
||||
|
||||
# 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/>.
|
||||
|
||||
"""GDB commands for working with pretty-printers."""
|
||||
|
||||
import copy
|
||||
import gdb
|
||||
import re
|
||||
|
||||
|
||||
def parse_printer_regexps(arg):
|
||||
"""Internal utility to parse a pretty-printer command argv.
|
||||
|
||||
Arguments:
|
||||
arg: The arguments to the command. The format is:
|
||||
[object-regexp [name-regexp]].
|
||||
Individual printers in a collection are named as
|
||||
printer-name;subprinter-name.
|
||||
|
||||
Returns:
|
||||
The result is a 3-tuple of compiled regular expressions, except that
|
||||
the resulting compiled subprinter regexp is None if not provided.
|
||||
|
||||
Raises:
|
||||
SyntaxError: an error processing ARG
|
||||
"""
|
||||
|
||||
argv = gdb.string_to_argv(arg);
|
||||
argc = len(argv)
|
||||
object_regexp = "" # match everything
|
||||
name_regexp = "" # match everything
|
||||
subname_regexp = None
|
||||
if argc > 3:
|
||||
raise SyntaxError("too many arguments")
|
||||
if argc >= 1:
|
||||
object_regexp = argv[0]
|
||||
if argc >= 2:
|
||||
name_subname = argv[1].split(";", 1)
|
||||
name_regexp = name_subname[0]
|
||||
if len(name_subname) == 2:
|
||||
subname_regexp = name_subname[1]
|
||||
# That re.compile raises SyntaxError was determined empirically.
|
||||
# We catch it and reraise it to provide a slightly more useful
|
||||
# error message for the user.
|
||||
try:
|
||||
object_re = re.compile(object_regexp)
|
||||
except SyntaxError:
|
||||
raise SyntaxError("invalid object regexp: %s" % object_regexp)
|
||||
try:
|
||||
name_re = re.compile (name_regexp)
|
||||
except SyntaxError:
|
||||
raise SyntaxError("invalid name regexp: %s" % name_regexp)
|
||||
if subname_regexp is not None:
|
||||
try:
|
||||
subname_re = re.compile(subname_regexp)
|
||||
except SyntaxError:
|
||||
raise SyntaxError("invalid subname regexp: %s" % subname_regexp)
|
||||
else:
|
||||
subname_re = None
|
||||
return(object_re, name_re, subname_re)
|
||||
|
||||
|
||||
def printer_enabled_p(printer):
|
||||
"""Internal utility to see if printer (or subprinter) is enabled."""
|
||||
if hasattr(printer, "enabled"):
|
||||
return printer.enabled
|
||||
else:
|
||||
return True
|
||||
|
||||
|
||||
class InfoPrettyPrinter(gdb.Command):
|
||||
"""GDB command to list all registered pretty-printers.
|
||||
|
||||
Usage: info pretty-printer [object-regexp [name-regexp]]
|
||||
|
||||
OBJECT-REGEXP is a regular expression matching the objects to list.
|
||||
Objects are "global", the program space's file, and the objfiles within
|
||||
that program space.
|
||||
|
||||
NAME-REGEXP matches the name of the pretty-printer.
|
||||
Individual printers in a collection are named as
|
||||
printer-name;subprinter-name.
|
||||
"""
|
||||
|
||||
def __init__ (self):
|
||||
super(InfoPrettyPrinter, self).__init__("info pretty-printer",
|
||||
gdb.COMMAND_DATA)
|
||||
|
||||
@staticmethod
|
||||
def enabled_string(printer):
|
||||
"""Return "" if PRINTER is enabled, otherwise " [disabled]"."""
|
||||
if printer_enabled_p(printer):
|
||||
return ""
|
||||
else:
|
||||
return " [disabled]"
|
||||
|
||||
@staticmethod
|
||||
def printer_name(printer):
|
||||
"""Return the printer's name."""
|
||||
if hasattr(printer, "name"):
|
||||
return printer.name
|
||||
if hasattr(printer, "__name__"):
|
||||
return printer.__name__
|
||||
# This "shouldn't happen", but the public API allows for
|
||||
# direct additions to the pretty-printer list, and we shouldn't
|
||||
# crash because someone added a bogus printer.
|
||||
# Plus we want to give the user a way to list unknown printers.
|
||||
return "unknown"
|
||||
|
||||
def list_pretty_printers(self, pretty_printers, name_re, subname_re):
|
||||
"""Print a list of pretty-printers."""
|
||||
# A potential enhancement is to provide an option to list printers in
|
||||
# "lookup order" (i.e. unsorted).
|
||||
sorted_pretty_printers = sorted (copy.copy(pretty_printers),
|
||||
key = self.printer_name)
|
||||
for printer in sorted_pretty_printers:
|
||||
name = self.printer_name(printer)
|
||||
enabled = self.enabled_string(printer)
|
||||
if name_re.match(name):
|
||||
print (" %s%s" % (name, enabled))
|
||||
if (hasattr(printer, "subprinters") and
|
||||
printer.subprinters is not None):
|
||||
sorted_subprinters = sorted (copy.copy(printer.subprinters),
|
||||
key = self.printer_name)
|
||||
for subprinter in sorted_subprinters:
|
||||
if (not subname_re or
|
||||
subname_re.match(subprinter.name)):
|
||||
print (" %s%s" %
|
||||
(subprinter.name,
|
||||
self.enabled_string(subprinter)))
|
||||
|
||||
def invoke1(self, title, printer_list,
|
||||
obj_name_to_match, object_re, name_re, subname_re):
|
||||
"""Subroutine of invoke to simplify it."""
|
||||
if printer_list and object_re.match(obj_name_to_match):
|
||||
print (title)
|
||||
self.list_pretty_printers(printer_list, name_re, subname_re)
|
||||
|
||||
def invoke(self, arg, from_tty):
|
||||
"""GDB calls this to perform the command."""
|
||||
(object_re, name_re, subname_re) = parse_printer_regexps(arg)
|
||||
self.invoke1("global pretty-printers:", gdb.pretty_printers,
|
||||
"global", object_re, name_re, subname_re)
|
||||
cp = gdb.current_progspace()
|
||||
self.invoke1("progspace %s pretty-printers:" % cp.filename,
|
||||
cp.pretty_printers, "progspace",
|
||||
object_re, name_re, subname_re)
|
||||
for objfile in gdb.objfiles():
|
||||
self.invoke1(" objfile %s pretty-printers:" % objfile.filename,
|
||||
objfile.pretty_printers, objfile.filename,
|
||||
object_re, name_re, subname_re)
|
||||
|
||||
|
||||
def count_enabled_printers(pretty_printers):
|
||||
"""Return a 2-tuple of number of enabled and total printers."""
|
||||
enabled = 0
|
||||
total = 0
|
||||
for printer in pretty_printers:
|
||||
if (hasattr(printer, "subprinters")
|
||||
and printer.subprinters is not None):
|
||||
if printer_enabled_p(printer):
|
||||
for subprinter in printer.subprinters:
|
||||
if printer_enabled_p(subprinter):
|
||||
enabled += 1
|
||||
total += len(printer.subprinters)
|
||||
else:
|
||||
if printer_enabled_p(printer):
|
||||
enabled += 1
|
||||
total += 1
|
||||
return (enabled, total)
|
||||
|
||||
|
||||
def count_all_enabled_printers():
|
||||
"""Return a 2-tuble of the enabled state and total number of all printers.
|
||||
This includes subprinters.
|
||||
"""
|
||||
enabled_count = 0
|
||||
total_count = 0
|
||||
(t_enabled, t_total) = count_enabled_printers(gdb.pretty_printers)
|
||||
enabled_count += t_enabled
|
||||
total_count += t_total
|
||||
(t_enabled, t_total) = count_enabled_printers(gdb.current_progspace().pretty_printers)
|
||||
enabled_count += t_enabled
|
||||
total_count += t_total
|
||||
for objfile in gdb.objfiles():
|
||||
(t_enabled, t_total) = count_enabled_printers(objfile.pretty_printers)
|
||||
enabled_count += t_enabled
|
||||
total_count += t_total
|
||||
return (enabled_count, total_count)
|
||||
|
||||
|
||||
def pluralize(text, n, suffix="s"):
|
||||
"""Return TEXT pluralized if N != 1."""
|
||||
if n != 1:
|
||||
return "%s%s" % (text, suffix)
|
||||
else:
|
||||
return text
|
||||
|
||||
|
||||
def show_pretty_printer_enabled_summary():
|
||||
"""Print the number of printers enabled/disabled.
|
||||
We count subprinters individually.
|
||||
"""
|
||||
(enabled_count, total_count) = count_all_enabled_printers()
|
||||
print ("%d of %d printers enabled" % (enabled_count, total_count))
|
||||
|
||||
|
||||
def do_enable_pretty_printer_1 (pretty_printers, name_re, subname_re, flag):
|
||||
"""Worker for enabling/disabling pretty-printers.
|
||||
|
||||
Arguments:
|
||||
pretty_printers: list of pretty-printers
|
||||
name_re: regular-expression object to select printers
|
||||
subname_re: regular expression object to select subprinters or None
|
||||
if all are affected
|
||||
flag: True for Enable, False for Disable
|
||||
|
||||
Returns:
|
||||
The number of printers affected.
|
||||
This is just for informational purposes for the user.
|
||||
"""
|
||||
total = 0
|
||||
for printer in pretty_printers:
|
||||
if (hasattr(printer, "name") and name_re.match(printer.name) or
|
||||
hasattr(printer, "__name__") and name_re.match(printer.__name__)):
|
||||
if (hasattr(printer, "subprinters") and
|
||||
printer.subprinters is not None):
|
||||
if not subname_re:
|
||||
# Only record printers that change state.
|
||||
if printer_enabled_p(printer) != flag:
|
||||
for subprinter in printer.subprinters:
|
||||
if printer_enabled_p(subprinter):
|
||||
total += 1
|
||||
# NOTE: We preserve individual subprinter settings.
|
||||
printer.enabled = flag
|
||||
else:
|
||||
# NOTE: Whether this actually disables the subprinter
|
||||
# depends on whether the printer's lookup function supports
|
||||
# the "enable" API. We can only assume it does.
|
||||
for subprinter in printer.subprinters:
|
||||
if subname_re.match(subprinter.name):
|
||||
# Only record printers that change state.
|
||||
if (printer_enabled_p(printer) and
|
||||
printer_enabled_p(subprinter) != flag):
|
||||
total += 1
|
||||
subprinter.enabled = flag
|
||||
else:
|
||||
# This printer has no subprinters.
|
||||
# If the user does "disable pretty-printer .* .* foo"
|
||||
# should we disable printers that don't have subprinters?
|
||||
# How do we apply "foo" in this context? Since there is no
|
||||
# "foo" subprinter it feels like we should skip this printer.
|
||||
# There's still the issue of how to handle
|
||||
# "disable pretty-printer .* .* .*", and every other variation
|
||||
# that can match everything. For now punt and only support
|
||||
# "disable pretty-printer .* .*" (i.e. subname is elided)
|
||||
# to disable everything.
|
||||
if not subname_re:
|
||||
# Only record printers that change state.
|
||||
if printer_enabled_p(printer) != flag:
|
||||
total += 1
|
||||
printer.enabled = flag
|
||||
return total
|
||||
|
||||
|
||||
def do_enable_pretty_printer (arg, flag):
|
||||
"""Internal worker for enabling/disabling pretty-printers."""
|
||||
(object_re, name_re, subname_re) = parse_printer_regexps(arg)
|
||||
|
||||
total = 0
|
||||
if object_re.match("global"):
|
||||
total += do_enable_pretty_printer_1(gdb.pretty_printers,
|
||||
name_re, subname_re, flag)
|
||||
cp = gdb.current_progspace()
|
||||
if object_re.match("progspace"):
|
||||
total += do_enable_pretty_printer_1(cp.pretty_printers,
|
||||
name_re, subname_re, flag)
|
||||
for objfile in gdb.objfiles():
|
||||
if object_re.match(objfile.filename):
|
||||
total += do_enable_pretty_printer_1(objfile.pretty_printers,
|
||||
name_re, subname_re, flag)
|
||||
|
||||
if flag:
|
||||
state = "enabled"
|
||||
else:
|
||||
state = "disabled"
|
||||
print ("%d %s %s" % (total, pluralize("printer", total), state))
|
||||
|
||||
# Print the total list of printers currently enabled/disabled.
|
||||
# This is to further assist the user in determining whether the result
|
||||
# is expected. Since we use regexps to select it's useful.
|
||||
show_pretty_printer_enabled_summary()
|
||||
|
||||
|
||||
# Enable/Disable one or more pretty-printers.
|
||||
#
|
||||
# This is intended for use when a broken pretty-printer is shipped/installed
|
||||
# and the user wants to disable that printer without disabling all the other
|
||||
# printers.
|
||||
#
|
||||
# A useful addition would be -v (verbose) to show each printer affected.
|
||||
|
||||
class EnablePrettyPrinter (gdb.Command):
|
||||
"""GDB command to enable the specified pretty-printer.
|
||||
|
||||
Usage: enable pretty-printer [object-regexp [name-regexp]]
|
||||
|
||||
OBJECT-REGEXP is a regular expression matching the objects to examine.
|
||||
Objects are "global", the program space's file, and the objfiles within
|
||||
that program space.
|
||||
|
||||
NAME-REGEXP matches the name of the pretty-printer.
|
||||
Individual printers in a collection are named as
|
||||
printer-name;subprinter-name.
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
super(EnablePrettyPrinter, self).__init__("enable pretty-printer",
|
||||
gdb.COMMAND_DATA)
|
||||
|
||||
def invoke(self, arg, from_tty):
|
||||
"""GDB calls this to perform the command."""
|
||||
do_enable_pretty_printer(arg, True)
|
||||
|
||||
|
||||
class DisablePrettyPrinter (gdb.Command):
|
||||
"""GDB command to disable the specified pretty-printer.
|
||||
|
||||
Usage: disable pretty-printer [object-regexp [name-regexp]]
|
||||
|
||||
OBJECT-REGEXP is a regular expression matching the objects to examine.
|
||||
Objects are "global", the program space's file, and the objfiles within
|
||||
that program space.
|
||||
|
||||
NAME-REGEXP matches the name of the pretty-printer.
|
||||
Individual printers in a collection are named as
|
||||
printer-name;subprinter-name.
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
super(DisablePrettyPrinter, self).__init__("disable pretty-printer",
|
||||
gdb.COMMAND_DATA)
|
||||
|
||||
def invoke(self, arg, from_tty):
|
||||
"""GDB calls this to perform the command."""
|
||||
do_enable_pretty_printer(arg, False)
|
||||
|
||||
|
||||
def register_pretty_printer_commands():
|
||||
"""Call from a top level script to install the pretty-printer commands."""
|
||||
InfoPrettyPrinter()
|
||||
EnablePrettyPrinter()
|
||||
DisablePrettyPrinter()
|
||||
|
||||
register_pretty_printer_commands()
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
# Extended prompt.
|
||||
# Copyright (C) 2011-2013 Free Software Foundation, Inc.
|
||||
|
||||
# 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/>.
|
||||
|
||||
"""GDB command for working with extended prompts."""
|
||||
|
||||
import gdb
|
||||
import gdb.prompt
|
||||
|
||||
class _ExtendedPrompt(gdb.Parameter):
|
||||
|
||||
"""Set the extended prompt.
|
||||
|
||||
Usage: set extended-prompt VALUE
|
||||
|
||||
Substitutions are applied to VALUE to compute the real prompt.
|
||||
|
||||
The currently defined substitutions are:
|
||||
|
||||
"""
|
||||
# Add the prompt library's dynamically generated help to the
|
||||
# __doc__ string.
|
||||
__doc__ = __doc__ + gdb.prompt.prompt_help()
|
||||
|
||||
set_doc = "Set the extended prompt."
|
||||
show_doc = "Show the extended prompt."
|
||||
|
||||
def __init__(self):
|
||||
super(_ExtendedPrompt, self).__init__("extended-prompt",
|
||||
gdb.COMMAND_SUPPORT,
|
||||
gdb.PARAM_STRING_NOESCAPE)
|
||||
self.value = ''
|
||||
self.hook_set = False
|
||||
|
||||
def get_show_string (self, pvalue):
|
||||
if self.value is not '':
|
||||
return "The extended prompt is: " + self.value
|
||||
else:
|
||||
return "The extended prompt is not set."
|
||||
|
||||
def get_set_string (self):
|
||||
if self.hook_set == False:
|
||||
gdb.prompt_hook = self.before_prompt_hook
|
||||
self.hook_set = True
|
||||
return ""
|
||||
|
||||
def before_prompt_hook(self, current):
|
||||
if self.value is not '':
|
||||
newprompt = gdb.prompt.substitute_prompt(self.value)
|
||||
return newprompt.replace('\\', '\\\\')
|
||||
else:
|
||||
return None
|
||||
|
||||
_ExtendedPrompt()
|
||||
|
|
@ -0,0 +1,125 @@
|
|||
# Type printer commands.
|
||||
# Copyright (C) 2010-2013 Free Software Foundation, Inc.
|
||||
|
||||
# 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/>.
|
||||
|
||||
import copy
|
||||
import gdb
|
||||
|
||||
"""GDB commands for working with type-printers."""
|
||||
|
||||
class InfoTypePrinter(gdb.Command):
|
||||
"""GDB command to list all registered type-printers.
|
||||
|
||||
Usage: info type-printers
|
||||
"""
|
||||
|
||||
def __init__ (self):
|
||||
super(InfoTypePrinter, self).__init__("info type-printers",
|
||||
gdb.COMMAND_DATA)
|
||||
|
||||
def list_type_printers(self, type_printers):
|
||||
"""Print a list of type printers."""
|
||||
# A potential enhancement is to provide an option to list printers in
|
||||
# "lookup order" (i.e. unsorted).
|
||||
sorted_type_printers = sorted (copy.copy(type_printers),
|
||||
key = lambda x: x.name)
|
||||
for printer in sorted_type_printers:
|
||||
if printer.enabled:
|
||||
enabled = ''
|
||||
else:
|
||||
enabled = " [disabled]"
|
||||
print (" %s%s" % (printer.name, enabled))
|
||||
|
||||
def invoke(self, arg, from_tty):
|
||||
"""GDB calls this to perform the command."""
|
||||
sep = ''
|
||||
for objfile in gdb.objfiles():
|
||||
if objfile.type_printers:
|
||||
print ("%sType printers for %s:" % (sep, objfile.name))
|
||||
self.list_type_printers(objfile.type_printers)
|
||||
sep = '\n'
|
||||
if gdb.current_progspace().type_printers:
|
||||
print ("%sType printers for program space:" % sep)
|
||||
self.list_type_printers(gdb.current_progspace().type_printers)
|
||||
sep = '\n'
|
||||
if gdb.type_printers:
|
||||
print ("%sGlobal type printers:" % sep)
|
||||
self.list_type_printers(gdb.type_printers)
|
||||
|
||||
class _EnableOrDisableCommand(gdb.Command):
|
||||
def __init__(self, setting, name):
|
||||
super(_EnableOrDisableCommand, self).__init__(name, gdb.COMMAND_DATA)
|
||||
self.setting = setting
|
||||
|
||||
def set_some(self, name, printers):
|
||||
result = False
|
||||
for p in printers:
|
||||
if name == p.name:
|
||||
p.enabled = self.setting
|
||||
result = True
|
||||
return result
|
||||
|
||||
def invoke(self, arg, from_tty):
|
||||
"""GDB calls this to perform the command."""
|
||||
for name in arg.split():
|
||||
ok = False
|
||||
for objfile in gdb.objfiles():
|
||||
if self.set_some(name, objfile.type_printers):
|
||||
ok = True
|
||||
if self.set_some(name, gdb.current_progspace().type_printers):
|
||||
ok = True
|
||||
if self.set_some(name, gdb.type_printers):
|
||||
ok = True
|
||||
if not ok:
|
||||
print ("No type printer named '%s'" % name)
|
||||
|
||||
def add_some(self, result, word, printers):
|
||||
for p in printers:
|
||||
if p.name.startswith(word):
|
||||
result.append(p.name)
|
||||
|
||||
def complete(self, text, word):
|
||||
result = []
|
||||
for objfile in gdb.objfiles():
|
||||
self.add_some(result, word, objfile.type_printers)
|
||||
self.add_some(result, word, gdb.current_progspace().type_printers)
|
||||
self.add_some(result, word, gdb.type_printers)
|
||||
return result
|
||||
|
||||
class EnableTypePrinter(_EnableOrDisableCommand):
|
||||
"""GDB command to enable the specified type printer.
|
||||
|
||||
Usage: enable type-printer NAME
|
||||
|
||||
NAME is the name of the type-printer.
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
super(EnableTypePrinter, self).__init__(True, "enable type-printer")
|
||||
|
||||
class DisableTypePrinter(_EnableOrDisableCommand):
|
||||
"""GDB command to disable the specified type-printer.
|
||||
|
||||
Usage: disable type-printer NAME
|
||||
|
||||
NAME is the name of the type-printer.
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
super(DisableTypePrinter, self).__init__(False, "disable type-printer")
|
||||
|
||||
InfoTypePrinter()
|
||||
EnableTypePrinter()
|
||||
DisableTypePrinter()
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
# Copyright (C) 2012-2013 Free Software Foundation, Inc.
|
||||
|
||||
# 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/>.
|
||||
|
|
@ -0,0 +1,108 @@
|
|||
# Useful gdb string convenience functions.
|
||||
# Copyright (C) 2012-2013 Free Software Foundation, Inc.
|
||||
|
||||
# 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/>.
|
||||
|
||||
"""$_memeq, $_strlen, $_streq, $_regex"""
|
||||
|
||||
import gdb
|
||||
import re
|
||||
|
||||
|
||||
class _MemEq(gdb.Function):
|
||||
"""$_memeq - compare bytes of memory
|
||||
|
||||
Usage:
|
||||
$_memeq(a, b, len)
|
||||
|
||||
Returns:
|
||||
True if len bytes at a and b compare equally.
|
||||
"""
|
||||
def __init__(self):
|
||||
super(_MemEq, self).__init__("_memeq")
|
||||
|
||||
def invoke(self, a, b, length):
|
||||
if length < 0:
|
||||
raise ValueError("length must be non-negative")
|
||||
if length == 0:
|
||||
return True
|
||||
# The argument(s) to vector are [low_bound,]high_bound.
|
||||
byte_vector = gdb.lookup_type("char").vector(length - 1)
|
||||
ptr_byte_vector = byte_vector.pointer()
|
||||
a_ptr = a.reinterpret_cast(ptr_byte_vector)
|
||||
b_ptr = b.reinterpret_cast(ptr_byte_vector)
|
||||
return a_ptr.dereference() == b_ptr.dereference()
|
||||
|
||||
|
||||
class _StrLen(gdb.Function):
|
||||
"""$_strlen - compute string length
|
||||
|
||||
Usage:
|
||||
$_strlen(a)
|
||||
|
||||
Returns:
|
||||
Length of string a, assumed to be a string in the current language.
|
||||
"""
|
||||
def __init__(self):
|
||||
super(_StrLen, self).__init__("_strlen")
|
||||
|
||||
def invoke(self, a):
|
||||
s = a.string()
|
||||
return len(s)
|
||||
|
||||
|
||||
class _StrEq(gdb.Function):
|
||||
"""$_streq - check string equality
|
||||
|
||||
Usage:
|
||||
$_streq(a, b)
|
||||
|
||||
Returns:
|
||||
True if a and b are identical strings in the current language.
|
||||
|
||||
Example (amd64-linux):
|
||||
catch syscall open
|
||||
cond $bpnum $_streq((char*) $rdi, "foo")
|
||||
"""
|
||||
def __init__(self):
|
||||
super(_StrEq, self).__init__("_streq")
|
||||
|
||||
def invoke(self, a, b):
|
||||
return a.string() == b.string()
|
||||
|
||||
|
||||
class _RegEx(gdb.Function):
|
||||
"""$_regex - check if a string matches a regular expression
|
||||
|
||||
Usage:
|
||||
$_regex(string, regex)
|
||||
|
||||
Returns:
|
||||
True if string str (in the current language) matches the
|
||||
regular expression regex.
|
||||
"""
|
||||
def __init__(self):
|
||||
super(_RegEx, self).__init__("_regex")
|
||||
|
||||
def invoke(self, string, regex):
|
||||
s = string.string()
|
||||
r = re.compile(regex.string())
|
||||
return bool(r.match(s))
|
||||
|
||||
|
||||
# GDB will import us automagically via gdb/__init__.py.
|
||||
_MemEq()
|
||||
_StrLen()
|
||||
_StrEq()
|
||||
_RegEx()
|
||||
|
|
@ -0,0 +1,263 @@
|
|||
# Pretty-printer utilities.
|
||||
# Copyright (C) 2010-2013 Free Software Foundation, Inc.
|
||||
|
||||
# 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/>.
|
||||
|
||||
"""Utilities for working with pretty-printers."""
|
||||
|
||||
import gdb
|
||||
import gdb.types
|
||||
import re
|
||||
import sys
|
||||
|
||||
if sys.version_info[0] > 2:
|
||||
# Python 3 removed basestring and long
|
||||
basestring = str
|
||||
long = int
|
||||
|
||||
class PrettyPrinter(object):
|
||||
"""A basic pretty-printer.
|
||||
|
||||
Attributes:
|
||||
name: A unique string among all printers for the context in which
|
||||
it is defined (objfile, progspace, or global(gdb)), and should
|
||||
meaningfully describe what can be pretty-printed.
|
||||
E.g., "StringPiece" or "protobufs".
|
||||
subprinters: An iterable object with each element having a `name'
|
||||
attribute, and, potentially, "enabled" attribute.
|
||||
Or this is None if there are no subprinters.
|
||||
enabled: A boolean indicating if the printer is enabled.
|
||||
|
||||
Subprinters are for situations where "one" pretty-printer is actually a
|
||||
collection of several printers. E.g., The libstdc++ pretty-printer has
|
||||
a pretty-printer for each of several different types, based on regexps.
|
||||
"""
|
||||
|
||||
# While one might want to push subprinters into the subclass, it's
|
||||
# present here to formalize such support to simplify
|
||||
# commands/pretty_printers.py.
|
||||
|
||||
def __init__(self, name, subprinters=None):
|
||||
self.name = name
|
||||
self.subprinters = subprinters
|
||||
self.enabled = True
|
||||
|
||||
def __call__(self, val):
|
||||
# The subclass must define this.
|
||||
raise NotImplementedError("PrettyPrinter __call__")
|
||||
|
||||
|
||||
class SubPrettyPrinter(object):
|
||||
"""Baseclass for sub-pretty-printers.
|
||||
|
||||
Sub-pretty-printers needn't use this, but it formalizes what's needed.
|
||||
|
||||
Attributes:
|
||||
name: The name of the subprinter.
|
||||
enabled: A boolean indicating if the subprinter is enabled.
|
||||
"""
|
||||
|
||||
def __init__(self, name):
|
||||
self.name = name
|
||||
self.enabled = True
|
||||
|
||||
|
||||
def register_pretty_printer(obj, printer, replace=False):
|
||||
"""Register pretty-printer PRINTER with OBJ.
|
||||
|
||||
The printer is added to the front of the search list, thus one can override
|
||||
an existing printer if one needs to. Use a different name when overriding
|
||||
an existing printer, otherwise an exception will be raised; multiple
|
||||
printers with the same name are disallowed.
|
||||
|
||||
Arguments:
|
||||
obj: Either an objfile, progspace, or None (in which case the printer
|
||||
is registered globally).
|
||||
printer: Either a function of one argument (old way) or any object
|
||||
which has attributes: name, enabled, __call__.
|
||||
replace: If True replace any existing copy of the printer.
|
||||
Otherwise if the printer already exists raise an exception.
|
||||
|
||||
Returns:
|
||||
Nothing.
|
||||
|
||||
Raises:
|
||||
TypeError: A problem with the type of the printer.
|
||||
ValueError: The printer's name contains a semicolon ";".
|
||||
RuntimeError: A printer with the same name is already registered.
|
||||
|
||||
If the caller wants the printer to be listable and disableable, it must
|
||||
follow the PrettyPrinter API. This applies to the old way (functions) too.
|
||||
If printer is an object, __call__ is a method of two arguments:
|
||||
self, and the value to be pretty-printed. See PrettyPrinter.
|
||||
"""
|
||||
|
||||
# Watch for both __name__ and name.
|
||||
# Functions get the former for free, but we don't want to use an
|
||||
# attribute named __foo__ for pretty-printers-as-objects.
|
||||
# If printer has both, we use `name'.
|
||||
if not hasattr(printer, "__name__") and not hasattr(printer, "name"):
|
||||
raise TypeError("printer missing attribute: name")
|
||||
if hasattr(printer, "name") and not hasattr(printer, "enabled"):
|
||||
raise TypeError("printer missing attribute: enabled")
|
||||
if not hasattr(printer, "__call__"):
|
||||
raise TypeError("printer missing attribute: __call__")
|
||||
|
||||
if obj is None:
|
||||
if gdb.parameter("verbose"):
|
||||
gdb.write("Registering global %s pretty-printer ...\n" % name)
|
||||
obj = gdb
|
||||
else:
|
||||
if gdb.parameter("verbose"):
|
||||
gdb.write("Registering %s pretty-printer for %s ...\n" %
|
||||
(printer.name, obj.filename))
|
||||
|
||||
if hasattr(printer, "name"):
|
||||
if not isinstance(printer.name, basestring):
|
||||
raise TypeError("printer name is not a string")
|
||||
# If printer provides a name, make sure it doesn't contain ";".
|
||||
# Semicolon is used by the info/enable/disable pretty-printer commands
|
||||
# to delimit subprinters.
|
||||
if printer.name.find(";") >= 0:
|
||||
raise ValueError("semicolon ';' in printer name")
|
||||
# Also make sure the name is unique.
|
||||
# Alas, we can't do the same for functions and __name__, they could
|
||||
# all have a canonical name like "lookup_function".
|
||||
# PERF: gdb records printers in a list, making this inefficient.
|
||||
i = 0
|
||||
for p in obj.pretty_printers:
|
||||
if hasattr(p, "name") and p.name == printer.name:
|
||||
if replace:
|
||||
del obj.pretty_printers[i]
|
||||
break
|
||||
else:
|
||||
raise RuntimeError("pretty-printer already registered: %s" %
|
||||
printer.name)
|
||||
i = i + 1
|
||||
|
||||
obj.pretty_printers.insert(0, printer)
|
||||
|
||||
|
||||
class RegexpCollectionPrettyPrinter(PrettyPrinter):
|
||||
"""Class for implementing a collection of regular-expression based pretty-printers.
|
||||
|
||||
Intended usage:
|
||||
|
||||
pretty_printer = RegexpCollectionPrettyPrinter("my_library")
|
||||
pretty_printer.add_printer("myclass1", "^myclass1$", MyClass1Printer)
|
||||
...
|
||||
pretty_printer.add_printer("myclassN", "^myclassN$", MyClassNPrinter)
|
||||
register_pretty_printer(obj, pretty_printer)
|
||||
"""
|
||||
|
||||
class RegexpSubprinter(SubPrettyPrinter):
|
||||
def __init__(self, name, regexp, gen_printer):
|
||||
super(RegexpCollectionPrettyPrinter.RegexpSubprinter, self).__init__(name)
|
||||
self.regexp = regexp
|
||||
self.gen_printer = gen_printer
|
||||
self.compiled_re = re.compile(regexp)
|
||||
|
||||
def __init__(self, name):
|
||||
super(RegexpCollectionPrettyPrinter, self).__init__(name, [])
|
||||
|
||||
def add_printer(self, name, regexp, gen_printer):
|
||||
"""Add a printer to the list.
|
||||
|
||||
The printer is added to the end of the list.
|
||||
|
||||
Arguments:
|
||||
name: The name of the subprinter.
|
||||
regexp: The regular expression, as a string.
|
||||
gen_printer: A function/method that given a value returns an
|
||||
object to pretty-print it.
|
||||
|
||||
Returns:
|
||||
Nothing.
|
||||
"""
|
||||
|
||||
# NOTE: A previous version made the name of each printer the regexp.
|
||||
# That makes it awkward to pass to the enable/disable commands (it's
|
||||
# cumbersome to make a regexp of a regexp). So now the name is a
|
||||
# separate parameter.
|
||||
|
||||
self.subprinters.append(self.RegexpSubprinter(name, regexp,
|
||||
gen_printer))
|
||||
|
||||
def __call__(self, val):
|
||||
"""Lookup the pretty-printer for the provided value."""
|
||||
|
||||
# Get the type name.
|
||||
typename = gdb.types.get_basic_type(val.type).tag
|
||||
if not typename:
|
||||
return None
|
||||
|
||||
# Iterate over table of type regexps to determine
|
||||
# if a printer is registered for that type.
|
||||
# Return an instantiation of the printer if found.
|
||||
for printer in self.subprinters:
|
||||
if printer.enabled and printer.compiled_re.search(typename):
|
||||
return printer.gen_printer(val)
|
||||
|
||||
# Cannot find a pretty printer. Return None.
|
||||
return None
|
||||
|
||||
# A helper class for printing enum types. This class is instantiated
|
||||
# with a list of enumerators to print a particular Value.
|
||||
class _EnumInstance:
|
||||
def __init__(self, enumerators, val):
|
||||
self.enumerators = enumerators
|
||||
self.val = val
|
||||
|
||||
def to_string(self):
|
||||
flag_list = []
|
||||
v = long(self.val)
|
||||
any_found = False
|
||||
for (e_name, e_value) in self.enumerators:
|
||||
if v & e_value != 0:
|
||||
flag_list.append(e_name)
|
||||
v = v & ~e_value
|
||||
any_found = True
|
||||
if not any_found or v != 0:
|
||||
# Leftover value.
|
||||
flag_list.append('<unknown: 0x%x>' % v)
|
||||
return "0x%x [%s]" % (self.val, " | ".join(flag_list))
|
||||
|
||||
class FlagEnumerationPrinter(PrettyPrinter):
|
||||
"""A pretty-printer which can be used to print a flag-style enumeration.
|
||||
A flag-style enumeration is one where the enumerators are or'd
|
||||
together to create values. The new printer will print these
|
||||
symbolically using '|' notation. The printer must be registered
|
||||
manually. This printer is most useful when an enum is flag-like,
|
||||
but has some overlap. GDB's built-in printing will not handle
|
||||
this case, but this printer will attempt to."""
|
||||
|
||||
def __init__(self, enum_type):
|
||||
super(FlagEnumerationPrinter, self).__init__(enum_type)
|
||||
self.initialized = False
|
||||
|
||||
def __call__(self, val):
|
||||
if not self.initialized:
|
||||
self.initialized = True
|
||||
flags = gdb.lookup_type(self.name)
|
||||
self.enumerators = []
|
||||
for field in flags.fields():
|
||||
self.enumerators.append((field.name, field.enumval))
|
||||
# Sorting the enumerators by value usually does the right
|
||||
# thing.
|
||||
self.enumerators.sort(key = lambda x: x.enumval)
|
||||
|
||||
if self.enabled:
|
||||
return _EnumInstance(self.enumerators, val)
|
||||
else:
|
||||
return None
|
||||
|
|
@ -0,0 +1,148 @@
|
|||
# Extended prompt utilities.
|
||||
# Copyright (C) 2011-2013 Free Software Foundation, Inc.
|
||||
|
||||
# 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/>.
|
||||
|
||||
""" Extended prompt library functions."""
|
||||
|
||||
import gdb
|
||||
import os
|
||||
|
||||
def _prompt_pwd(ignore):
|
||||
"The current working directory."
|
||||
return os.getcwdu()
|
||||
|
||||
def _prompt_object_attr(func, what, attr, nattr):
|
||||
"""Internal worker for fetching GDB attributes."""
|
||||
if attr is None:
|
||||
attr = nattr
|
||||
try:
|
||||
obj = func()
|
||||
except gdb.error:
|
||||
return '<no %s>' % what
|
||||
if hasattr(obj, attr):
|
||||
result = getattr(obj, attr)
|
||||
if callable(result):
|
||||
result = result()
|
||||
return result
|
||||
else:
|
||||
return '<no attribute %s on current %s>' % (attr, what)
|
||||
|
||||
def _prompt_frame(attr):
|
||||
"The selected frame; an argument names a frame parameter."
|
||||
return _prompt_object_attr(gdb.selected_frame, 'frame', attr, 'name')
|
||||
|
||||
def _prompt_thread(attr):
|
||||
"The selected thread; an argument names a thread parameter."
|
||||
return _prompt_object_attr(gdb.selected_thread, 'thread', attr, 'num')
|
||||
|
||||
def _prompt_version(attr):
|
||||
"The version of GDB."
|
||||
return gdb.VERSION
|
||||
|
||||
def _prompt_esc(attr):
|
||||
"The ESC character."
|
||||
return '\033'
|
||||
|
||||
def _prompt_bs(attr):
|
||||
"A backslash."
|
||||
return '\\'
|
||||
|
||||
def _prompt_n(attr):
|
||||
"A newline."
|
||||
return '\n'
|
||||
|
||||
def _prompt_r(attr):
|
||||
"A carriage return."
|
||||
return '\r'
|
||||
|
||||
def _prompt_param(attr):
|
||||
"A parameter's value; the argument names the parameter."
|
||||
return gdb.parameter(attr)
|
||||
|
||||
def _prompt_noprint_begin(attr):
|
||||
"Begins a sequence of non-printing characters."
|
||||
return '\001'
|
||||
|
||||
def _prompt_noprint_end(attr):
|
||||
"Ends a sequence of non-printing characters."
|
||||
return '\002'
|
||||
|
||||
prompt_substitutions = {
|
||||
'e': _prompt_esc,
|
||||
'\\': _prompt_bs,
|
||||
'n': _prompt_n,
|
||||
'r': _prompt_r,
|
||||
'v': _prompt_version,
|
||||
'w': _prompt_pwd,
|
||||
'f': _prompt_frame,
|
||||
't': _prompt_thread,
|
||||
'p': _prompt_param,
|
||||
'[': _prompt_noprint_begin,
|
||||
']': _prompt_noprint_end
|
||||
}
|
||||
|
||||
def prompt_help():
|
||||
"""Generate help dynamically from the __doc__ strings of attribute
|
||||
functions."""
|
||||
|
||||
result = ''
|
||||
keys = sorted (prompt_substitutions.keys())
|
||||
for key in keys:
|
||||
result += ' \\%s\t%s\n' % (key, prompt_substitutions[key].__doc__)
|
||||
result += """
|
||||
A substitution can be used in a simple form, like "\\f".
|
||||
An argument can also be passed to it, like "\\f{name}".
|
||||
The meaning of the argument depends on the particular substitution."""
|
||||
return result
|
||||
|
||||
def substitute_prompt(prompt):
|
||||
"Perform substitutions on PROMPT."
|
||||
|
||||
result = ''
|
||||
plen = len(prompt)
|
||||
i = 0
|
||||
while i < plen:
|
||||
if prompt[i] == '\\':
|
||||
i = i + 1
|
||||
if i >= plen:
|
||||
break
|
||||
cmdch = prompt[i]
|
||||
|
||||
if cmdch in prompt_substitutions:
|
||||
cmd = prompt_substitutions[cmdch]
|
||||
|
||||
if i + 1 < plen and prompt[i + 1] == '{':
|
||||
j = i + 1
|
||||
while j < plen and prompt[j] != '}':
|
||||
j = j + 1
|
||||
# Just ignore formatting errors.
|
||||
if j >= plen or prompt[j] != '}':
|
||||
arg = None
|
||||
else:
|
||||
arg = prompt[i + 2 : j]
|
||||
i = j
|
||||
else:
|
||||
arg = None
|
||||
result += str(cmd(arg))
|
||||
else:
|
||||
# Unrecognized escapes are turned into the escaped
|
||||
# character itself.
|
||||
result += prompt[i]
|
||||
else:
|
||||
result += prompt[i]
|
||||
|
||||
i = i + 1
|
||||
|
||||
return result
|
||||
|
|
@ -0,0 +1,176 @@
|
|||
# Type utilities.
|
||||
# Copyright (C) 2010-2013 Free Software Foundation, Inc.
|
||||
|
||||
# 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/>.
|
||||
|
||||
"""Utilities for working with gdb.Types."""
|
||||
|
||||
import gdb
|
||||
|
||||
|
||||
def get_basic_type(type_):
|
||||
"""Return the "basic" type of a type.
|
||||
|
||||
Arguments:
|
||||
type_: The type to reduce to its basic type.
|
||||
|
||||
Returns:
|
||||
type_ with const/volatile is stripped away,
|
||||
and typedefs/references converted to the underlying type.
|
||||
"""
|
||||
|
||||
while (type_.code == gdb.TYPE_CODE_REF or
|
||||
type_.code == gdb.TYPE_CODE_TYPEDEF):
|
||||
if type_.code == gdb.TYPE_CODE_REF:
|
||||
type_ = type_.target()
|
||||
else:
|
||||
type_ = type_.strip_typedefs()
|
||||
return type_.unqualified()
|
||||
|
||||
|
||||
def has_field(type_, field):
|
||||
"""Return True if a type has the specified field.
|
||||
|
||||
Arguments:
|
||||
type_: The type to examine.
|
||||
It must be one of gdb.TYPE_CODE_STRUCT, gdb.TYPE_CODE_UNION.
|
||||
field: The name of the field to look up.
|
||||
|
||||
Returns:
|
||||
True if the field is present either in type_ or any baseclass.
|
||||
|
||||
Raises:
|
||||
TypeError: The type is not a struct or union.
|
||||
"""
|
||||
|
||||
type_ = get_basic_type(type_)
|
||||
if (type_.code != gdb.TYPE_CODE_STRUCT and
|
||||
type_.code != gdb.TYPE_CODE_UNION):
|
||||
raise TypeError("not a struct or union")
|
||||
for f in type_.fields():
|
||||
if f.is_base_class:
|
||||
if has_field(f.type, field):
|
||||
return True
|
||||
else:
|
||||
# NOTE: f.name could be None
|
||||
if f.name == field:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def make_enum_dict(enum_type):
|
||||
"""Return a dictionary from a program's enum type.
|
||||
|
||||
Arguments:
|
||||
enum_type: The enum to compute the dictionary for.
|
||||
|
||||
Returns:
|
||||
The dictionary of the enum.
|
||||
|
||||
Raises:
|
||||
TypeError: The type is not an enum.
|
||||
"""
|
||||
|
||||
if enum_type.code != gdb.TYPE_CODE_ENUM:
|
||||
raise TypeError("not an enum type")
|
||||
enum_dict = {}
|
||||
for field in enum_type.fields():
|
||||
# The enum's value is stored in "enumval".
|
||||
enum_dict[field.name] = field.enumval
|
||||
return enum_dict
|
||||
|
||||
|
||||
def deep_items (type_):
|
||||
"""Return an iterator that recursively traverses anonymous fields.
|
||||
|
||||
Arguments:
|
||||
type_: The type to traverse. It should be one of
|
||||
gdb.TYPE_CODE_STRUCT or gdb.TYPE_CODE_UNION.
|
||||
|
||||
Returns:
|
||||
an iterator similar to gdb.Type.iteritems(), i.e., it returns
|
||||
pairs of key, value, but for any anonymous struct or union
|
||||
field that field is traversed recursively, depth-first.
|
||||
"""
|
||||
for k, v in type_.iteritems ():
|
||||
if k:
|
||||
yield k, v
|
||||
else:
|
||||
for i in deep_items (v.type):
|
||||
yield i
|
||||
|
||||
class TypePrinter(object):
|
||||
"""The base class for type printers.
|
||||
|
||||
Instances of this type can be used to substitute type names during
|
||||
'ptype'.
|
||||
|
||||
A type printer must have at least 'name' and 'enabled' attributes,
|
||||
and supply an 'instantiate' method.
|
||||
|
||||
The 'instantiate' method must either return None, or return an
|
||||
object which has a 'recognize' method. This method must accept a
|
||||
gdb.Type argument and either return None, meaning that the type
|
||||
was not recognized, or a string naming the type.
|
||||
"""
|
||||
|
||||
def __init__(self, name):
|
||||
self.name = name
|
||||
self.enabled = True
|
||||
|
||||
def instantiate(self):
|
||||
return None
|
||||
|
||||
# Helper function for computing the list of type recognizers.
|
||||
def _get_some_type_recognizers(result, plist):
|
||||
for printer in plist:
|
||||
if printer.enabled:
|
||||
inst = printer.instantiate()
|
||||
if inst is not None:
|
||||
result.append(inst)
|
||||
return None
|
||||
|
||||
def get_type_recognizers():
|
||||
"Return a list of the enabled type recognizers for the current context."
|
||||
result = []
|
||||
|
||||
# First try the objfiles.
|
||||
for objfile in gdb.objfiles():
|
||||
_get_some_type_recognizers(result, objfile.type_printers)
|
||||
# Now try the program space.
|
||||
_get_some_type_recognizers(result, gdb.current_progspace().type_printers)
|
||||
# Finally, globals.
|
||||
_get_some_type_recognizers(result, gdb.type_printers)
|
||||
|
||||
return result
|
||||
|
||||
def apply_type_recognizers(recognizers, type_obj):
|
||||
"""Apply the given list of type recognizers to the type TYPE_OBJ.
|
||||
If any recognizer in the list recognizes TYPE_OBJ, returns the name
|
||||
given by the recognizer. Otherwise, this returns None."""
|
||||
for r in recognizers:
|
||||
result = r.recognize(type_obj)
|
||||
if result is not None:
|
||||
return result
|
||||
return None
|
||||
|
||||
def register_type_printer(locus, printer):
|
||||
"""Register a type printer.
|
||||
PRINTER is the type printer instance.
|
||||
LOCUS is either an objfile, a program space, or None, indicating
|
||||
global registration."""
|
||||
|
||||
if locus is None:
|
||||
locus = gdb
|
||||
locus.type_printers.insert(0, printer)
|
||||
|
|
@ -0,0 +1,314 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2009-2013 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. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
|
||||
|
||||
<!-- This file was generated using the following file:
|
||||
|
||||
/usr/src/linux/arch/x86/include/asm/unistd_64.h
|
||||
|
||||
The file mentioned above belongs to the Linux Kernel. -->
|
||||
|
||||
<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="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="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="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="umask" number="95"/>
|
||||
<syscall name="gettimeofday" number="96"/>
|
||||
<syscall name="getrlimit" number="97"/>
|
||||
<syscall name="getrusage" number="98"/>
|
||||
<syscall name="sysinfo" number="99"/>
|
||||
<syscall name="times" number="100"/>
|
||||
<syscall name="ptrace" number="101"/>
|
||||
<syscall name="getuid" number="102"/>
|
||||
<syscall name="syslog" number="103"/>
|
||||
<syscall name="getgid" number="104"/>
|
||||
<syscall name="setuid" number="105"/>
|
||||
<syscall name="setgid" number="106"/>
|
||||
<syscall name="geteuid" number="107"/>
|
||||
<syscall name="getegid" number="108"/>
|
||||
<syscall name="setpgid" number="109"/>
|
||||
<syscall name="getppid" number="110"/>
|
||||
<syscall name="getpgrp" number="111"/>
|
||||
<syscall name="setsid" number="112"/>
|
||||
<syscall name="setreuid" number="113"/>
|
||||
<syscall name="setregid" number="114"/>
|
||||
<syscall name="getgroups" number="115"/>
|
||||
<syscall name="setgroups" number="116"/>
|
||||
<syscall name="setresuid" number="117"/>
|
||||
<syscall name="getresuid" number="118"/>
|
||||
<syscall name="setresgid" number="119"/>
|
||||
<syscall name="getresgid" number="120"/>
|
||||
<syscall name="getpgid" number="121"/>
|
||||
<syscall name="setfsuid" number="122"/>
|
||||
<syscall name="setfsgid" number="123"/>
|
||||
<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="personality" number="135"/>
|
||||
<syscall name="ustat" number="136"/>
|
||||
<syscall name="statfs" number="137"/>
|
||||
<syscall name="fstatfs" number="138"/>
|
||||
<syscall name="sysfs" number="139"/>
|
||||
<syscall name="getpriority" number="140"/>
|
||||
<syscall name="setpriority" number="141"/>
|
||||
<syscall name="sched_setparam" number="142"/>
|
||||
<syscall name="sched_getparam" number="143"/>
|
||||
<syscall name="sched_setscheduler" number="144"/>
|
||||
<syscall name="sched_getscheduler" number="145"/>
|
||||
<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="vhangup" number="153"/>
|
||||
<syscall name="modify_ldt" number="154"/>
|
||||
<syscall name="pivot_root" number="155"/>
|
||||
<syscall name="_sysctl" number="156"/>
|
||||
<syscall name="prctl" number="157"/>
|
||||
<syscall name="arch_prctl" number="158"/>
|
||||
<syscall name="adjtimex" number="159"/>
|
||||
<syscall name="setrlimit" number="160"/>
|
||||
<syscall name="chroot" number="161"/>
|
||||
<syscall name="sync" number="162"/>
|
||||
<syscall name="acct" number="163"/>
|
||||
<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="reboot" number="169"/>
|
||||
<syscall name="sethostname" number="170"/>
|
||||
<syscall name="setdomainname" number="171"/>
|
||||
<syscall name="iopl" number="172"/>
|
||||
<syscall name="ioperm" number="173"/>
|
||||
<syscall name="create_module" number="174"/>
|
||||
<syscall name="init_module" number="175"/>
|
||||
<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="nfsservctl" number="180"/>
|
||||
<syscall name="getpmsg" number="181"/>
|
||||
<syscall name="putpmsg" number="182"/>
|
||||
<syscall name="afs_syscall" number="183"/>
|
||||
<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="time" number="201"/>
|
||||
<syscall name="futex" number="202"/>
|
||||
<syscall name="sched_setaffinity" number="203"/>
|
||||
<syscall name="sched_getaffinity" number="204"/>
|
||||
<syscall name="set_thread_area" number="205"/>
|
||||
<syscall name="io_setup" number="206"/>
|
||||
<syscall name="io_destroy" number="207"/>
|
||||
<syscall name="io_getevents" number="208"/>
|
||||
<syscall name="io_submit" number="209"/>
|
||||
<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_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="set_tid_address" number="218"/>
|
||||
<syscall name="restart_syscall" number="219"/>
|
||||
<syscall name="semtimedop" number="220"/>
|
||||
<syscall name="fadvise64" number="221"/>
|
||||
<syscall name="timer_create" number="222"/>
|
||||
<syscall name="timer_settime" number="223"/>
|
||||
<syscall name="timer_gettime" number="224"/>
|
||||
<syscall name="timer_getoverrun" number="225"/>
|
||||
<syscall name="timer_delete" number="226"/>
|
||||
<syscall name="clock_settime" number="227"/>
|
||||
<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="vserver" number="236"/>
|
||||
<syscall name="mbind" number="237"/>
|
||||
<syscall name="set_mempolicy" number="238"/>
|
||||
<syscall name="get_mempolicy" number="239"/>
|
||||
<syscall name="mq_open" number="240"/>
|
||||
<syscall name="mq_unlink" number="241"/>
|
||||
<syscall name="mq_timedsend" number="242"/>
|
||||
<syscall name="mq_timedreceive" number="243"/>
|
||||
<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="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="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"/>
|
||||
</syscalls_info>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<!-- Copyright (C) 2009-2013 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 root element of a syscall info is <syscalls-info>. -->
|
||||
|
||||
<!ELEMENT syscalls-info (syscall*)>
|
||||
|
||||
<!ELEMENT syscall EMPTY>
|
||||
<!ATTLIST syscall
|
||||
name CDATA #REQUIRED
|
||||
number CDATA #REQUIRED>
|
||||
|
|
@ -0,0 +1,340 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2009-2013 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. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
|
||||
|
||||
<!-- This file was generated using the following file:
|
||||
|
||||
/usr/src/linux/arch/x86/include/asm/unistd_32.h
|
||||
|
||||
The file mentioned above belongs to the Linux Kernel. -->
|
||||
|
||||
<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="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="getpid" number="20"/>
|
||||
<syscall name="mount" number="21"/>
|
||||
<syscall name="umount" number="22"/>
|
||||
<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="stty" number="31"/>
|
||||
<syscall name="gtty" number="32"/>
|
||||
<syscall name="access" number="33"/>
|
||||
<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="times" number="43"/>
|
||||
<syscall name="prof" number="44"/>
|
||||
<syscall name="brk" number="45"/>
|
||||
<syscall name="setgid" number="46"/>
|
||||
<syscall name="getgid" number="47"/>
|
||||
<syscall name="signal" number="48"/>
|
||||
<syscall name="geteuid" number="49"/>
|
||||
<syscall name="getegid" number="50"/>
|
||||
<syscall name="acct" number="51"/>
|
||||
<syscall name="umount2" number="52"/>
|
||||
<syscall name="lock" number="53"/>
|
||||
<syscall name="ioctl" number="54"/>
|
||||
<syscall name="fcntl" number="55"/>
|
||||
<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="ustat" number="62"/>
|
||||
<syscall name="dup2" number="63"/>
|
||||
<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="setreuid" number="70"/>
|
||||
<syscall name="setregid" number="71"/>
|
||||
<syscall name="sigsuspend" number="72"/>
|
||||
<syscall name="sigpending" number="73"/>
|
||||
<syscall name="sethostname" number="74"/>
|
||||
<syscall name="setrlimit" number="75"/>
|
||||
<syscall name="getrlimit" number="76"/>
|
||||
<syscall name="getrusage" number="77"/>
|
||||
<syscall name="gettimeofday" number="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="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="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="ioperm" number="101"/>
|
||||
<syscall name="socketcall" number="102"/>
|
||||
<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"/>
|
||||
<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="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="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="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="getpgid" number="132"/>
|
||||
<syscall name="fchdir" number="133"/>
|
||||
<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="_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="getsid" number="147"/>
|
||||
<syscall name="fdatasync" number="148"/>
|
||||
<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="sched_setparam" number="154"/>
|
||||
<syscall name="sched_getparam" number="155"/>
|
||||
<syscall name="sched_setscheduler" number="156"/>
|
||||
<syscall name="sched_getscheduler" number="157"/>
|
||||
<syscall name="sched_yield" number="158"/>
|
||||
<syscall name="sched_get_priority_max" number="159"/>
|
||||
<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="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="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="capget" number="184"/>
|
||||
<syscall name="capset" number="185"/>
|
||||
<syscall name="sigaltstack" number="186"/>
|
||||
<syscall name="sendfile" number="187"/>
|
||||
<syscall name="getpmsg" number="188"/>
|
||||
<syscall name="putpmsg" number="189"/>
|
||||
<syscall name="vfork" number="190"/>
|
||||
<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="getuid32" number="199"/>
|
||||
<syscall name="getgid32" number="200"/>
|
||||
<syscall name="geteuid32" number="201"/>
|
||||
<syscall name="getegid32" number="202"/>
|
||||
<syscall name="setreuid32" number="203"/>
|
||||
<syscall name="setregid32" number="204"/>
|
||||
<syscall name="getgroups32" number="205"/>
|
||||
<syscall name="setgroups32" number="206"/>
|
||||
<syscall name="fchown32" number="207"/>
|
||||
<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="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="madvise1" number="220"/>
|
||||
<syscall name="getdents64" number="221"/>
|
||||
<syscall name="fcntl64" number="222"/>
|
||||
<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="futex" number="240"/>
|
||||
<syscall name="sched_setaffinity" number="241"/>
|
||||
<syscall name="sched_getaffinity" number="242"/>
|
||||
<syscall name="set_thread_area" number="243"/>
|
||||
<syscall name="get_thread_area" number="244"/>
|
||||
<syscall name="io_setup" number="245"/>
|
||||
<syscall name="io_destroy" number="246"/>
|
||||
<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="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="set_tid_address" number="258"/>
|
||||
<syscall name="timer_create" number="259"/>
|
||||
<syscall name="timer_settime" number="260"/>
|
||||
<syscall name="timer_gettime" number="261"/>
|
||||
<syscall name="timer_getoverrun" number="262"/>
|
||||
<syscall name="timer_delete" number="263"/>
|
||||
<syscall name="clock_settime" number="264"/>
|
||||
<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="vserver" number="273"/>
|
||||
<syscall name="mbind" number="274"/>
|
||||
<syscall name="get_mempolicy" number="275"/>
|
||||
<syscall name="set_mempolicy" number="276"/>
|
||||
<syscall name="mq_open" number="277"/>
|
||||
<syscall name="mq_unlink" number="278"/>
|
||||
<syscall name="mq_timedsend" number="279"/>
|
||||
<syscall name="mq_timedreceive" number="280"/>
|
||||
<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="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="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="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"/>
|
||||
</syscalls_info>
|
||||
|
|
@ -0,0 +1,319 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2011-2013 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. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
|
||||
|
||||
<!-- This file was generated using the following file:
|
||||
|
||||
/usr/src/linux/arch/mips/include/asm/unistd.h
|
||||
|
||||
The file mentioned above belongs to the Linux Kernel. -->
|
||||
|
||||
<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="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="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="uname" number="6061"/>
|
||||
<syscall name="semget" number="6062"/>
|
||||
<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="umask" number="6093"/>
|
||||
<syscall name="gettimeofday" number="6094"/>
|
||||
<syscall name="getrlimit" number="6095"/>
|
||||
<syscall name="getrusage" number="6096"/>
|
||||
<syscall name="sysinfo" number="6097"/>
|
||||
<syscall name="times" number="6098"/>
|
||||
<syscall name="ptrace" number="6099"/>
|
||||
<syscall name="getuid" number="6100"/>
|
||||
<syscall name="syslog" number="6101"/>
|
||||
<syscall name="getgid" number="6102"/>
|
||||
<syscall name="setuid" number="6103"/>
|
||||
<syscall name="setgid" number="6104"/>
|
||||
<syscall name="geteuid" number="6105"/>
|
||||
<syscall name="getegid" number="6106"/>
|
||||
<syscall name="setpgid" number="6107"/>
|
||||
<syscall name="getppid" number="6108"/>
|
||||
<syscall name="getpgrp" number="6109"/>
|
||||
<syscall name="setsid" number="6110"/>
|
||||
<syscall name="setreuid" number="6111"/>
|
||||
<syscall name="setregid" number="6112"/>
|
||||
<syscall name="getgroups" number="6113"/>
|
||||
<syscall name="setgroups" number="6114"/>
|
||||
<syscall name="setresuid" number="6115"/>
|
||||
<syscall name="getresuid" number="6116"/>
|
||||
<syscall name="setresgid" number="6117"/>
|
||||
<syscall name="getresgid" number="6118"/>
|
||||
<syscall name="getpgid" number="6119"/>
|
||||
<syscall name="setfsuid" number="6120"/>
|
||||
<syscall name="setfsgid" number="6121"/>
|
||||
<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="personality" number="6132"/>
|
||||
<syscall name="ustat" number="6133"/>
|
||||
<syscall name="statfs" number="6134"/>
|
||||
<syscall name="fstatfs" number="6135"/>
|
||||
<syscall name="sysfs" number="6136"/>
|
||||
<syscall name="getpriority" number="6137"/>
|
||||
<syscall name="setpriority" number="6138"/>
|
||||
<syscall name="sched_setparam" number="6139"/>
|
||||
<syscall name="sched_getparam" number="6140"/>
|
||||
<syscall name="sched_setscheduler" number="6141"/>
|
||||
<syscall name="sched_getscheduler" number="6142"/>
|
||||
<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="vhangup" number="6150"/>
|
||||
<syscall name="pivot_root" number="6151"/>
|
||||
<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="sync" number="6157"/>
|
||||
<syscall name="acct" number="6158"/>
|
||||
<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="reboot" number="6164"/>
|
||||
<syscall name="sethostname" number="6165"/>
|
||||
<syscall name="setdomainname" number="6166"/>
|
||||
<syscall name="create_module" number="6167"/>
|
||||
<syscall name="init_module" number="6168"/>
|
||||
<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="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="reserved193" number="6193"/>
|
||||
<syscall name="futex" number="6194"/>
|
||||
<syscall name="sched_setaffinity" number="6195"/>
|
||||
<syscall name="sched_getaffinity" number="6196"/>
|
||||
<syscall name="cacheflush" number="6197"/>
|
||||
<syscall name="cachectl" number="6198"/>
|
||||
<syscall name="sysmips" number="6199"/>
|
||||
<syscall name="io_setup" number="6200"/>
|
||||
<syscall name="io_destroy" number="6201"/>
|
||||
<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="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="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="timer_create" number="6220"/>
|
||||
<syscall name="timer_settime" number="6221"/>
|
||||
<syscall name="timer_gettime" number="6222"/>
|
||||
<syscall name="timer_getoverrun" number="6223"/>
|
||||
<syscall name="timer_delete" number="6224"/>
|
||||
<syscall name="clock_settime" number="6225"/>
|
||||
<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="mq_open" number="6234"/>
|
||||
<syscall name="mq_unlink" number="6235"/>
|
||||
<syscall name="mq_timedsend" number="6236"/>
|
||||
<syscall name="mq_timedreceive" number="6237"/>
|
||||
<syscall name="mq_notify" number="6238"/>
|
||||
<syscall name="mq_getsetattr" number="6239"/>
|
||||
<syscall name="vserver" number="6240"/>
|
||||
<syscall name="waitid" number="6241"/>
|
||||
<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="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="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="prlimit64" number="6302"/>
|
||||
</syscalls_info>
|
||||
|
|
@ -0,0 +1,312 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2011-2013 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. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
|
||||
|
||||
<!-- This file was generated using the following file:
|
||||
|
||||
/usr/src/linux/arch/mips/include/asm/unistd.h
|
||||
|
||||
The file mentioned above belongs to the Linux Kernel. -->
|
||||
|
||||
<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="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="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="uname" number="5061"/>
|
||||
<syscall name="semget" number="5062"/>
|
||||
<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="umask" number="5093"/>
|
||||
<syscall name="gettimeofday" number="5094"/>
|
||||
<syscall name="getrlimit" number="5095"/>
|
||||
<syscall name="getrusage" number="5096"/>
|
||||
<syscall name="sysinfo" number="5097"/>
|
||||
<syscall name="times" number="5098"/>
|
||||
<syscall name="ptrace" number="5099"/>
|
||||
<syscall name="getuid" number="5100"/>
|
||||
<syscall name="syslog" number="5101"/>
|
||||
<syscall name="getgid" number="5102"/>
|
||||
<syscall name="setuid" number="5103"/>
|
||||
<syscall name="setgid" number="5104"/>
|
||||
<syscall name="geteuid" number="5105"/>
|
||||
<syscall name="getegid" number="5106"/>
|
||||
<syscall name="setpgid" number="5107"/>
|
||||
<syscall name="getppid" number="5108"/>
|
||||
<syscall name="getpgrp" number="5109"/>
|
||||
<syscall name="setsid" number="5110"/>
|
||||
<syscall name="setreuid" number="5111"/>
|
||||
<syscall name="setregid" number="5112"/>
|
||||
<syscall name="getgroups" number="5113"/>
|
||||
<syscall name="setgroups" number="5114"/>
|
||||
<syscall name="setresuid" number="5115"/>
|
||||
<syscall name="getresuid" number="5116"/>
|
||||
<syscall name="setresgid" number="5117"/>
|
||||
<syscall name="getresgid" number="5118"/>
|
||||
<syscall name="getpgid" number="5119"/>
|
||||
<syscall name="setfsuid" number="5120"/>
|
||||
<syscall name="setfsgid" number="5121"/>
|
||||
<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="personality" number="5132"/>
|
||||
<syscall name="ustat" number="5133"/>
|
||||
<syscall name="statfs" number="5134"/>
|
||||
<syscall name="fstatfs" number="5135"/>
|
||||
<syscall name="sysfs" number="5136"/>
|
||||
<syscall name="getpriority" number="5137"/>
|
||||
<syscall name="setpriority" number="5138"/>
|
||||
<syscall name="sched_setparam" number="5139"/>
|
||||
<syscall name="sched_getparam" number="5140"/>
|
||||
<syscall name="sched_setscheduler" number="5141"/>
|
||||
<syscall name="sched_getscheduler" number="5142"/>
|
||||
<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="vhangup" number="5150"/>
|
||||
<syscall name="pivot_root" number="5151"/>
|
||||
<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="sync" number="5157"/>
|
||||
<syscall name="acct" number="5158"/>
|
||||
<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="reboot" number="5164"/>
|
||||
<syscall name="sethostname" number="5165"/>
|
||||
<syscall name="setdomainname" number="5166"/>
|
||||
<syscall name="create_module" number="5167"/>
|
||||
<syscall name="init_module" number="5168"/>
|
||||
<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="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="futex" number="5194"/>
|
||||
<syscall name="sched_setaffinity" number="5195"/>
|
||||
<syscall name="sched_getaffinity" number="5196"/>
|
||||
<syscall name="cacheflush" number="5197"/>
|
||||
<syscall name="cachectl" number="5198"/>
|
||||
<syscall name="sysmips" number="5199"/>
|
||||
<syscall name="io_setup" number="5200"/>
|
||||
<syscall name="io_destroy" number="5201"/>
|
||||
<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="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="set_tid_address" number="5212"/>
|
||||
<syscall name="restart_syscall" number="5213"/>
|
||||
<syscall name="semtimedop" number="5214"/>
|
||||
<syscall name="fadvise64" number="5215"/>
|
||||
<syscall name="timer_create" number="5216"/>
|
||||
<syscall name="timer_settime" number="5217"/>
|
||||
<syscall name="timer_gettime" number="5218"/>
|
||||
<syscall name="timer_getoverrun" number="5219"/>
|
||||
<syscall name="timer_delete" number="5220"/>
|
||||
<syscall name="clock_settime" number="5221"/>
|
||||
<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="mq_open" number="5230"/>
|
||||
<syscall name="mq_unlink" number="5231"/>
|
||||
<syscall name="mq_timedsend" number="5232"/>
|
||||
<syscall name="mq_timedreceive" number="5233"/>
|
||||
<syscall name="mq_notify" number="5234"/>
|
||||
<syscall name="mq_getsetattr" number="5235"/>
|
||||
<syscall name="vserver" number="5236"/>
|
||||
<syscall name="waitid" number="5237"/>
|
||||
<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="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="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="prlimit64" number="5297"/>
|
||||
</syscalls_info>
|
||||
|
|
@ -0,0 +1,347 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2011-2013 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. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
|
||||
|
||||
<!-- This file was generated using the following file:
|
||||
|
||||
/usr/src/linux/arch/mips/include/asm/unistd.h
|
||||
|
||||
The file mentioned above belongs to the Linux Kernel. -->
|
||||
|
||||
<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="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="getpid" number="4020"/>
|
||||
<syscall name="mount" number="4021"/>
|
||||
<syscall name="umount" number="4022"/>
|
||||
<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="stty" number="4031"/>
|
||||
<syscall name="gtty" number="4032"/>
|
||||
<syscall name="access" number="4033"/>
|
||||
<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="times" number="4043"/>
|
||||
<syscall name="prof" number="4044"/>
|
||||
<syscall name="brk" number="4045"/>
|
||||
<syscall name="setgid" number="4046"/>
|
||||
<syscall name="getgid" number="4047"/>
|
||||
<syscall name="signal" number="4048"/>
|
||||
<syscall name="geteuid" number="4049"/>
|
||||
<syscall name="getegid" number="4050"/>
|
||||
<syscall name="acct" number="4051"/>
|
||||
<syscall name="umount2" number="4052"/>
|
||||
<syscall name="lock" number="4053"/>
|
||||
<syscall name="ioctl" number="4054"/>
|
||||
<syscall name="fcntl" number="4055"/>
|
||||
<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="ustat" number="4062"/>
|
||||
<syscall name="dup2" number="4063"/>
|
||||
<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="setreuid" number="4070"/>
|
||||
<syscall name="setregid" number="4071"/>
|
||||
<syscall name="sigsuspend" number="4072"/>
|
||||
<syscall name="sigpending" number="4073"/>
|
||||
<syscall name="sethostname" number="4074"/>
|
||||
<syscall name="setrlimit" number="4075"/>
|
||||
<syscall name="getrlimit" number="4076"/>
|
||||
<syscall name="getrusage" number="4077"/>
|
||||
<syscall name="gettimeofday" number="4078"/>
|
||||
<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="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="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="ioperm" number="4101"/>
|
||||
<syscall name="socketcall" number="4102"/>
|
||||
<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="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="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="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="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="getpgid" number="4132"/>
|
||||
<syscall name="fchdir" number="4133"/>
|
||||
<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="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="_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="sched_setparam" number="4158"/>
|
||||
<syscall name="sched_getparam" number="4159"/>
|
||||
<syscall name="sched_setscheduler" number="4160"/>
|
||||
<syscall name="sched_getscheduler" number="4161"/>
|
||||
<syscall name="sched_yield" number="4162"/>
|
||||
<syscall name="sched_get_priority_max" number="4163"/>
|
||||
<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="setresuid" number="4185"/>
|
||||
<syscall name="getresuid" number="4186"/>
|
||||
<syscall name="query_module" number="4187"/>
|
||||
<syscall name="poll" number="4188"/>
|
||||
<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="capget" number="4204"/>
|
||||
<syscall name="capset" number="4205"/>
|
||||
<syscall name="sigaltstack" number="4206"/>
|
||||
<syscall name="sendfile" number="4207"/>
|
||||
<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="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="futex" number="4238"/>
|
||||
<syscall name="sched_setaffinity" number="4239"/>
|
||||
<syscall name="sched_getaffinity" number="4240"/>
|
||||
<syscall name="io_setup" number="4241"/>
|
||||
<syscall name="io_destroy" number="4242"/>
|
||||
<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="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="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="timer_create" number="4257"/>
|
||||
<syscall name="timer_settime" number="4258"/>
|
||||
<syscall name="timer_gettime" number="4259"/>
|
||||
<syscall name="timer_getoverrun" number="4260"/>
|
||||
<syscall name="timer_delete" number="4261"/>
|
||||
<syscall name="clock_settime" number="4262"/>
|
||||
<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="mq_open" number="4271"/>
|
||||
<syscall name="mq_unlink" number="4272"/>
|
||||
<syscall name="mq_timedsend" number="4273"/>
|
||||
<syscall name="mq_timedreceive" number="4274"/>
|
||||
<syscall name="mq_notify" number="4275"/>
|
||||
<syscall name="mq_getsetattr" number="4276"/>
|
||||
<syscall name="vserver" number="4277"/>
|
||||
<syscall name="waitid" number="4278"/>
|
||||
<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="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="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="prlimit64" number="4338"/>
|
||||
</syscalls_info>
|
||||
|
|
@ -0,0 +1,310 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2009-2013 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. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
|
||||
|
||||
<!-- This file was generated using the following file:
|
||||
|
||||
/usr/src/linux/arch/powerpc/include/asm/unistd.h
|
||||
|
||||
The file mentioned above belongs to the Linux Kernel. -->
|
||||
|
||||
<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="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="getpid" number="20"/>
|
||||
<syscall name="mount" number="21"/>
|
||||
<syscall name="umount" number="22"/>
|
||||
<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="stty" number="31"/>
|
||||
<syscall name="gtty" number="32"/>
|
||||
<syscall name="access" number="33"/>
|
||||
<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="times" number="43"/>
|
||||
<syscall name="prof" number="44"/>
|
||||
<syscall name="brk" number="45"/>
|
||||
<syscall name="setgid" number="46"/>
|
||||
<syscall name="getgid" number="47"/>
|
||||
<syscall name="signal" number="48"/>
|
||||
<syscall name="geteuid" number="49"/>
|
||||
<syscall name="getegid" number="50"/>
|
||||
<syscall name="acct" number="51"/>
|
||||
<syscall name="umount2" number="52"/>
|
||||
<syscall name="lock" number="53"/>
|
||||
<syscall name="ioctl" number="54"/>
|
||||
<syscall name="fcntl" number="55"/>
|
||||
<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="ustat" number="62"/>
|
||||
<syscall name="dup2" number="63"/>
|
||||
<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="setreuid" number="70"/>
|
||||
<syscall name="setregid" number="71"/>
|
||||
<syscall name="sigsuspend" number="72"/>
|
||||
<syscall name="sigpending" number="73"/>
|
||||
<syscall name="sethostname" number="74"/>
|
||||
<syscall name="setrlimit" number="75"/>
|
||||
<syscall name="getrlimit" number="76"/>
|
||||
<syscall name="getrusage" number="77"/>
|
||||
<syscall name="gettimeofday" number="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="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="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="ioperm" number="101"/>
|
||||
<syscall name="socketcall" number="102"/>
|
||||
<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"/>
|
||||
<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="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="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="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="getpgid" number="132"/>
|
||||
<syscall name="fchdir" number="133"/>
|
||||
<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="_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="getsid" number="147"/>
|
||||
<syscall name="fdatasync" number="148"/>
|
||||
<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="sched_setparam" number="154"/>
|
||||
<syscall name="sched_getparam" number="155"/>
|
||||
<syscall name="sched_setscheduler" number="156"/>
|
||||
<syscall name="sched_getscheduler" number="157"/>
|
||||
<syscall name="sched_yield" number="158"/>
|
||||
<syscall name="sched_get_priority_max" number="159"/>
|
||||
<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="setresuid" number="164"/>
|
||||
<syscall name="getresuid" number="165"/>
|
||||
<syscall name="query_module" number="166"/>
|
||||
<syscall name="poll" number="167"/>
|
||||
<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="capget" number="183"/>
|
||||
<syscall name="capset" number="184"/>
|
||||
<syscall name="sigaltstack" number="185"/>
|
||||
<syscall name="sendfile" number="186"/>
|
||||
<syscall name="getpmsg" number="187"/>
|
||||
<syscall name="putpmsg" number="188"/>
|
||||
<syscall name="vfork" number="189"/>
|
||||
<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="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="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="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="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="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="timer_create" number="240"/>
|
||||
<syscall name="timer_settime" number="241"/>
|
||||
<syscall name="timer_gettime" number="242"/>
|
||||
<syscall name="timer_getoverrun" number="243"/>
|
||||
<syscall name="timer_delete" number="244"/>
|
||||
<syscall name="clock_settime" number="245"/>
|
||||
<syscall name="clock_gettime" number="246"/>
|
||||
<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="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="mq_open" number="262"/>
|
||||
<syscall name="mq_unlink" number="263"/>
|
||||
<syscall name="mq_timedsend" number="264"/>
|
||||
<syscall name="mq_timedreceive" number="265"/>
|
||||
<syscall name="mq_notify" number="266"/>
|
||||
<syscall name="mq_getsetattr" number="267"/>
|
||||
<syscall name="kexec_load" number="268"/>
|
||||
<syscall name="add_key" number="269"/>
|
||||
<syscall name="request_key" number="270"/>
|
||||
<syscall name="keyctl" number="271"/>
|
||||
<syscall name="waitid" number="272"/>
|
||||
<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="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="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"/>
|
||||
</syscalls_info>
|
||||
|
|
@ -0,0 +1,295 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2009-2013 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. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
|
||||
|
||||
<!-- This file was generated using the following file:
|
||||
|
||||
/usr/src/linux/arch/powerpc/include/asm/unistd.h
|
||||
|
||||
The file mentioned above belongs to the Linux Kernel. -->
|
||||
|
||||
<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="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="getpid" number="20"/>
|
||||
<syscall name="mount" number="21"/>
|
||||
<syscall name="umount" number="22"/>
|
||||
<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="stty" number="31"/>
|
||||
<syscall name="gtty" number="32"/>
|
||||
<syscall name="access" number="33"/>
|
||||
<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="times" number="43"/>
|
||||
<syscall name="prof" number="44"/>
|
||||
<syscall name="brk" number="45"/>
|
||||
<syscall name="setgid" number="46"/>
|
||||
<syscall name="getgid" number="47"/>
|
||||
<syscall name="signal" number="48"/>
|
||||
<syscall name="geteuid" number="49"/>
|
||||
<syscall name="getegid" number="50"/>
|
||||
<syscall name="acct" number="51"/>
|
||||
<syscall name="umount2" number="52"/>
|
||||
<syscall name="lock" number="53"/>
|
||||
<syscall name="ioctl" number="54"/>
|
||||
<syscall name="fcntl" number="55"/>
|
||||
<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="ustat" number="62"/>
|
||||
<syscall name="dup2" number="63"/>
|
||||
<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="setreuid" number="70"/>
|
||||
<syscall name="setregid" number="71"/>
|
||||
<syscall name="sigsuspend" number="72"/>
|
||||
<syscall name="sigpending" number="73"/>
|
||||
<syscall name="sethostname" number="74"/>
|
||||
<syscall name="setrlimit" number="75"/>
|
||||
<syscall name="getrlimit" number="76"/>
|
||||
<syscall name="getrusage" number="77"/>
|
||||
<syscall name="gettimeofday" number="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="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="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="ioperm" number="101"/>
|
||||
<syscall name="socketcall" number="102"/>
|
||||
<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"/>
|
||||
<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="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="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="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="getpgid" number="132"/>
|
||||
<syscall name="fchdir" number="133"/>
|
||||
<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="_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="getsid" number="147"/>
|
||||
<syscall name="fdatasync" number="148"/>
|
||||
<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="sched_setparam" number="154"/>
|
||||
<syscall name="sched_getparam" number="155"/>
|
||||
<syscall name="sched_setscheduler" number="156"/>
|
||||
<syscall name="sched_getscheduler" number="157"/>
|
||||
<syscall name="sched_yield" number="158"/>
|
||||
<syscall name="sched_get_priority_max" number="159"/>
|
||||
<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="setresuid" number="164"/>
|
||||
<syscall name="getresuid" number="165"/>
|
||||
<syscall name="query_module" number="166"/>
|
||||
<syscall name="poll" number="167"/>
|
||||
<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="capget" number="183"/>
|
||||
<syscall name="capset" number="184"/>
|
||||
<syscall name="sigaltstack" number="185"/>
|
||||
<syscall name="sendfile" number="186"/>
|
||||
<syscall name="getpmsg" number="187"/>
|
||||
<syscall name="putpmsg" number="188"/>
|
||||
<syscall name="vfork" number="189"/>
|
||||
<syscall name="ugetrlimit" number="190"/>
|
||||
<syscall name="readahead" number="191"/>
|
||||
<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="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="futex" number="221"/>
|
||||
<syscall name="sched_setaffinity" number="222"/>
|
||||
<syscall name="sched_getaffinity" number="223"/>
|
||||
<syscall name="tuxcall" number="225"/>
|
||||
<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="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="timer_create" number="240"/>
|
||||
<syscall name="timer_settime" number="241"/>
|
||||
<syscall name="timer_gettime" number="242"/>
|
||||
<syscall name="timer_getoverrun" number="243"/>
|
||||
<syscall name="timer_delete" number="244"/>
|
||||
<syscall name="clock_settime" number="245"/>
|
||||
<syscall name="clock_gettime" number="246"/>
|
||||
<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="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="mq_open" number="262"/>
|
||||
<syscall name="mq_unlink" number="263"/>
|
||||
<syscall name="mq_timedsend" number="264"/>
|
||||
<syscall name="mq_timedreceive" number="265"/>
|
||||
<syscall name="mq_notify" number="266"/>
|
||||
<syscall name="mq_getsetattr" number="267"/>
|
||||
<syscall name="kexec_load" number="268"/>
|
||||
<syscall name="add_key" number="269"/>
|
||||
<syscall name="request_key" number="270"/>
|
||||
<syscall name="keyctl" number="271"/>
|
||||
<syscall name="waitid" number="272"/>
|
||||
<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="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"/>
|
||||
</syscalls_info>
|
||||
|
|
@ -0,0 +1,344 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2010-2013 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. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
|
||||
|
||||
<!-- This file was generated using the following file:
|
||||
|
||||
/usr/src/linux/arch/sparc/include/asm/unistd.h
|
||||
|
||||
The file mentioned above belongs to the Linux Kernel. -->
|
||||
|
||||
<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="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="perfctr" number="18"/>
|
||||
<syscall name="lseek" number="19"/>
|
||||
<syscall name="getpid" number="20"/>
|
||||
<syscall name="capget" number="21"/>
|
||||
<syscall name="capset" number="22"/>
|
||||
<syscall name="setuid" number="23"/>
|
||||
<syscall name="getuid" number="24"/>
|
||||
<syscall name="vmsplice" number="25"/>
|
||||
<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="nice" number="34"/>
|
||||
<syscall name="chown32" number="35"/>
|
||||
<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="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="geteuid" number="49"/>
|
||||
<syscall name="getegid" number="50"/>
|
||||
<syscall name="acct" number="51"/>
|
||||
<syscall name="getgid32" number="53"/>
|
||||
<syscall name="ioctl" number="54"/>
|
||||
<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="umask" number="60"/>
|
||||
<syscall name="chroot" number="61"/>
|
||||
<syscall name="fstat" number="62"/>
|
||||
<syscall name="fstat64" number="63"/>
|
||||
<syscall name="getpagesize" number="64"/>
|
||||
<syscall name="msync" number="65"/>
|
||||
<syscall name="vfork" number="66"/>
|
||||
<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="setreuid32" number="72"/>
|
||||
<syscall name="munmap" number="73"/>
|
||||
<syscall name="mprotect" number="74"/>
|
||||
<syscall name="madvise" number="75"/>
|
||||
<syscall name="vhangup" number="76"/>
|
||||
<syscall name="truncate64" number="77"/>
|
||||
<syscall name="mincore" number="78"/>
|
||||
<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="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="setfsuid32" number="91"/>
|
||||
<syscall name="fcntl" number="92"/>
|
||||
<syscall name="select" number="93"/>
|
||||
<syscall name="setfsgid32" number="94"/>
|
||||
<syscall name="fsync" number="95"/>
|
||||
<syscall name="setpriority" number="96"/>
|
||||
<syscall name="socket" number="97"/>
|
||||
<syscall name="connect" number="98"/>
|
||||
<syscall name="accept" number="99"/>
|
||||
<syscall name="getpriority" number="100"/>
|
||||
<syscall name="rt_sigreturn" number="101"/>
|
||||
<syscall name="rt_sigaction" number="102"/>
|
||||
<syscall name="rt_sigprocmask" number="103"/>
|
||||
<syscall name="rt_sigpending" number="104"/>
|
||||
<syscall name="rt_sigtimedwait" number="105"/>
|
||||
<syscall name="rt_sigqueueinfo" number="106"/>
|
||||
<syscall name="rt_sigsuspend" number="107"/>
|
||||
<syscall name="setresuid32" number="108"/>
|
||||
<syscall name="getresuid32" number="109"/>
|
||||
<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="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="settimeofday" number="122"/>
|
||||
<syscall name="fchown" number="123"/>
|
||||
<syscall name="fchmod" number="124"/>
|
||||
<syscall name="recvfrom" number="125"/>
|
||||
<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="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="prctl" number="147"/>
|
||||
<syscall name="pciconfig_read" number="148"/>
|
||||
<syscall name="pciconfig_write" number="149"/>
|
||||
<syscall name="getsockname" number="150"/>
|
||||
<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="inotify_rm_watch" number="156"/>
|
||||
<syscall name="statfs" number="157"/>
|
||||
<syscall name="fstatfs" number="158"/>
|
||||
<syscall name="umount" number="159"/>
|
||||
<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="set_tid_address" number="166"/>
|
||||
<syscall name="mount" number="167"/>
|
||||
<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="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="removexattr" number="181"/>
|
||||
<syscall name="lremovexattr" number="182"/>
|
||||
<syscall name="sigpending" number="183"/>
|
||||
<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="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="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="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="syslog" number="207"/>
|
||||
<syscall name="lookup_dcookie" number="208"/>
|
||||
<syscall name="fadvise64" number="209"/>
|
||||
<syscall name="fadvise64_64" number="210"/>
|
||||
<syscall name="tgkill" number="211"/>
|
||||
<syscall name="waitpid" number="212"/>
|
||||
<syscall name="swapoff" number="213"/>
|
||||
<syscall name="sysinfo" number="214"/>
|
||||
<syscall name="ipc" number="215"/>
|
||||
<syscall name="sigreturn" number="216"/>
|
||||
<syscall name="clone" number="217"/>
|
||||
<syscall name="ioprio_get" number="218"/>
|
||||
<syscall name="adjtimex" number="219"/>
|
||||
<syscall name="sigprocmask" number="220"/>
|
||||
<syscall name="create_module" number="221"/>
|
||||
<syscall name="delete_module" number="222"/>
|
||||
<syscall name="get_kernel_syms" number="223"/>
|
||||
<syscall name="getpgid" number="224"/>
|
||||
<syscall name="bdflush" number="225"/>
|
||||
<syscall name="sysfs" number="226"/>
|
||||
<syscall name="afs_syscall" number="227"/>
|
||||
<syscall name="setfsuid" number="228"/>
|
||||
<syscall name="setfsgid" number="229"/>
|
||||
<syscall name="_newselect" number="230"/>
|
||||
<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="sched_setparam" number="241"/>
|
||||
<syscall name="sched_getparam" number="242"/>
|
||||
<syscall name="sched_setscheduler" number="243"/>
|
||||
<syscall name="sched_getscheduler" number="244"/>
|
||||
<syscall name="sched_yield" number="245"/>
|
||||
<syscall name="sched_get_priority_max" number="246"/>
|
||||
<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="_sysctl" number="251"/>
|
||||
<syscall name="getsid" number="252"/>
|
||||
<syscall name="fdatasync" number="253"/>
|
||||
<syscall name="nfsservctl" number="254"/>
|
||||
<syscall name="sync_file_range" number="255"/>
|
||||
<syscall name="clock_settime" number="256"/>
|
||||
<syscall name="clock_gettime" number="257"/>
|
||||
<syscall name="clock_getres" number="258"/>
|
||||
<syscall name="clock_nanosleep" number="259"/>
|
||||
<syscall name="sched_getaffinity" number="260"/>
|
||||
<syscall name="sched_setaffinity" number="261"/>
|
||||
<syscall name="timer_settime" number="262"/>
|
||||
<syscall name="timer_gettime" number="263"/>
|
||||
<syscall name="timer_getoverrun" number="264"/>
|
||||
<syscall name="timer_delete" number="265"/>
|
||||
<syscall name="timer_create" number="266"/>
|
||||
<syscall name="vserver" number="267"/>
|
||||
<syscall name="io_setup" number="268"/>
|
||||
<syscall name="io_destroy" number="269"/>
|
||||
<syscall name="io_submit" number="270"/>
|
||||
<syscall name="io_cancel" number="271"/>
|
||||
<syscall name="io_getevents" number="272"/>
|
||||
<syscall name="mq_open" number="273"/>
|
||||
<syscall name="mq_unlink" number="274"/>
|
||||
<syscall name="mq_timedsend" number="275"/>
|
||||
<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="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="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="kexec_load" number="306"/>
|
||||
<syscall name="move_pages" number="307"/>
|
||||
<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"/>
|
||||
</syscalls_info>
|
||||
|
|
@ -0,0 +1,326 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2010-2013 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. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
|
||||
|
||||
<!-- This file was generated using the following file:
|
||||
|
||||
/usr/src/linux/arch/sparc/include/asm/unistd.h
|
||||
|
||||
The file mentioned above belongs to the Linux Kernel. -->
|
||||
|
||||
<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="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="perfctr" number="18"/>
|
||||
<syscall name="lseek" number="19"/>
|
||||
<syscall name="getpid" number="20"/>
|
||||
<syscall name="capget" number="21"/>
|
||||
<syscall name="capset" number="22"/>
|
||||
<syscall name="setuid" number="23"/>
|
||||
<syscall name="getuid" number="24"/>
|
||||
<syscall name="vmsplice" number="25"/>
|
||||
<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="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="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="geteuid" number="49"/>
|
||||
<syscall name="getegid" number="50"/>
|
||||
<syscall name="acct" number="51"/>
|
||||
<syscall name="memory_ordering" number="52"/>
|
||||
<syscall name="ioctl" number="54"/>
|
||||
<syscall name="reboot" number="55"/>
|
||||
<syscall name="symlink" number="57"/>
|
||||
<syscall name="readlink" number="58"/>
|
||||
<syscall name="execve" number="59"/>
|
||||
<syscall name="umask" number="60"/>
|
||||
<syscall name="chroot" number="61"/>
|
||||
<syscall name="fstat" number="62"/>
|
||||
<syscall name="fstat64" number="63"/>
|
||||
<syscall name="getpagesize" number="64"/>
|
||||
<syscall name="msync" number="65"/>
|
||||
<syscall name="vfork" number="66"/>
|
||||
<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="vhangup" number="76"/>
|
||||
<syscall name="mincore" number="78"/>
|
||||
<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="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="setpriority" number="96"/>
|
||||
<syscall name="socket" number="97"/>
|
||||
<syscall name="connect" number="98"/>
|
||||
<syscall name="accept" number="99"/>
|
||||
<syscall name="getpriority" number="100"/>
|
||||
<syscall name="rt_sigreturn" number="101"/>
|
||||
<syscall name="rt_sigaction" number="102"/>
|
||||
<syscall name="rt_sigprocmask" number="103"/>
|
||||
<syscall name="rt_sigpending" number="104"/>
|
||||
<syscall name="rt_sigtimedwait" number="105"/>
|
||||
<syscall name="rt_sigqueueinfo" number="106"/>
|
||||
<syscall name="rt_sigsuspend" number="107"/>
|
||||
<syscall name="setresuid" number="108"/>
|
||||
<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="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="settimeofday" number="122"/>
|
||||
<syscall name="fchown" number="123"/>
|
||||
<syscall name="fchmod" number="124"/>
|
||||
<syscall name="recvfrom" number="125"/>
|
||||
<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="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="prctl" number="147"/>
|
||||
<syscall name="pciconfig_read" number="148"/>
|
||||
<syscall name="pciconfig_write" number="149"/>
|
||||
<syscall name="getsockname" number="150"/>
|
||||
<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="inotify_rm_watch" number="156"/>
|
||||
<syscall name="statfs" number="157"/>
|
||||
<syscall name="fstatfs" number="158"/>
|
||||
<syscall name="umount" number="159"/>
|
||||
<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="set_tid_address" number="166"/>
|
||||
<syscall name="mount" number="167"/>
|
||||
<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="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="removexattr" number="181"/>
|
||||
<syscall name="lremovexattr" number="182"/>
|
||||
<syscall name="sigpending" number="183"/>
|
||||
<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="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="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="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="syslog" number="207"/>
|
||||
<syscall name="lookup_dcookie" number="208"/>
|
||||
<syscall name="fadvise64" number="209"/>
|
||||
<syscall name="fadvise64_64" number="210"/>
|
||||
<syscall name="tgkill" number="211"/>
|
||||
<syscall name="waitpid" number="212"/>
|
||||
<syscall name="swapoff" number="213"/>
|
||||
<syscall name="sysinfo" number="214"/>
|
||||
<syscall name="ipc" number="215"/>
|
||||
<syscall name="sigreturn" number="216"/>
|
||||
<syscall name="clone" number="217"/>
|
||||
<syscall name="ioprio_get" number="218"/>
|
||||
<syscall name="adjtimex" number="219"/>
|
||||
<syscall name="sigprocmask" number="220"/>
|
||||
<syscall name="create_module" number="221"/>
|
||||
<syscall name="delete_module" number="222"/>
|
||||
<syscall name="get_kernel_syms" number="223"/>
|
||||
<syscall name="getpgid" number="224"/>
|
||||
<syscall name="bdflush" number="225"/>
|
||||
<syscall name="sysfs" number="226"/>
|
||||
<syscall name="afs_syscall" number="227"/>
|
||||
<syscall name="setfsuid" number="228"/>
|
||||
<syscall name="setfsgid" number="229"/>
|
||||
<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="sched_setparam" number="241"/>
|
||||
<syscall name="sched_getparam" number="242"/>
|
||||
<syscall name="sched_setscheduler" number="243"/>
|
||||
<syscall name="sched_getscheduler" number="244"/>
|
||||
<syscall name="sched_yield" number="245"/>
|
||||
<syscall name="sched_get_priority_max" number="246"/>
|
||||
<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="_sysctl" number="251"/>
|
||||
<syscall name="getsid" number="252"/>
|
||||
<syscall name="fdatasync" number="253"/>
|
||||
<syscall name="nfsservctl" number="254"/>
|
||||
<syscall name="sync_file_range" number="255"/>
|
||||
<syscall name="clock_settime" number="256"/>
|
||||
<syscall name="clock_gettime" number="257"/>
|
||||
<syscall name="clock_getres" number="258"/>
|
||||
<syscall name="clock_nanosleep" number="259"/>
|
||||
<syscall name="sched_getaffinity" number="260"/>
|
||||
<syscall name="sched_setaffinity" number="261"/>
|
||||
<syscall name="timer_settime" number="262"/>
|
||||
<syscall name="timer_gettime" number="263"/>
|
||||
<syscall name="timer_getoverrun" number="264"/>
|
||||
<syscall name="timer_delete" number="265"/>
|
||||
<syscall name="timer_create" number="266"/>
|
||||
<syscall name="vserver" number="267"/>
|
||||
<syscall name="io_setup" number="268"/>
|
||||
<syscall name="io_destroy" number="269"/>
|
||||
<syscall name="io_submit" number="270"/>
|
||||
<syscall name="io_cancel" number="271"/>
|
||||
<syscall name="io_getevents" number="272"/>
|
||||
<syscall name="mq_open" number="273"/>
|
||||
<syscall name="mq_unlink" number="274"/>
|
||||
<syscall name="mq_timedsend" number="275"/>
|
||||
<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="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="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="kexec_load" number="306"/>
|
||||
<syscall name="move_pages" number="307"/>
|
||||
<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"/>
|
||||
</syscalls_info>
|
||||
Loading…
Add table
Add a link
Reference in a new issue