Print this page
5362 invalid conversion when using asm/thread.h in c++ code

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/intel/asm/thread.h
          +++ new/usr/src/uts/intel/asm/thread.h
↓ open down ↓ 14 lines elided ↑ open up ↑
  15   15   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  16   16   * If applicable, add the following below this CDDL HEADER, with the
  17   17   * fields enclosed by brackets "[]" replaced with your own identifying
  18   18   * information: Portions Copyright [yyyy] [name of copyright owner]
  19   19   *
  20   20   * CDDL HEADER END
  21   21   */
  22   22  /*
  23   23   * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
  24   24   * Use is subject to license terms.
       25 + * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
  25   26   */
  26   27  
  27   28  #ifndef _ASM_THREAD_H
  28   29  #define _ASM_THREAD_H
  29   30  
  30   31  #include <sys/ccompile.h>
  31   32  #include <sys/types.h>
  32   33  
  33   34  #ifdef  __cplusplus
  34   35  extern "C" {
↓ open down ↓ 6 lines elided ↑ open up ↑
  41   42  /*
  42   43   * 0x10 is offsetof(struct cpu, cpu_thread)
  43   44   * 0x18 is the same thing for the _LP64 version.
  44   45   * (It's also the value of CPU_THREAD in assym.h)
  45   46   * Yuck.
  46   47   */
  47   48  
  48   49  extern __GNU_INLINE struct _kthread
  49   50  *threadp(void)
  50   51  {
  51      -        void *__value;
       52 +        struct _kthread *__value;
  52   53  
  53   54  #if defined(__amd64)
  54   55          __asm__ __volatile__(
  55   56              "movq %%gs:0x18,%0"         /* CPU_THREAD */
  56   57              : "=r" (__value));
  57   58  #elif defined(__i386)
  58   59          __asm__ __volatile__(
  59   60              "movl %%gs:0x10,%0"         /* CPU_THREAD */
  60   61              : "=r" (__value));
  61   62  #else
↓ open down ↓ 12 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX