Print this page
NEX-4083 Upstream changes from illumos 5917 and 5995
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Kevin Crowe <kevin.crowe@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
SMB-50 User-mode SMB server
 Includes work by these authors:
 Thomas Keiser <thomas.keiser@nexenta.com>
 Albert Lee <trisk@nexenta.com>
re #13613 rb4516 Tunables needs volatile keyword
        
@@ -25,10 +25,13 @@
 /*
  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  * Copyright 2016 Nexenta Systems, Inc.
  */
+/*
+ * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
+ */
 
 #ifndef _SYS_SYSTM_H
 #define _SYS_SYSTM_H
 
 #include <sys/types.h>
@@ -69,11 +72,11 @@
 extern char runout;             /* scheduling flag */
 extern char wake_sched;         /* causes clock to wake swapper on next tick */
 extern char wake_sched_sec;     /* causes clock to wake swapper after a sec */
 
 extern pgcnt_t  maxmem;         /* max available memory (pages) */
-extern pgcnt_t  physmem;        /* physical memory (pages) on this CPU */
+extern volatile pgcnt_t physmem; /* physical memory (pages) on this CPU */
 extern pfn_t    physmax;        /* highest numbered physical page present */
 extern pgcnt_t  physinstalled;  /* physical pages including PROM/boot use */
 
 extern caddr_t  s_text;         /* start of kernel text segment */
 extern caddr_t  e_text;         /* end of kernel text segment */
@@ -81,11 +84,12 @@
 extern caddr_t  e_data;         /* end of kernel text segment */
 
 extern pgcnt_t  availrmem;      /* Available resident (not swapable)    */
                                 /* memory in pages.                     */
 extern pgcnt_t  availrmem_initial;      /* initial value of availrmem   */
-extern pgcnt_t  segspt_minfree; /* low water mark for availrmem in seg_spt */
+extern volatile pgcnt_t segspt_minfree; /* low water mark for availrmem */
+                                        /* in seg_spt                   */
 extern pgcnt_t  freemem;        /* Current free memory.                 */
 
 extern dev_t    rootdev;        /* device of the root */
 extern struct vnode *rootvp;    /* vnode of root device */
 extern boolean_t root_is_ramdisk;       /* root is boot_archive ramdisk */
@@ -92,11 +96,11 @@
 extern uint32_t  ramdisk_size;          /* (KB) set only for sparc netboots */
 extern char *volatile panicstr; /* panic string pointer */
 extern va_list  panicargs;      /* panic arguments */
 extern volatile int quiesce_active;     /* quiesce(9E) is in progress */
 
-extern int      rstchown;       /* 1 ==> restrictive chown(2) semantics */
+extern volatile int rstchown;   /* 1 ==> restrictive chown(2) semantics */
 extern int      klustsize;
 
 extern int      abort_enable;   /* Platform input-device abort policy */
 
 extern int      audit_active;   /* Solaris Auditing module state */
@@ -103,11 +107,11 @@
 
 extern int      avenrun[];      /* array of load averages */
 
 extern char *isa_list;          /* For sysinfo's isalist option */
 
-extern int noexec_user_stack;           /* patchable via /etc/system */
+extern volatile int noexec_user_stack;  /* patchable via /etc/system */
 extern int noexec_user_stack_log;       /* patchable via /etc/system */
 
 /*
  * Use NFS client operations in the global zone only.  Under contract with
  * admin/install; do not change without coordinating with that consolidation.
@@ -306,12 +310,12 @@
 extern void     uniqtime32(struct timeval32 *);
 
 uint_t page_num_pagesizes(void);
 size_t page_get_pagesize(uint_t n);
 
-extern int maxusers;
-extern int pidmax;
+extern volatile int maxusers;
+extern volatile int pidmax;
 
 extern void param_preset(void);
 extern void param_calc(int);
 extern void param_init(void);
 extern void param_check(void);