Print this page
15254 %ymm registers not restored after signal handler
15367 x86 getfpregs() summons corrupting %xmm ghosts
15333 want x86 /proc xregs support (libc_db, libproc, mdb, etc.)
15336 want libc functions for extended ucontext_t
15334 want ps_lwphandle-specific reg routines
15328 FPU_CW_INIT mistreats reserved bit
15335 i86pc fpu_subr.c isn't really platform-specific
15332 setcontext(2) isn't actually noreturn
15331 need <sys/stdalign.h>
Change-Id: I7060aa86042dfb989f77fc3323c065ea2eafa9ad
Conflicts:
    usr/src/uts/common/fs/proc/prcontrol.c
    usr/src/uts/intel/os/archdep.c
    usr/src/uts/intel/sys/ucontext.h
    usr/src/uts/intel/syscall/getcontext.c


  46 
  47 #define KM_SLEEP        0x0000  /* can block for memory; success guaranteed */
  48 #define KM_NOSLEEP      0x0001  /* cannot block for memory; may fail */
  49 #define KM_PANIC        0x0002  /* if memory cannot be allocated, panic */
  50 #define KM_PUSHPAGE     0x0004  /* can block for memory; may use reserve */
  51 #define KM_NORMALPRI    0x0008  /* with KM_NOSLEEP, lower priority allocation */
  52 #define KM_NOSLEEP_LAZY (KM_NOSLEEP | KM_NORMALPRI)  /* Syntactic sugar. */
  53 #define KM_VMFLAGS      0x00ff  /* flags that must match VM_* flags */
  54 
  55 #define KM_FLAGS        0xffff  /* all settable kmem flags */
  56 
  57 #if defined(_KERNEL) || defined(_FAKE_KERNEL)
  58 
  59 extern void *kmem_alloc(size_t size, int kmflags);
  60 extern void *kmem_zalloc(size_t size, int kmflags);
  61 extern void kmem_free(void *buf, size_t size);
  62 extern void *kmem_alloc_tryhard(size_t size, size_t *alloc_size, int kmflags);
  63 extern void kmem_dump_init(size_t);
  64 extern void kmem_dump_begin(void);
  65 extern size_t kmem_dump_finish(char *buf, size_t size);

  66 
  67 #endif  /* _KERNEL */
  68 
  69 /*
  70  * Kernel memory allocator: private interfaces.
  71  * These interfaces are still evolving.
  72  * Do not use them in unbundled drivers.
  73  */
  74 
  75 /*
  76  * Flags for kmem_cache_create()
  77  */
  78 #define KMC_NOTOUCH     0x00010000
  79 #define KMC_NODEBUG     0x00020000
  80 #define KMC_NOMAGAZINE  0x00040000
  81 #define KMC_NOHASH      0x00080000
  82 #define KMC_QCACHE      0x00100000
  83 #define KMC_KMEM_ALLOC  0x00200000      /* internal use only */
  84 #define KMC_IDENTIFIER  0x00400000      /* internal use only */
  85 #define KMC_PREFILL     0x00800000




  46 
  47 #define KM_SLEEP        0x0000  /* can block for memory; success guaranteed */
  48 #define KM_NOSLEEP      0x0001  /* cannot block for memory; may fail */
  49 #define KM_PANIC        0x0002  /* if memory cannot be allocated, panic */
  50 #define KM_PUSHPAGE     0x0004  /* can block for memory; may use reserve */
  51 #define KM_NORMALPRI    0x0008  /* with KM_NOSLEEP, lower priority allocation */
  52 #define KM_NOSLEEP_LAZY (KM_NOSLEEP | KM_NORMALPRI)  /* Syntactic sugar. */
  53 #define KM_VMFLAGS      0x00ff  /* flags that must match VM_* flags */
  54 
  55 #define KM_FLAGS        0xffff  /* all settable kmem flags */
  56 
  57 #if defined(_KERNEL) || defined(_FAKE_KERNEL)
  58 
  59 extern void *kmem_alloc(size_t size, int kmflags);
  60 extern void *kmem_zalloc(size_t size, int kmflags);
  61 extern void kmem_free(void *buf, size_t size);
  62 extern void *kmem_alloc_tryhard(size_t size, size_t *alloc_size, int kmflags);
  63 extern void kmem_dump_init(size_t);
  64 extern void kmem_dump_begin(void);
  65 extern size_t kmem_dump_finish(char *buf, size_t size);
  66 extern void *kmem_rezalloc(void *, size_t, size_t, int);
  67 
  68 #endif  /* _KERNEL */
  69 
  70 /*
  71  * Kernel memory allocator: private interfaces.
  72  * These interfaces are still evolving.
  73  * Do not use them in unbundled drivers.
  74  */
  75 
  76 /*
  77  * Flags for kmem_cache_create()
  78  */
  79 #define KMC_NOTOUCH     0x00010000
  80 #define KMC_NODEBUG     0x00020000
  81 #define KMC_NOMAGAZINE  0x00040000
  82 #define KMC_NOHASH      0x00080000
  83 #define KMC_QCACHE      0x00100000
  84 #define KMC_KMEM_ALLOC  0x00200000      /* internal use only */
  85 #define KMC_IDENTIFIER  0x00400000      /* internal use only */
  86 #define KMC_PREFILL     0x00800000