linux/ipc/ipc_sysctl.c
<<
/opt.6./spaue= .6./forme= .6.a /opt.6 href="../linux+v3.8.2/ipc/ipc_sysctl.c">/opt.6.img src="../.static/gfx/right.png" alt=">>">/o./spaue=/o.spau class="lxr_search">/opt/opt.6.input typ hidden" nam navtarget" > ">/opt.6.input typ text" nam search" id search">/opt.6.butt4" typ submit">Search/opt.6Prefs= .6./a>/o./spaue=pt.6 6./dive=pt.6 6.form acvalu="ajax+*" method="post" onsubmit="return false;">/o.input typ hidden" nam ajax_lookup" id ajax_lookup" > ">/pt.6 6./forme=/pt.6 6.div class="headingbott4m">= .div id file_contents"e
6 61./a>.spau class="comment">/*./spaue=6 62./a>.spau class="comment"> *  Copyright (C) 2007./spaue=6 63./a>.spau class="comment"> *./spaue=6 64./a>.spau class="comment"> *  Author: Eric Biedermau <ebiederm@xmisalu.com>./spaue=6 65./a>.spau class="comment"> *./spaue=6 66./a>.spau class="comment"> *  This program is free software; you cau redistribute it and/or./spaue=6 67./a>.spau class="comment"> *  modify it under the terms of the GNU General Public License as./spaue=6 68./a>.spau class="comment"> *  published by the Free Software Foundavalu, versalu 2 of the./spaue=6 69./a>.spau class="comment"> *  License../spaue=6 3.spau class="comment"> */./spaue=6 11./a>=6 12./a>#include <linux/module.h./a>>=6 13./a>#include <linux/ipc.h./a>>=6 14./a>#include <linux/nsproxy.h./a>>=6 15./a>#include <linux/sysctl.h./a>>=6 16./a>#include <linux/uaccess.h./a>>=6 17./a>#include <linux/ipc_nam
space.h./a>>=6 18./a>#include <linux/msg.h./a>>=6 19./a>#include "util.h./a>"=6 20./a>=6 21./a>static void *.a href="+code=get_ipc" class="sref">get_ipc./a>(.a href="+code=ctl_table" class="sref">ctl_table./a> *.a href="+code=table" class="sref">table./a>)=6 22./a>{=6 23./a>        char *.a href="+code=which" class="sref">which./a> = .a href="+code=table" class="sref">table./a>->.a href="+code=dava" class="sref">dava./a>;=6 24./a>        struct .a href="+code=ipc_nam
space" class="sref">ipc_nam
space./a> *.a href="+code=ipc_ns" class="sref">ipc_ns./a> = .a href="+code=current" class="sref">current./a>->.a href="+code=nsproxy" class="sref">nsproxy./a>->.a href="+code=ipc_ns" class="sref">ipc_ns./a>;=6 25./a>        .a href="+code=which" class="sref">which./a> = (.a href="+code=which" class="sref">which./a> - (char *)&.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>) + (char *).a href="+code=ipc_ns" class="sref">ipc_ns./a>;=6 26./a>        return .a href="+code=which" class="sref">which./a>;=6 27./a>}=6 28./a>=6 29./a>#ifdef .a href="+code=CONFIG_PROC_SYSCTL" class="sref">CONFIG_PROC_SYSCTL./a>=6 30./a>static int .a href="+code=proc_ipc_dointvec" class="sref">proc_ipc_dointvec./a>(.a href="+code=ctl_table" class="sref">ctl_table./a> *.a href="+code=table" class="sref">table./a>, int .a href="+code=write" class="sref">write./a>,=6 31./a>        void .a href="+code=__user" class="sref">__user./a> *.a href="+code=buffer" class="sref">buffer./a>, .a href="+code=size_t" class="sref">size_t./a> *.a href="+code=lenp" class="sref">lenp./a>, .a href="+code=loff_t" class="sref">loff_t./a> *.a href="+code=ppos" class="sref">ppos./a>)=6 32./a>{=6 33./a>        struct .a href="+code=ctl_table" class="sref">ctl_table./a> .a href="+code=ipc_table" class="sref">ipc_table./a>;=6 34./a>=6 35./a>        .a href="+code=memcpy" class="sref">memcpy./a>(&.a href="+code=ipc_table" class="sref">ipc_table./a>, .a href="+code=table" class="sref">table./a>, sizeof(.a href="+code=ipc_table" class="sref">ipc_table./a>));=6 36./a>        .a href="+code=ipc_table" class="sref">ipc_table./a>..a href="+code=dava" class="sref">dava./a> = .a href="+code=get_ipc" class="sref">get_ipc./a>(.a href="+code=table" class="sref">table./a>);=6 37./a>=6 38./a>        return .a href="+code=proc_dointvec" class="sref">proc_dointvec./a>(&.a href="+code=ipc_table" class="sref">ipc_table./a>, .a href="+code=write" class="sref">write./a>, .a href="+code=buffer" class="sref">buffer./a>, .a href="+code=lenp" class="sref">lenp./a>, .a href="+code=ppos" class="sref">ppos./a>);=6 39./a>}=6 40./a>=6 41./a>static int .a href="+code=proc_ipc_dointvec_minmax" class="sref">proc_ipc_dointvec_minmax./a>(.a href="+code=ctl_table" class="sref">ctl_table./a> *.a href="+code=table" class="sref">table./a>, int .a href="+code=write" class="sref">write./a>,=6 42./a>        void .a href="+code=__user" class="sref">__user./a> *.a href="+code=buffer" class="sref">buffer./a>, .a href="+code=size_t" class="sref">size_t./a> *.a href="+code=lenp" class="sref">lenp./a>, .a href="+code=loff_t" class="sref">loff_t./a> *.a href="+code=ppos" class="sref">ppos./a>)=6 43./a>{=6 44./a>        struct .a href="+code=ctl_table" class="sref">ctl_table./a> .a href="+code=ipc_table" class="sref">ipc_table./a>;=6 45./a>=6 46./a>        .a href="+code=memcpy" class="sref">memcpy./a>(&.a href="+code=ipc_table" class="sref">ipc_table./a>, .a href="+code=table" class="sref">table./a>, sizeof(.a href="+code=ipc_table" class="sref">ipc_table./a>));=6 47./a>        .a href="+code=ipc_table" class="sref">ipc_table./a>..a href="+code=dava" class="sref">dava./a> = .a href="+code=get_ipc" class="sref">get_ipc./a>(.a href="+code=table" class="sref">table./a>);=6 48./a>=6 49./a>        return .a href="+code=proc_dointvec_minmax" class="sref">proc_dointvec_minmax./a>(&.a href="+code=ipc_table" class="sref">ipc_table./a>, .a href="+code=write" class="sref">write./a>, .a href="+code=buffer" class="sref">buffer./a>, .a href="+code=lenp" class="sref">lenp./a>, .a href="+code=ppos" class="sref">ppos./a>);=6 50./a>}=6 51./a>=6 52./a>static int .a href="+code=proc_ipc_dointvec_minmax_orphans" class="sref">proc_ipc_dointvec_minmax_orphans./a>(.a href="+code=ctl_table" class="sref">ctl_table./a> *.a href="+code=table" class="sref">table./a>, int .a href="+code=write" class="sref">write./a>,=6 53./a>        void .a href="+code=__user" class="sref">__user./a> *.a href="+code=buffer" class="sref">buffer./a>, .a href="+code=size_t" class="sref">size_t./a> *.a href="+code=lenp" class="sref">lenp./a>, .a href="+code=loff_t" class="sref">loff_t./a> *.a href="+code=ppos" class="sref">ppos./a>)=6 54./a>{=6 55./a>        struct .a href="+code=ipc_nam
space" class="sref">ipc_nam
space./a> *.a href="+code=ns" class="sref">ns./a> = .a href="+code=current" class="sref">current./a>->.a href="+code=nsproxy" class="sref">nsproxy./a>->.a href="+code=ipc_ns" class="sref">ipc_ns./a>;=6 56./a>        int .a href="+code=err" class="sref">err./a> = .a href="+code=proc_ipc_dointvec_minmax" class="sref">proc_ipc_dointvec_minmax./a>(.a href="+code=table" class="sref">table./a>, .a href="+code=write" class="sref">write./a>, .a href="+code=buffer" class="sref">buffer./a>, .a href="+code=lenp" class="sref">lenp./a>, .a href="+code=ppos" class="sref">ppos./a>);=6 57./a>=6 58./a>        if (.a href="+code=err" class="sref">err./a> < 0)=6 59./a>                return .a href="+code=err" class="sref">err./a>;=6 60./a>        if (.a href="+code=ns" class="sref">ns./a>->.a href="+code=shm_rmid_forced" class="sref">shm_rmid_forced./a>)=6 61./a>                .a href="+code=shm_destroy_orphaned" class="sref">shm_destroy_orphaned./a>(.a href="+code=ns" class="sref">ns./a>);=6 62./a>        return .a href="+code=err" class="sref">err./a>;=6 63./a>}=6 64./a>=6 65./a>static int .a href="+code=proc_ipc_callback_dointvec" class="sref">proc_ipc_callback_dointvec./a>(.a href="+code=ctl_table" class="sref">ctl_table./a> *.a href="+code=table" class="sref">table./a>, int .a href="+code=write" class="sref">write./a>,=6 66./a>        void .a href="+code=__user" class="sref">__user./a> *.a href="+code=buffer" class="sref">buffer./a>, .a href="+code=size_t" class="sref">size_t./a> *.a href="+code=lenp" class="sref">lenp./a>, .a href="+code=loff_t" class="sref">loff_t./a> *.a href="+code=ppos" class="sref">ppos./a>)=6 67./a>{=6 68./a>        struct .a href="+code=ctl_table" class="sref">ctl_table./a> .a href="+code=ipc_table" class="sref">ipc_table./a>;=6 69./a>        .a href="+code=size_t" class="sref">size_t./a> .a href="+code=lenp_bef" class="sref">lenp_bef./a> = *.a href="+code=lenp" class="sref">lenp./a>;=6 70./a>        int .a href="+code=rc" class="sref">rc./a>;=6 71./a>=6 72./a>        .a href="+code=memcpy" class="sref">memcpy./a>(&.a href="+code=ipc_table" class="sref">ipc_table./a>, .a href="+code=table" class="sref">table./a>, sizeof(.a href="+code=ipc_table" class="sref">ipc_table./a>));=6 73./a>        .a href="+code=ipc_table" class="sref">ipc_table./a>..a href="+code=dava" class="sref">dava./a> = .a href="+code=get_ipc" class="sref">get_ipc./a>(.a href="+code=table" class="sref">table./a>);=6 74./a>=6 75./a>        .a href="+code=rc" class="sref">rc./a> = .a href="+code=proc_dointvec" class="sref">proc_dointvec./a>(&.a href="+code=ipc_table" class="sref">ipc_table./a>, .a href="+code=write" class="sref">write./a>, .a href="+code=buffer" class="sref">buffer./a>, .a href="+code=lenp" class="sref">lenp./a>, .a href="+code=ppos" class="sref">ppos./a>);=6 76./a>=6 77./a>        if (.a href="+code=write" class="sref">write./a> && !.a href="+code=rc" class="sref">rc./a> && .a href="+code=lenp_bef" class="sref">lenp_bef./a> == *.a href="+code=lenp" class="sref">lenp./a>)=6 78./a>                .spau class="comment">/*./spaue=6 79./a>.spau class="comment">                 * Tunable has successfully been changed by hand. Disable its./spaue=6 8.spau class="comment">                 * automatic adjustment. This simply requires unregistering./spaue=6 81./a>.spau class="comment">                 * the notifiers that trigger recalculavalu../spaue=6 82./a>.spau class="comment">                 */./spaue=6 83./a>                .a href="+code=unregister_ipcns_notifier" class="sref">unregister_ipcns_notifier./a>(.a href="+code=current" class="sref">current./a>->.a href="+code=nsproxy" class="sref">nsproxy./a>->.a href="+code=ipc_ns" class="sref">ipc_ns./a>);=6 84./a>=6 85./a>        return .a href="+code=rc" class="sref">rc./a>;=6 86./a>}=6 87./a>=6 88./a>static int .a href="+code=proc_ipc_doulongvec_minmax" class="sref">proc_ipc_doulongvec_minmax./a>(.a href="+code=ctl_table" class="sref">ctl_table./a> *.a href="+code=table" class="sref">table./a>, int .a href="+code=write" class="sref">write./a>,=6 89./a>        void .a href="+code=__user" class="sref">__user./a> *.a href="+code=buffer" class="sref">buffer./a>, .a href="+code=size_t" class="sref">size_t./a> *.a href="+code=lenp" class="sref">lenp./a>, .a href="+code=loff_t" class="sref">loff_t./a> *.a href="+code=ppos" class="sref">ppos./a>)=6 90./a>{=6 91./a>        struct .a href="+code=ctl_table" class="sref">ctl_table./a> .a href="+code=ipc_table" class="sref">ipc_table./a>;=6 92./a>        .a href="+code=memcpy" class="sref">memcpy./a>(&.a href="+code=ipc_table" class="sref">ipc_table./a>, .a href="+code=table" class="sref">table./a>, sizeof(.a href="+code=ipc_table" class="sref">ipc_table./a>));=6 93./a>        .a href="+code=ipc_table" class="sref">ipc_table./a>..a href="+code=dava" class="sref">dava./a> = .a href="+code=get_ipc" class="sref">get_ipc./a>(.a href="+code=table" class="sref">table./a>);=6 94./a>=6 95./a>        return .a href="+code=proc_doulongvec_minmax" class="sref">proc_doulongvec_minmax./a>(&.a href="+code=ipc_table" class="sref">ipc_table./a>, .a href="+code=write" class="sref">write./a>, .a href="+code=buffer" class="sref">buffer./a>,=6 96./a>                                        .a href="+code=lenp" class="sref">lenp./a>, .a href="+code=ppos" class="sref">ppos./a>);=6 97./a>}=6 98./a>=6 99./a>.spau class="comment">/*./spaue=6100./a>.spau class="comment"> * Routine that is called when the file "auto_msgmni" has successfully been./spaue=6101./a>.spau class="comment"> * writteu../spaue=6102./a>.spau class="comment"> * Two 	  >
s are allowed:./spaue=6103./a>.spau class="comment"> * 0: unregister msgmni's callback routine from the ipc nam
space notifier./spaue=6104./a>.spau class="comment"> *    chain. This means that msgmni won't be recomputed anymore upon memory./spaue=6105./a>.spau class="comment"> *    add/remove or ipc nam
space creavalu/removal../spaue=6106./a>.spau class="comment"> * 1: register back the callback routine../spaue=6107./a>.spau class="comment"> */./spaue=6108./a>static void .a href="+code=ipc_auto_callback" class="sref">ipc_auto_callback./a>(int .a href="+code=val" class="sref">val./a>)=6109./a>{=6110./a>        if (!.a href="+code=val" class="sref">val./a>)=6111./a>                .a href="+code=unregister_ipcns_notifier" class="sref">unregister_ipcns_notifier./a>(.a href="+code=current" class="sref">current./a>->.a href="+code=nsproxy" class="sref">nsproxy./a>->.a href="+code=ipc_ns" class="sref">ipc_ns./a>);=6112./a>        else {=6113./a>                .spau class="comment">/*./spaue=6114./a>.spau class="comment">                 * Re-enable automatic recomputing only if not already./spaue=6115./a>.spau class="comment">                 * enabled../spaue=6116./a>.spau class="comment">                 */./spaue=6117./a>                .a href="+code=recompute_msgmni" class="sref">recompute_msgmni./a>(.a href="+code=current" class="sref">current./a>->.a href="+code=nsproxy" class="sref">nsproxy./a>->.a href="+code=ipc_ns" class="sref">ipc_ns./a>);=6118./a>                .a href="+code=cond_register_ipcns_notifier" class="sref">cond_register_ipcns_notifier./a>(.a href="+code=current" class="sref">current./a>->.a href="+code=nsproxy" class="sref">nsproxy./a>->.a href="+code=ipc_ns" class="sref">ipc_ns./a>);=6119./a>        }=6120./a>}=6121./a>=6122./a>static int .a href="+code=proc_ipcauto_dointvec_minmax" class="sref">proc_ipcauto_dointvec_minmax./a>(.a href="+code=ctl_table" class="sref">ctl_table./a> *.a href="+code=table" class="sref">table./a>, int .a href="+code=write" class="sref">write./a>,=6123./a>        void .a href="+code=__user" class="sref">__user./a> *.a href="+code=buffer" class="sref">buffer./a>, .a href="+code=size_t" class="sref">size_t./a> *.a href="+code=lenp" class="sref">lenp./a>, .a href="+code=loff_t" class="sref">loff_t./a> *.a href="+code=ppos" class="sref">ppos./a>)=6124./a>{=6125./a>        struct .a href="+code=ctl_table" class="sref">ctl_table./a> .a href="+code=ipc_table" class="sref">ipc_table./a>;=6126./a>        .a href="+code=size_t" class="sref">size_t./a> .a href="+code=lenp_bef" class="sref">lenp_bef./a> = *.a href="+code=lenp" class="sref">lenp./a>;=6127./a>        int .a href="+code=oldval" class="sref">oldval./a>;=6128./a>        int .a href="+code=rc" class="sref">rc./a>;=6129./a>=6130./a>        .a href="+code=memcpy" class="sref">memcpy./a>(&.a href="+code=ipc_table" class="sref">ipc_table./a>, .a href="+code=table" class="sref">table./a>, sizeof(.a href="+code=ipc_table" class="sref">ipc_table./a>));=6131./a>        .a href="+code=ipc_table" class="sref">ipc_table./a>..a href="+code=dava" class="sref">dava./a> = .a href="+code=get_ipc" class="sref">get_ipc./a>(.a href="+code=table" class="sref">table./a>);=6132./a>        .a href="+code=oldval" class="sref">oldval./a> = *((int *)(.a href="+code=ipc_table" class="sref">ipc_table./a>..a href="+code=dava" class="sref">dava./a>));=6133./a>=6134./a>        .a href="+code=rc" class="sref">rc./a> = .a href="+code=proc_dointvec_minmax" class="sref">proc_dointvec_minmax./a>(&.a href="+code=ipc_table" class="sref">ipc_table./a>, .a href="+code=write" class="sref">write./a>, .a href="+code=buffer" class="sref">buffer./a>, .a href="+code=lenp" class="sref">lenp./a>, .a href="+code=ppos" class="sref">ppos./a>);=6135./a>=6136./a>        if (.a href="+code=write" class="sref">write./a> && !.a href="+code=rc" class="sref">rc./a> && .a href="+code=lenp_bef" class="sref">lenp_bef./a> == *.a href="+code=lenp" class="sref">lenp./a>) {=6137./a>                int .a href="+code=newval" class="sref">newval./a> = *((int *)(.a href="+code=ipc_table" class="sref">ipc_table./a>..a href="+code=dava" class="sref">dava./a>));=6138./a>                .spau class="comment">/*./spaue=6139./a>.spau class="comment">                 * The file "auto_msgmni" has correctly been set../spaue=614.spau class="comment">                 * React by (un)registering the corresponding tunable, if the./spaue=6141./a>.spau class="comment">                 * 	  >
 has changed../spaue=6142./a>.spau class="comment">                 */./spaue=6143./a>                if (.a href="+code=newval" class="sref">newval./a> != .a href="+code=oldval" class="sref">oldval./a>)=6144./a>                        .a href="+code=ipc_auto_callback" class="sref">ipc_auto_callback./a>(.a href="+code=newval" class="sref">newval./a>);=6145./a>        }=6146./a>=6147./a>        return .a href="+code=rc" class="sref">rc./a>;=6148./a>}=6149./a>=6150./a>#else=6151./a>#define .a href="+code=proc_ipc_doulongvec_minmax" class="sref">proc_ipc_doulongvec_minmax./a> .a href="+code=NULL" class="sref">NULL./a>=6152./a>#define .a href="+code=proc_ipc_dointvec" class="sref">proc_ipc_dointvec./a>          .a href="+code=NULL" class="sref">NULL./a>=6153./a>#define .a href="+code=proc_ipc_dointvec_minmax" class="sref">proc_ipc_dointvec_minmax./a>   .a href="+code=NULL" class="sref">NULL./a>=6154./a>#define .a href="+code=proc_ipc_dointvec_minmax_orphans" class="sref">proc_ipc_dointvec_minmax_orphans./a>   .a href="+code=NULL" class="sref">NULL./a>=6155./a>#define .a href="+code=proc_ipc_callback_dointvec" class="sref">proc_ipc_callback_dointvec./a> .a href="+code=NULL" class="sref">NULL./a>=6156./a>#define .a href="+code=proc_ipcauto_dointvec_minmax" class="sref">proc_ipcauto_dointvec_minmax./a> .a href="+code=NULL" class="sref">NULL./a>=6157./a>#endif=6158./a>=6159./a>static int .a href="+code=zero" class="sref">zero./a>;=6160./a>static int .a href="+code=one" class="sref">one./a> = 1;=6161./a>#ifdef .a href="+code=CONFIG_CHECKPOINT_RESTORE" class="sref">CONFIG_CHECKPOINT_RESTORE./a>=6162./a>static int .a href="+code=int_max" class="sref">int_max./a> = .a href="+code=INT_MAX" class="sref">INT_MAX./a>;=6163./a>#endif=6164./a>=6165./a>static struct .a href="+code=ctl_table" class="sref">ctl_table./a> .a href="+code=ipc_kern_table" class="sref">ipc_kern_table./a>[] = {=6166./a>        {=6167./a>                ..a href="+code=procnam
" class="sref">procnam
./a>       = .spau class="string">"shmmax"6168./a>                ..a href="+code=dava" class="sref">dava./a>           = &.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=shm_ctlmax" class="sref">shm_ctlmax./a>,=6169./a>                ..a href="+code=maxlen" class="sref">maxlen./a>         = sizeof (.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=shm_ctlmax" class="sref">shm_ctlmax./a>),=6170./a>                ..a href="+code=mode" class="sref">mode./a>           = 0644,=6171./a>                ..a href="+code=proc_handler" class="sref">proc_handler./a>   = .a href="+code=proc_ipc_doulongvec_minmax" class="sref">proc_ipc_doulongvec_minmax./a>,=6172./a>        },=6173./a>        {=6174./a>                ..a href="+code=procnam
" class="sref">procnam
./a>       = .spau class="string">"shmall"6175./a>                ..a href="+code=dava" class="sref">dava./a>           = &.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=shm_ctlall" class="sref">shm_ctlall./a>,=6176./a>                ..a href="+code=maxlen" class="sref">maxlen./a>         = sizeof (.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=shm_ctlall" class="sref">shm_ctlall./a>),=6177./a>                ..a href="+code=mode" class="sref">mode./a>           = 0644,=6178./a>                ..a href="+code=proc_handler" class="sref">proc_handler./a>   = .a href="+code=proc_ipc_doulongvec_minmax" class="sref">proc_ipc_doulongvec_minmax./a>,=6179./a>        },=6180./a>        {=6181./a>                ..a href="+code=procnam
" class="sref">procnam
./a>       = .spau class="string">"shmmni"6182./a>                ..a href="+code=dava" class="sref">dava./a>           = &.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=shm_ctlmni" class="sref">shm_ctlmni./a>,=6183./a>                ..a href="+code=maxlen" class="sref">maxlen./a>         = sizeof (.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=shm_ctlmni" class="sref">shm_ctlmni./a>),=6184./a>                ..a href="+code=mode" class="sref">mode./a>           = 0644,=6185./a>                ..a href="+code=proc_handler" class="sref">proc_handler./a>   = .a href="+code=proc_ipc_dointvec" class="sref">proc_ipc_dointvec./a>,=6186./a>        },=6187./a>        {=6188./a>                ..a href="+code=procnam
" class="sref">procnam
./a>       = .spau class="string">"shm_rmid_forced"6189./a>                ..a href="+code=dava" class="sref">dava./a>           = &.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=shm_rmid_forced" class="sref">shm_rmid_forced./a>,=6190./a>                ..a href="+code=maxlen" class="sref">maxlen./a>         = sizeof(.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=shm_rmid_forced" class="sref">shm_rmid_forced./a>),=6191./a>                ..a href="+code=mode" class="sref">mode./a>           = 0644,=6192./a>                ..a href="+code=proc_handler" class="sref">proc_handler./a>   = .a href="+code=proc_ipc_dointvec_minmax_orphans" class="sref">proc_ipc_dointvec_minmax_orphans./a>,=6193./a>                ..a href="+code=extra1" class="sref">extra1./a>         = &.a href="+code=zero" class="sref">zero./a>,=6194./a>                ..a href="+code=extra2" class="sref">extra2./a>         = &.a href="+code=one" class="sref">one./a>,=6195./a>        },=6196./a>        {=6197./a>                ..a href="+code=procnam
" class="sref">procnam
./a>       = .spau class="string">"msgmax"6198./a>                ..a href="+code=dava" class="sref">dava./a>           = &.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=msg_ctlmax" class="sref">msg_ctlmax./a>,=6199./a>                ..a href="+code=maxlen" class="sref">maxlen./a>         = sizeof (.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=msg_ctlmax" class="sref">msg_ctlmax./a>),=6200./a>                ..a href="+code=mode" class="sref">mode./a>           = 0644,=6201./a>                ..a href="+code=proc_handler" class="sref">proc_handler./a>   = .a href="+code=proc_ipc_dointvec" class="sref">proc_ipc_dointvec./a>,=6202./a>        },=6203./a>        {=6204./a>                ..a href="+code=procnam
" class="sref">procnam
./a>       = .spau class="string">"msgmni"6205./a>                ..a href="+code=dava" class="sref">dava./a>           = &.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=msg_ctlmni" class="sref">msg_ctlmni./a>,=6206./a>                ..a href="+code=maxlen" class="sref">maxlen./a>         = sizeof (.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=msg_ctlmni" class="sref">msg_ctlmni./a>),=6207./a>                ..a href="+code=mode" class="sref">mode./a>           = 0644,=6208./a>                ..a href="+code=proc_handler" class="sref">proc_handler./a>   = .a href="+code=proc_ipc_callback_dointvec" class="sref">proc_ipc_callback_dointvec./a>,=6209./a>        },=6210./a>        {=6211./a>                ..a href="+code=procnam
" class="sref">procnam
./a>       =  .spau class="string">"msgmnb"6212./a>                ..a href="+code=dava" class="sref">dava./a>           = &.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=msg_ctlmnb" class="sref">msg_ctlmnb./a>,=6213./a>                ..a href="+code=maxlen" class="sref">maxlen./a>         = sizeof (.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=msg_ctlmnb" class="sref">msg_ctlmnb./a>),=6214./a>                ..a href="+code=mode" class="sref">mode./a>           = 0644,=6215./a>                ..a href="+code=proc_handler" class="sref">proc_handler./a>   = .a href="+code=proc_ipc_dointvec" class="sref">proc_ipc_dointvec./a>,=6216./a>        },=6217./a>        {=6218./a>                ..a href="+code=procnam
" class="sref">procnam
./a>       = .spau class="string">"sem"6219./a>                ..a href="+code=dava" class="sref">dava./a>           = &.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=sem_ctls" class="sref">sem_ctls./a>,=6220./a>                ..a href="+code=maxlen" class="sref">maxlen./a>         = 4*sizeof (int),=6221./a>                ..a href="+code=mode" class="sref">mode./a>           = 0644,=6222./a>                ..a href="+code=proc_handler" class="sref">proc_handler./a>   = .a href="+code=proc_ipc_dointvec" class="sref">proc_ipc_dointvec./a>,=6223./a>        },=6224./a>        {=6225./a>                ..a href="+code=procnam
" class="sref">procnam
./a>       = .spau class="string">"auto_msgmni"6226./a>                ..a href="+code=dava" class="sref">dava./a>           = &.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=auto_msgmni" class="sref">auto_msgmni./a>,=6227./a>                ..a href="+code=maxlen" class="sref">maxlen./a>         = sizeof(int),=6228./a>                ..a href="+code=mode" class="sref">mode./a>           = 0644,=6229./a>                ..a href="+code=proc_handler" class="sref">proc_handler./a>   = .a href="+code=proc_ipcauto_dointvec_minmax" class="sref">proc_ipcauto_dointvec_minmax./a>,=6230./a>                ..a href="+code=extra1" class="sref">extra1./a>         = &.a href="+code=zero" class="sref">zero./a>,=6231./a>                ..a href="+code=extra2" class="sref">extra2./a>         = &.a href="+code=one" class="sref">one./a>,=6232./a>        },=6233./a>#ifdef .a href="+code=CONFIG_CHECKPOINT_RESTORE" class="sref">CONFIG_CHECKPOINT_RESTORE./a>=6234./a>        {=6235./a>                ..a href="+code=procnam
" class="sref">procnam
./a>       = .spau class="string">"sem_next_id"6236./a>                ..a href="+code=dava" class="sref">dava./a>           = &.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=ids" class="sref">ids./a>[.a href="+code=IPC_SEM_IDS" class="sref">IPC_SEM_IDS./a>]..a href="+code=next_id" class="sref">next_id./a>,=6237./a>                ..a href="+code=maxlen" class="sref">maxlen./a>         = sizeof(.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=ids" class="sref">ids./a>[.a href="+code=IPC_SEM_IDS" class="sref">IPC_SEM_IDS./a>]..a href="+code=next_id" class="sref">next_id./a>),=6238./a>                ..a href="+code=mode" class="sref">mode./a>           = 0644,=6239./a>                ..a href="+code=proc_handler" class="sref">proc_handler./a>   = .a href="+code=proc_ipc_dointvec_minmax" class="sref">proc_ipc_dointvec_minmax./a>,=6240./a>                ..a href="+code=extra1" class="sref">extra1./a>         = &.a href="+code=zero" class="sref">zero./a>,=6241./a>                ..a href="+code=extra2" class="sref">extra2./a>         = &.a href="+code=int_max" class="sref">int_max./a>,=6242./a>        },=6243./a>        {=6244./a>                ..a href="+code=procnam
" class="sref">procnam
./a>       = .spau class="string">"msg_next_id"6245./a>                ..a href="+code=dava" class="sref">dava./a>           = &.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=ids" class="sref">ids./a>[.a href="+code=IPC_MSG_IDS" class="sref">IPC_MSG_IDS./a>]..a href="+code=next_id" class="sref">next_id./a>,=6246./a>                ..a href="+code=maxlen" class="sref">maxlen./a>         = sizeof(.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=ids" class="sref">ids./a>[.a href="+code=IPC_MSG_IDS" class="sref">IPC_MSG_IDS./a>]..a href="+code=next_id" class="sref">next_id./a>),=6247./a>                ..a href="+code=mode" class="sref">mode./a>           = 0644,=6248./a>                ..a href="+code=proc_handler" class="sref">proc_handler./a>   = .a href="+code=proc_ipc_dointvec_minmax" class="sref">proc_ipc_dointvec_minmax./a>,=6249./a>                ..a href="+code=extra1" class="sref">extra1./a>         = &.a href="+code=zero" class="sref">zero./a>,=6250./a>                ..a href="+code=extra2" class="sref">extra2./a>         = &.a href="+code=int_max" class="sref">int_max./a>,=6251./a>        },=6252./a>        {=6253./a>                ..a href="+code=procnam
" class="sref">procnam
./a>       = .spau class="string">"shm_next_id"6254./a>                ..a href="+code=dava" class="sref">dava./a>           = &.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=ids" class="sref">ids./a>[.a href="+code=IPC_SHM_IDS" class="sref">IPC_SHM_IDS./a>]..a href="+code=next_id" class="sref">next_id./a>,=6255./a>                ..a href="+code=maxlen" class="sref">maxlen./a>         = sizeof(.a href="+code=init_ipc_ns" class="sref">init_ipc_ns./a>..a href="+code=ids" class="sref">ids./a>[.a href="+code=IPC_SHM_IDS" class="sref">IPC_SHM_IDS./a>]..a href="+code=next_id" class="sref">next_id./a>),=6256./a>                ..a href="+code=mode" class="sref">mode./a>           = 0644,=6257./a>                ..a href="+code=proc_handler" class="sref">proc_handler./a>   = .a href="+code=proc_ipc_dointvec_minmax" class="sref">proc_ipc_dointvec_minmax./a>,=6258./a>                ..a href="+code=extra1" class="sref">extra1./a>         = &.a href="+code=zero" class="sref">zero./a>,=6259./a>                ..a href="+code=extra2" class="sref">extra2./a>         = &.a href="+code=int_max" class="sref">int_max./a>,=6260./a>        },=6261./a>#endif=6262./a>        {}=6263./a>};=6264./a>=6265./a>static struct .a href="+code=ctl_table" class="sref">ctl_table./a> .a href="+code=ipc_root_table" class="sref">ipc_root_table./a>[] = {=6266./a>        {=6267./a>                ..a href="+code=procnam
" class="sref">procnam
./a>       = .spau class="string">"kernel"6268./a>                ..a href="+code=mode" class="sref">mode./a>           = 0555,=6269./a>                ..a href="+code=child" class="sref">child./a>          = .a href="+code=ipc_kern_table" class="sref">ipc_kern_table./a>,=6270./a>        },=6271./a>        {}=6272./a>};=6273./a>=6274./a>static int .a href="+code=__init" class="sref">__init./a> .a href="+code=ipc_sysctl_init" class="sref">ipc_sysctl_init./a>(void)=6275./a>{=6276./a>        .a href="+code=register_sysctl_table" class="sref">register_sysctl_table./a>(.a href="+code=ipc_root_table" class="sref">ipc_root_table./a>);=6277./a>        return 0;=6278./a>}=6279./a>=6280./a>.a href="+code=__initcall" class="sref">__initcall./a>(.a href="+code=ipc_sysctl_init" class="sref">ipc_sysctl_init./a>);=6281./a>
lxr.linux.no kindly hosted by Redpill Linpro AS./a>, provider of Linux consulting and operavalus services since61995.