1. 04 11月, 2011 1 次提交
    • C
      arch/tile: factor out <arch/opcode.h> header · eb7c792d
      Chris Metcalf 提交于
      The kernel code was using some <asm> headers that included a mix
      of hardware-specific information (typically found in Tilera <arch>
      headers) and structures, enums, and function declarations supporting
      the disassembly function of the tile-desc.c sources.
      
      This change refactors that code so that a hardware-specific, but
      OS- and application-agnostic header, is created: <arch/opcode.h>.
      This header is then exported to userspace along with the other
      <arch> headers and can be used to build userspace code; in particular,
      it is used by glibc as part of implementing the backtrace() function.
      
      The new header, together with a header that specifically describes
      the disassembly code (<asm/tile-desc.h> with _32 and _64 variants),
      replaces the old <asm/opcode-tile*.h> and <asm/opcode_constants*.h>
      headers.
      
      As part of this change, we are also renaming the 32-bit constants
      from TILE_xxx to TILEPRO_xxx to better reflect the fact that they
      are specific to the TILEPro architecture, and not to TILE-Gx
      and any successor "tile" architecture chips.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      eb7c792d
  2. 13 5月, 2011 1 次提交
    • C
      arch/tile: finish enabling support for TILE-Gx 64-bit chip · 18aecc2b
      Chris Metcalf 提交于
      This support was partially present in the existing code (look for
      "__tilegx__" ifdefs) but with this change you can build a working
      kernel using the TILE-Gx toolchain and ARCH=tilegx.
      
      Most of these files are new, generally adding a foo_64.c file
      where previously there was just a foo_32.c file.
      
      The ARCH=tilegx directive redirects to arch/tile, not arch/tilegx,
      using the existing SRCARCH mechanism in the top-level Makefile.
      
      Changes to existing files:
      
      - <asm/bitops.h> and <asm/bitops_32.h> changed to factor the
        include of <asm-generic/bitops/non-atomic.h> in the common header.
      
      - <asm/compat.h> and arch/tile/kernel/compat.c changed to remove
        the "const" markers I had put on compat_sys_execve() when trying
        to match some recent similar changes to the non-compat execve.
        It turns out the compat version wasn't "upgraded" to use const.
      
      - <asm/opcode-tile_64.h> and <asm/opcode_constants_64.h> were
        previously included accidentally, with the 32-bit contents.  Now
        they have the proper 64-bit contents.
      
      Finally, I had to hack the existing hacky drivers/input/input-compat.h
      to add yet another "#ifdef" for INPUT_COMPAT_TEST (same as x86_64).
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> [drivers/input]
      18aecc2b