[PATCH 0/9] support for {get, set, make, swap}context for ARM, MIPS, i386 and x86_64

Florian Fainelli florian at openwrt.org
Mon Dec 31 14:38:23 UTC 2012


Hi all,

This patch serie contains the recently posted user context support for ARM,
i386 and x86_64 which were recently posted by Timon and Natanael.

I also needed these routines on MIPS, so I decided to consolidate all of this
such that it addresses comments made to previous patches, as well as ease the
integration of Carmelo's SH4 patches [1] in the future.

[1]:
http://git.stlinux.com/?p=stm/uclibc.git;a=commitdiff;h=5bc8059626bea83f157017ba6ed14faea0158089;hp=ac72fa4e2953be3da2b2a904c84d9ebbece3bfb4

Florian Fainelli (9):
  libc: provide a libc_arch_headers make target
  libc: add rule to generate ucontext_i.{c,h,s} files and clean them
  Config.in: add ARCH_HAS_UCONTEXT configuration symbol
  libc: add {get,set,swap,make}context to MIPS
  libc: add {get,set,swap,make}context to ARM
  libc: add support for {get,set,swap,make}context to i386
  libc: add support for {get,set,swap,make}context to x86_64
  include/ucontext.h: provide declarations for
    {get,set,make,swap}context
  uClibc: introduce UCLIBC_HAS_CONTEXT_FUNCS configuration symbol

 Makefile.in                                  |    1 +
 extra/Configs/Config.arm                     |    1 +
 extra/Configs/Config.i386                    |    1 +
 extra/Configs/Config.in                      |   17 +++
 extra/Configs/Config.mips                    |    1 +
 extra/Configs/Config.x86_64                  |    1 +
 include/ucontext.h                           |   29 +++-
 libc/.gitignore                              |    1 +
 libc/sysdeps/linux/Makefile.commonarch       |   18 +++
 libc/sysdeps/linux/Makefile.in               |    4 +
 libc/sysdeps/linux/arm/Makefile.arch         |    5 +
 libc/sysdeps/linux/arm/getcontext.S          |   58 +++++++
 libc/sysdeps/linux/arm/makecontext.c         |   73 +++++++++
 libc/sysdeps/linux/arm/setcontext.S          |   54 +++++++
 libc/sysdeps/linux/arm/swapcontext.S         |   63 ++++++++
 libc/sysdeps/linux/arm/ucontext_i.sym        |   30 ++++
 libc/sysdeps/linux/i386/Makefile.arch        |    5 +
 libc/sysdeps/linux/i386/getcontext.S         |   84 ++++++++++
 libc/sysdeps/linux/i386/makecontext.S        |  123 +++++++++++++++
 libc/sysdeps/linux/i386/setcontext.S         |   96 ++++++++++++
 libc/sysdeps/linux/i386/swapcontext.S        |  110 ++++++++++++++
 libc/sysdeps/linux/i386/ucontext_i.sym       |   30 ++++
 libc/sysdeps/linux/mips/Makefile.arch        |    4 +
 libc/sysdeps/linux/mips/getcontext.S         |  148 ++++++++++++++++++
 libc/sysdeps/linux/mips/kernel_rt_sigframe.h |   10 ++
 libc/sysdeps/linux/mips/makecontext.S        |  188 +++++++++++++++++++++++
 libc/sysdeps/linux/mips/setcontext.S         |  191 +++++++++++++++++++++++
 libc/sysdeps/linux/mips/swapcontext.S        |  211 ++++++++++++++++++++++++++
 libc/sysdeps/linux/mips/ucontext_i.sym       |   52 +++++++
 libc/sysdeps/linux/x86_64/Makefile.arch      |    6 +
 libc/sysdeps/linux/x86_64/__start_context.S  |   49 ++++++
 libc/sysdeps/linux/x86_64/getcontext.S       |   88 +++++++++++
 libc/sysdeps/linux/x86_64/makecontext.c      |  121 +++++++++++++++
 libc/sysdeps/linux/x86_64/setcontext.S       |  103 +++++++++++++
 libc/sysdeps/linux/x86_64/swapcontext.S      |  121 +++++++++++++++
 libc/sysdeps/linux/x86_64/ucontext_i.sym     |   37 +++++
 36 files changed, 2131 insertions(+), 3 deletions(-)
 create mode 100644 libc/.gitignore
 create mode 100644 libc/sysdeps/linux/arm/getcontext.S
 create mode 100644 libc/sysdeps/linux/arm/makecontext.c
 create mode 100644 libc/sysdeps/linux/arm/setcontext.S
 create mode 100644 libc/sysdeps/linux/arm/swapcontext.S
 create mode 100644 libc/sysdeps/linux/arm/ucontext_i.sym
 create mode 100644 libc/sysdeps/linux/i386/getcontext.S
 create mode 100644 libc/sysdeps/linux/i386/makecontext.S
 create mode 100644 libc/sysdeps/linux/i386/setcontext.S
 create mode 100644 libc/sysdeps/linux/i386/swapcontext.S
 create mode 100644 libc/sysdeps/linux/i386/ucontext_i.sym
 create mode 100644 libc/sysdeps/linux/mips/getcontext.S
 create mode 100644 libc/sysdeps/linux/mips/kernel_rt_sigframe.h
 create mode 100644 libc/sysdeps/linux/mips/makecontext.S
 create mode 100644 libc/sysdeps/linux/mips/setcontext.S
 create mode 100644 libc/sysdeps/linux/mips/swapcontext.S
 create mode 100644 libc/sysdeps/linux/mips/ucontext_i.sym
 create mode 100644 libc/sysdeps/linux/x86_64/__start_context.S
 create mode 100644 libc/sysdeps/linux/x86_64/getcontext.S
 create mode 100644 libc/sysdeps/linux/x86_64/makecontext.c
 create mode 100644 libc/sysdeps/linux/x86_64/setcontext.S
 create mode 100644 libc/sysdeps/linux/x86_64/swapcontext.S
 create mode 100644 libc/sysdeps/linux/x86_64/ucontext_i.sym

-- 
1.7.10.4



More information about the uClibc mailing list