+ case KERN_PROCDELAYTERM:
+ {
+ int old_value, new_value;
+
+ error = 0;
+ if (oldp && *oldlenp < sizeof(int))
+ return (ENOMEM);
+ if ( newp && newlen != sizeof(int) )
+ return(EINVAL);
+ *oldlenp = sizeof(int);
+ old_value = (p->p_lflag & P_LDELAYTERM)? 1: 0;
+ if (oldp && (error = copyout( &old_value, oldp, sizeof(int))))
+ return(error);
+ if (error == 0 && newp )
+ error = copyin( newp, &new_value, sizeof(int) );
+ if (error == 0 && newp) {
+ if (new_value)
+ p->p_lflag |= P_LDELAYTERM;
+ else
+ p->p_lflag &= ~P_LDELAYTERM;
+ }
+ return(error);
+ }
+ case KERN_PROC_LOW_PRI_IO:
+ {
+ int old_value, new_value;
+
+ error = 0;
+ if (oldp && *oldlenp < sizeof(int))
+ return (ENOMEM);
+ if ( newp && newlen != sizeof(int) )
+ return(EINVAL);
+ *oldlenp = sizeof(int);
+
+ old_value = (p->p_lflag & P_LLOW_PRI_IO)? 0x01: 0;
+ if (p->p_lflag & P_LBACKGROUND_IO)
+ old_value |= 0x02;
+
+ if (oldp && (error = copyout( &old_value, oldp, sizeof(int))))
+ return(error);
+ if (error == 0 && newp )
+ error = copyin( newp, &new_value, sizeof(int) );
+ if (error == 0 && newp) {
+ if (new_value & 0x01)
+ p->p_lflag |= P_LLOW_PRI_IO;
+ else if (new_value & 0x02)
+ p->p_lflag |= P_LBACKGROUND_IO;
+ else if (new_value == 0)
+ p->p_lflag &= ~(P_LLOW_PRI_IO | P_LBACKGROUND_IO);
+ }
+ return(error);
+ }
+ case KERN_LOW_PRI_WINDOW:
+ {
+ int old_value, new_value;
+
+ error = 0;
+ if (oldp && *oldlenp < sizeof(old_value) )
+ return (ENOMEM);
+ if ( newp && newlen != sizeof(new_value) )
+ return(EINVAL);
+ *oldlenp = sizeof(old_value);
+
+ old_value = lowpri_IO_window_msecs;
+
+ if (oldp && (error = copyout( &old_value, oldp, *oldlenp)))
+ return(error);
+ if (error == 0 && newp )
+ error = copyin( newp, &new_value, sizeof(newlen) );
+ if (error == 0 && newp) {
+ lowpri_IO_window_msecs = new_value;
+ }
+ return(error);
+ }
+ case KERN_LOW_PRI_DELAY:
+ {
+ int old_value, new_value;
+
+ error = 0;
+ if (oldp && *oldlenp < sizeof(old_value) )
+ return (ENOMEM);
+ if ( newp && newlen != sizeof(new_value) )
+ return(EINVAL);
+ *oldlenp = sizeof(old_value);
+
+ old_value = lowpri_IO_delay_msecs;
+
+ if (oldp && (error = copyout( &old_value, oldp, *oldlenp)))
+ return(error);
+ if (error == 0 && newp )
+ error = copyin( newp, &new_value, sizeof(newlen) );
+ if (error == 0 && newp) {
+ lowpri_IO_delay_msecs = new_value;
+ }
+ return(error);
+ }
+ case KERN_SHREG_PRIVATIZABLE:
+ /* this kernel does implement shared_region_make_private_np() */
+ return (sysctl_rdint(oldp, oldlenp, newp, 1));