linux/ipc/shm.c
<<
/optopt/spa opt/form opta /optop href="../linux+v3.8.6/ipc/shm.c">/optoptimg src="../.static/gfx/right.png" alt=">>">/ot/spa /otspa class="lxr_search">/opt ="+search" method="post" onsubmit="return do_search(this);">/optoptinput typv2.hidden" namv2.navtarget" ue="v2.">/optoptinput typv2.text" namv2.search" id2.search">/optoptbuttvaltypv2.submit">Search/optopPrefs opt/a>/ot/spa ptop pt/div ptop ptform acn> ="ajax+*" method="post" onsubmit="return false;">/otinput typv2.hidden" namv2.ajax_lookup" id2.ajax_lookup" ue="v2.">/ptop pt/form /ptop ptdiv class="headingbottvm">
tdiv id2.file_contents"
p p1t/a>tspa  class="comment">/*t/spa  
p p2t/a>tspa  class="comment"> * linux/ipc/shm.ct/spa  
p p3t/a>tspa  class="comment"> * Copyright (C) 1992, 1993 Krishna Balasubramaniant/spa  
p p4t/a>tspa  class="comment"> *       Many improvements/fixes by Bruno Haible.t/spa  
p p5t/a>tspa  class="comment"> * Replaced `struct shm_desc' by `struct vm_area_struct', July 1994.t/spa  
p p6t/a>tspa  class="comment"> * Fixed the shm swap deallocan val(shm_unuse()), August 1998 Andrea Arcangeli.t/spa  
p p7t/a>tspa  class="comment"> *t/spa  
p p8t/a>tspa  class="comment"> * /proc/sysvipc/shm support (c) 1999 Dragos Acostachioaie <dragos@inamv.com>t/spa  
p p9t/a>tspa  class="comment"> * BIGMEM support, Andrea Arcangeli <andrea@suse.de>t/spa  
p aluea>tspa  class="comment"> * SMP thread shm, Jean-Luc Boyard <jean-luc.boyard@siemens.fr>t/spa  
p 11t/a>tspa  class="comment"> * HIGHMEM support, Ingo Molnar <mingo@redhat.com>t/spa  
p 12t/a>tspa  class="comment"> * Make shmmax, shmall, shmmni sysctl'able, Christoph Rohland <cr@sap.com>t/spa  
p 13t/a>tspa  class="comment"> * Shared /dev/zero support, Kanoj Sarcar <kanoj@sgi.com>t/spa  
p 14t/a>tspa  class="comment"> * Move the mm funcn>
 ality over to mm/shmem.c, Christoph Rohland <cr@sap.com>t/spa  
p 15t/a>tspa  class="comment"> *t/spa  
p 16t/a>tspa  class="comment"> * support for audit of ipc object properties and permiss valchangest/spa  
p 17t/a>tspa  class="comment"> * Dustin Kirkland <dustin.kirkland@us.ibm.com>t/spa  
p 18t/a>tspa  class="comment"> *t/spa  
p 19t/a>tspa  class="comment"> * namvspaces supportt/spa  
p 2luea>tspa  class="comment"> * OpenVZ, SWsoft Inc.t/spa  
p 21t/a>tspa  class="comment"> * Pavel Emelianov <xemul@openvz.org>t/spa  
p 22t/a>tspa  class="comment"> */t/spa  
p 23t/a>
p 24t/a>#include <linux/slab.ht/a>>
p 25t/a>#include <linux/mm.ht/a>>
p 26t/a>#include <linux/hugetlb.ht/a>>
p 27t/a>#include <linux/shm.ht/a>>
p 28t/a>#include <linux/init.ht/a>>
p 29t/a>#include <linux/file.ht/a>>
p 30t/a>#include <linux/mman.ht/a>>
p 31t/a>#include <linux/shmem_fs.ht/a>>
p 32t/a>#include <linux/security.ht/a>>
p 33t/a>#include <linux/syscalls.ht/a>>
p 34t/a>#include <linux/audit.ht/a>>
p 35t/a>#include <linux/capability.ht/a>>
p 36t/a>#include <linux/ptrace.ht/a>>
p 37t/a>#include <linux/seq_file.ht/a>>
p 38t/a>#include <linux/rwsem.ht/a>>
p 39t/a>#include <linux/nsproxy.ht/a>>
p 40t/a>#include <linux/mount.ht/a>>
p 41t/a>#include <linux/ipc_namvspace.ht/a>>
p 42t/a>
p 43t/a>#include <asm/uaccess.ht/a>>
p 44t/a>
p 45t/a>#include "util.ht/a>"
p 46t/a>
p 47t/a>struct shm_file_datat/a> {
p 48t/a>        int idt/a>;
p 49t/a>        struct ipc_namvspacet/a> *nst/a>;
p 50t/a>        struct filet/a> *filet/a>;
p 51t/a>        const struct vm_operan vas_structt/a> *vm_opst/a>;
p 52t/a>};
p 53t/a>
p 54t/a>#define shm_file_datat/a>(filet/a>) (*((struct shm_file_datat/a> **)&(filet/a>)->ta href="+code=private_data" class="sref">private_datat/a>))
p 55t/a>
p 56t/a>static const struct file_operan vast/a> shm_file_operan vast/a>;
p 57t/a>static const struct vm_operan vas_structt/a> shm_vm_opst/a>;
p 58t/a>
p 59t/a>#define shm_idst/a>(nst/a>)     ((nst/a>)->ta href="+code=ids" class="sref">idst/a>[ta href="+code=IPC_SHM_IFS" class="sref">ode=IPC_SHMt/a>Oode=IPC_SH.35.6
  
  shm_idsunlock>(shm_ip>)     ((<<<<<<<<<<<<<\ href="ipc/shm.c#L59"6id2.L52"6class="line" namv2.L52"6p 52t62>        conhref="+code=ipc_namunlocklass="sref">shm_namunlock>(shm_ip>)   t;ta href="+code=ids_idsmisslass="sref">shm_idsmiss>)    href="ipc/shm.c#L59"6id2.L53"6class="line" namv2.L53"6p 53t6a>
static con nst/ewseg>(ipc_namvspacet/a> *idstnamc64amc> *static convoid href="+code=shm_idsnvz.lass="sref">shm_idsnvz.>(vm_opea_struct> *priopc>)   a href="ipc/shm.c#L58"6id2.L6" cclass="line" namv2.L6">pp 56t66>static convoid href="+code=shm_idsclosclass="sref">ipc_idsclosc>(vm_opea_struct> *priopc>)   a href="ipc/shm.c#L58"6id2.L57"6class="line" namv2.L57"6p 57t67>static convoid href="+code=shm_idsdeuctoylass="sref">ipc_idsdeuctoy> *ipc_namvspacet/a> *nst/a>)-&,ruct ipc_idid_kernel> *shm_ip>)   a href="ipc/shm.c#L58"6id2.L58"6class="line" namv2.L58"6p 58t6a>#inclfine href="+code=ipcCONFIG_PROC_Fclass="sref">odeCONFIG_PROC_Fc>
static con shm_ipc/sh__idsmroh__iow>(shm_file.ht> *shm_>)-&,rvoid  href="+code=ns"i3lass="sref">vm_it>)   a href="ipc/shm.c#L58"7 
  
   void href="+code=shm_idst.ht_ class="sref">shm_filt.ht_ c>(ipc_namvspacet/a> *nst/a>)-&g href="ipc/shm.c#L54"7id2.L53"7class="line" namv2.L53"7p 53t7a>
        conhref="+code=ipc class="sref">nst/a>)-&t;ta href="+code=ids_idsctlmaxlass="sref">ipc_idsctlmax>    =nhref="+code=ipc_SHMAXlass="sref">ipc_SHMAX>;
        conhref="+code=ipc class="sref">nst/a>)-&t;ta href="+code=ids_idsctlalllass="sref">ipc_idsctlall>    =nhref="+code=ipc_SHALLlass="sref">ipc_SHALL>;
7p 56t76>        conhref="+code=ipc class="sref">nst/a>)-&t;ta href="+code=ids_idsctlmnilass="sref">ipc_idsctlmni>    =nhref="+code=ipc_SHMNIlass="sref">ipc_SHMNI>;
pp 57t77>        conhref="+code=ipc class="sref">nst/a>)-&t;ta href="+code=ids_idsrdid_forceclass="sref">idt_idsrdid_forcec>    =n0a href="ipc/shm.c#L58"7id2.L58"7class="line" namv2.L58"7p 58t78>        conhref="+code=ipc class="sref">nst/a>)-&t;ta href="+code=ids_idsto3lass="sref">vm__idsto3>    =n0a href="ipc/shm.c#L58"7id2.L59"7class="line" namv2.L59"7p 59t79>        conhref="+code=ipc_namt.ht_" class="sref">idstnamt.ht_" c>(shm_idst/a>(nst/a>)    a href="ipc/shm.c#L58"8 
  
tspa  class="comment"> *//spa  
tspa  class="comment"> * Copyalled with _idst/a.rw_mutex (writer)d per shm spruct tspa  class="comment"> * MovOnly _idst/a.rw_mutex remains locked on exitspa  
tspa  class="comment"> *t/sspa  
8p 56t86>static convoid href="+code=shmsearidsrdidlass="sref">nstsearidsrdid>(ipc_namvspacet/a> *nst/a>)-&,ruct shmkern_tnamciss> *shmtnap>)-&g href="ipc/shm.c#L54"8id2.L7" 8class="line" namv2.L7">8p 57t87>
pp 58t88>        conuct ipc_idid_kernel> *shm_ip>)  a href="ipc/shm.c#L58"8id2.L59"8class="line" namv2.L59"8p 59t89>        conhref="+code=ipcshplass="sref">shm_ip>)   =nhref="+code=ipctentainer_oflass="sref">shmtentainer_of>(shmtnap>)-&,ruct ipc_idid_kernel> *<, href="+code=shm_idsmisslass="sref">shm_idsmiss>)   a href="ipc/shm.c#L58"9 
          conif  href="+code=filshplass="sref">shm_ip>)  t;ta href="+code=ids_idsnattchlass="sref">shm_idsnattch>)   a href="ipc/shm.c#L48"9id2.L52"9class="line" namv2.L52"9p 52t92>        con     conhref="+code=ipcshplass="sref">shm_ip>)  t;ta href="+code=ids_idsmisslass="sref">shm_idsmiss>)  .href="+code=idsm=idlass="sref">shmm=id>    |=nhref="+code=ipc_SH_DESTlass="sref">ipc_SH_DEST>)  a href="ipc/shm.c#L58"9id2.L53"9class="line" namv2.L53"9p 53t93>        con     conh  class="comment"> *//s Do not fiperit  impmore sspa  
        con     conhref="+code=ipcshplass="sref">shm_ip>)  t;ta href="+code=ids_idsmisslass="sref">shm_idsmiss>)  .href="+code=idskeylass="sref">ipckey>)   =nhref="+code=ipc=IPCPRIVATElass="sref">ode=IPCPRIVATE>)  a href="ipc/shm.c#L58"9id2.L55"9class="line" namv2.L55"9p 55t95>        con     conhref="+code=ipcshdsunlocklass="sref">shm_idsunlock>(shm_ip>)   a href="ipc/shm.c#L58"9id2.L6" 9class="line" namv2.L6">9p 56t96>        con} else href="ipc/shm.c#L58"9id2.L7" 9class="line" namv2.L7">9p 57t97>        con     conhref="+code=ipcshdsdeuctoylass="sref">ipc_idsdeuctoy> *< href="+code=ns" class="sref">nst/a>)  , href="+code=shm_iplass="sref">shm_ip>)   a href="ipc/shm.c#L58"9id2.L8" 9class="line" namv2.L8">9p 58t98>#in} href="ipc/shm.c#L58"9id2.L9" cclass="line" namv2.L9">pp 59t99>
pp 50>pp>#inclfine href="+code=ipcCONFIG_=IPCNclass="sref">odeCONFIG_=IPCNc>
01 50>p1>   void href="+code=shm_idsexit_ class="sref">shm_filexit_ c>(ipc_namvspacet/a> *nst/a>)-&g href="ipc/shm.c#L54"10id2.L12" 0class="line" namv2.L12">02 50>p2>
03 50>p3>        conhref="+code=ns"free_tnaclass="sref">fileree_tnac> *< href="+code=ns" class="sref">nst/a>)  , p;(shm_idst/a>(nst/a>)   , href="+code=shmsearidsrdidlass="sref">nstsearidsrdid>(04 50>p4>        conhref="+code=ipcidrsdeuctoylass="sref">ipcidrsdeuctoy>(nst/a>)-&t;ta href="+code=ids" class="sref">idst/a>[ta href="+code=IPC_SHM_IFS" class="sref">ode=IPC_SHMt/a>Oode.href="+code=idstnacst/rlass="sref">ipc_nacst/r>(05 50>p5>#in} href="ipc/shm.c#L58"10id2.L16" 0class="line" namv2.L16">06 50>p6>#incendif href="ipc/shm.c#L58"10id2.L17" 0class="line" namv2.L17">07 50>p7>
08 50>p8>static con ipc_mt.ht>    href="+code=ipc_namvsmt.htlass="sref">ipc_namvsmt.ht>(09 50>p9>
>p al110>        conhref="+code=ipc_idst.ht_ class="sref">shm_filt.ht_ c>(ipc_.ht_"namvs>(p1 50>1a>        conurn fal0a href="ipc/shm.c#L58"1 id2.L12"  class="line" namv2.L12">>p 121/a>tsp} href="ipc/shm.c#L58"1 id2.L13"  class="line" namv2.L13">>p 1311a>
>p 141/a>tsparef="+code=shmpurelt.htcalllass="sref">ipcpurelt.htcall>(ipc_namvsmt.ht>(>p 1511a>
>p 161/a>tspvoid href="+code=shm_mt.htlass="sref">ipc_mt.ht>    href="+code=ipc_filt.htlass="sref">shm_filt.ht> *>p 17117>
>p 18118>        conhref="+code=ipctnamt.ht_mroh_ ipc_namt.ht_mroh_ (>p 1911a>#incle href="+code=ipcBITS_PER_LONGlass="sref">ipcBITS_PER_LONG>    ;p 2l120>        connnnnnnnnnnnnnnnnnnnnnnnnh  class="comucting"uot;
p 211/a>tsp#else href="ipc/shm.c#L58"12id2.L12" cclass="line" namv2.L12">pp 12122>        con     connnnnnnnnnnnnnnnnh  class="comucting"uot;
p 231/a>
p 24124>        con     connnnnnnnnnnnnnnnnhref="+code=IPC_SHM_IFS" class="sref">ode=IPC_SHMt/a>Ood, href="+code=shm_ipc/sh__idsmroh__iowlass="sref">shm_ipc/sh__idsmroh__iow>(p 25125>#in} href="ipc/shm.c#L58"1 id2.L26"1 class="line" namv2.L26"1>p 2612a>
p 2712a>tspa  class="comment"> * /spa  
p 2812a>tspa  class="comment"> * /pr_idslock_(check_) rout" ns aclasalled inr shmpaths wherhe mm rw_mutexpa  
p 2912a>tspa  class="comment"> * namis not nes.htarily heldspa  
p 3013a>tspa  class="comment"> * Opspa  
p 311/a>#intic conhref="+code=shmt.e" namss="sref">ipc_.e" n>    uct ipc_idid_kernel> *shm_fillock>(ipc_namvspacet/a> *nst/a>)-&,r idt/a>;
p 32132>
p 33133>        conuct shmkern_tnamciss> *shmtnap>)-& =nhref="+code=ipctnamlocklass="sref">shm_namlock>(shm_idst/a>(nst/a>)   , href="+code=shm class="sref">idt/a>;
p 3413a>
p 35135>        conif  href="+code=filIS_ERRlass="sref">ode=S_ERR>(shmtnap>)-&p 36136>        con     conurn falruct ipc_idid_kernel> *shmtnap>)-&a href="ipc/shm.c#L58"1 id2.L27"1 class="line" namv2.L37"1>p 37137>
p 38138>        conL38"1>p4
aths wherhe mm rw_mutexpa  
p 27t/a>31">p 41t/sref">shmtnap>)137>
 ass="by_ptta href="+code=if"> ass="by_ptt_.e" n>    uct p 311/a>#intic conhref=href="+code=ns" class="sref">nst/a>)-&,ruct #inc1lude <nst/a>)-&,r linu1x/ipc_namvspace.ht/a>>1;
      de=shmt.e" namss="sde=s="ipa href="i" clalt;dragos@code=shm clt">asm/uaccess.ht/a>>1;
p 45t/1a>#in1lude "util.ht/a>"1;
p 311/a>#intic conhref="+code=s_ommena href="+code=if"> ass="ommen_.e" n>    uct ipc_idid_kernel> *quot;p 47t/a>st1ruct 1a href="+code=========================================hm_fillock>(ipc.c#L48" i1d2.L48" class="line" nam1v2.L414ef="+code=ipc_namvsmt.htlassa href="+1code=ipc_namvspace" clas1s="sr1f">ipc_namvspacet/a> *p 32132>
p 33133>        conuct shmkern_tnamciss> *shmtnap>)-& =nhref="+code=ipctnamlocklass="sref">shm_namlock>(vm_ope1ran v15.c#L48"1 id2. id2.L34"1 class="line" namv2.L34"1>p 3413a>
p 35135>    vm_ops" c1lass="sref">vm_opst/a>;
1    |=nhref="+co"+code=ns"tnaplass="sref">shmtnap>)-&p 36136>        con     conurn falruct p 52t/a>}1;
nst/a>)   , href="+"+code=fi1le" class="sref">filet/a1>)-&g15c/shm.c#L58"1 id2.L27"1 class="line" namv2.L37"1>p 37137>
p 38138>        conL38"1>p4
aths wherhe mm rw_mutexpa  
p 27t/a>31">p 41t/sref">shmtnap>)137>
private_datat/a>)1)
fi1le_operan vast/a> vm_operan vas1_stru158ty.ht/
	  16.34.8 a>)  , p;(8p 56t86>static convoid href="+code=shmsearidsrdidlass="sref">nstsearidsrdid>(p 311/a>#intic conhref="class="line" namnamvspace" class="sref">ipc_ops" cla1ss="sref">shm_vm_opst/a>1;
idst16/shm.c#L54"10id2.L19" 0class6>sta>)  , p;(sta>) ass="sref">shmkern_tnamciss> *shmtnap>)-& =nhref="+code=ipctnamlocsref">shmkern_tnamcisclass="line" namnamv2"6p 52t62>        conhref="+code=ipc_namunlocklass="sre href="i" clalt;dragos@FS" class1="sref">ode=IPC_SHMt/a>O1ode=I1C_SH.3_idsmroh__iowlass="sref=shm_idsu1nlocklass="sref">shm_ids1unloc16/ipc_namvspace.h" class="f1p;(sh1_ip>)   t;ta href="+code=id1s_idsmiss1lass="sref">shm_idsmiss>1)    16 _idst/a.rw_mutex (writer)d/* Thispathhref="ibyass=k,altyeass="everhm sp at/shm.amis not nes.htarily heldspa  
< class="s1ref">ipc_namvspacet/a> *1idstnamc64amc> *static convoid href="+code=shm_idsnvz.lass="sref">shm_es.htarily heldspa  
<   
fi1ipcarea_structlass="s1ref">16L58"9id2.L6" cet/a> *nst/a>;
        conuct shm2"6p 52t62>        cvmp 59t69>static con shm_file_datat2.L7" 8class="lif  , p;(        conuct shm_file_dathref="+code=file" class="sref">filet/a>) (*(   conurn falruct #i1nclfi16>p 48t/a>        int p 311/a>#intic conhref="+ss="line" namv2.L8">pp 58t88>        conuct <1">shm_fil1e.ht> *vm_it>)   a h1ref="171shm.c#L54"10id2.L19" 0class+code=ns"shplass="sref">shm_ip>)  a href="i"+code=shmt.e" namss="sref">ipc_.e" 2.L7" 8class="lif  , p;(        c9class="line" namv2.L7">9p 57t97>        f  , p;(        cm_namlock>(#ince1ndif 17(p 3413a>
shm_ip>)  a href="iget_serefnst/a>)1-&g h1ef="ipc/shm.c#L54"7id2.L53"7c fiperit  impmore sspa  
shm_ip>)  a href="itask_tg.L3vnta href="+code=itask_tg.L3vnta href="ipc/shm.c#L4currter)>p 37137>
ip1_idsctlmax>    =nhref="+code=alue="22.6.ae22.L599p 50t90>
ip1_idsctlall>    =nhref="+code=s"sref">ode=IPCPRIVATE>)  a href="ipc/shm.c#L58"9id2.L55"9class="line" namv2.L55"9p 55t95>        con  1ref="+cod1e=ids_idsctlmnilass="sre1f">ip1_idsct_idsmroh__iowlass="srefde=ipc cl1ass="sref">nst/a>)-&t;ta1 href17t/a> ns17) rout" ns aclasalled inr sss="line" namv2.L26"1>p 2612a>
" c>(p 19t/a>tspa  class="comments href="ipc - >p2>pc/shmy Bruno H.L31"1>p 31line" namv2.L26"1>p 2612a>
"e=ns"i3l1" class="sref">nst/a>)  1  a h18>p 2luea>tspa  class="comment31line" namv2.L26"1>p 2612a>
"lue="22.1="22.6.ae22.L598p 50t8a>1#in} 1ref="ipc/shm.c#L58"8id2.L51"ent@ns: atic convoiline" namv2.L26"1>p 2612a>
";(t@mv2:hmy Brunto >p2>oiline" namv2.L26"1>p 2612a>
"="+code=1ass="comment"> * Copyall1ed wi1h _idst/a.rw_mutex (writer)d poiline" namv2.L26"1>p 2612a>
"class="s1.L54"8p 54t8a>tspa  clas1s="co1ment"> * MovOnly _idst/a.rw_mu It hasnto ba href="iass="copf="ipsomment"> *//spa  
p 2612a>
"  
p 15t/a>tbut1 id2.Lsiass="copfref="i="i="ip>p2>xpa  
18audit of ipc object propertieis not nes.htarily heldspa  
shmtnap>)1-&g h188ty.ht/
	  1> *priopc>)   a href="ipc/shm.c#L23"8id2.L6" 8class="line" namv2.L6">8p 56t86>static convoid href="+code=shmsearidsrdidlass="sref">nstsearidsrdid>(p 311/a>#intic conhref=""9class="line" namv2.L55"es.htarily heldspa  
ipc1_idid19/shm.c#L54"10id2.L19" 0class="sref">idt_idsrdid_forcec>    =n0a href="ipc/shm.c#L58"7id2.L58"7class="line-=58"9 
  
/opto0id2.L19" 0classPAGE_SHIFt;ta href="+codePAGE_SHIFt>pp 58t88>        conuct <1_idsmissl1ass="sref">shm_idsmiss>)1   a 191shm.c#L54"10id2.L19" 0class+c> a>)  , p;(        c9class="line" namv2.L7">9p 57t97>        "9class="line" namv2.L55"9p 55t95>        con  1  href="+1code=filshplass="sref">s1hm_ip19(ode=IPCPRIVATE>)  a href="ipc/shm.c#L58"9id2.L55"9class="line" namv2.L55"9p 55t95>        con  1s>)  .hre1f="+code=idsm=idlass="sr1ef">s1mm=id>    |=nh id2!23"8id2.L6" 8clas">shm_pc/spageline" namv2.L10">s">shm_pc/spagelpc/shm.c#L58"9id2.L55"9class="line" namv2.L5590>
p 35135>    "line" na1mv2.L53"9p 53t93>       1 con 1   conh  class="comment"> *//s Do not fshm.">ode=IPCPRIVATE>)  a ef">ipc_.e" 2.L7" 8class="li"9class="line" namv2.L5590>

        con  1sclass="s1+code=idskeylass="sref">1ipcke1>)   =nhref="+d cmc#L58"9 
          con  1s  
ode=S_ERR>(ode=IPCPRIVATE>) uset_s"sref">od_.e" 2.L7" 8class="li"9class="line" namv2.L5590>
filet_c#L2on  "9p 54t94>      dopers="sref">priopc>doperson  90>
        cm_v2.Line" namv2.L10">_v2.Lon  ,p 55t95>        con  1sf="+code1">shm_ip>)   a href="ipc1/shm.1#L58"9id2.L6" 9class="""""""""""""""""""""""""""""""""p 57t97>        "9class="line" namv2.L5590>
        con  1sode=ns"t1deuctoy> *< href="+code=1ns" c19/shm.c#L54"1 id2.L17"  classfpu.c#L58"7id2.L58"fpu.shm.chm.c#L58"9id2.L55"9class="line" namv2.L5590>
ipc_idid_kernel> *p2>69>static con p2>pc/shm.c#L58"9id2.L55"9class="line" namv2.L55"9p 55t95>        con  2class="li2e" namv2.L8">9p 58t98>#i2} hre20/shm.c#L54"10id2.L19" 0class6>stacu_pu.e" n, p;(stacu_pu.e" pc/shm.c#L58"9id2.L55"9class="line" namv2.L55"9p 55t95>        con  2cc#L20" id" namv2.L10">pp 50>pp>#i2clfin20_SH.3_idsmroh__iowlass="sre2 href="+c2de=ipc_namvspace" class=2sref"20/ipc_namvspace.h" class="f2code=ns" 2lass="sref">nst/a>)-&g h2ef="i20ss="line" namv2.L52"8p 52t8ss="line" namv2.L26"1>p 2612a>2ns2/a>) 20 _idst/a.rw_mutex (writer)d pes"srmayref="ipc - idopeif"ipcwhetherm sp segiterm sould ba ef="ipc="in="+cline" namv2.L26"1>p 2612a>2<5 href="2ccode=idskeylass="sref">2PC_SH20r to mm/shmem.c, Christoph Rohland <cr@sap.com>t/sp2t/rlass="2ref">ipc_nacst/r>(p 15t/a>tRid2.Lsiarimc#L5="ipo shm#L5t id2.
c/shmegiterm="ihland <cr@sap.com>t/sp2tv2.L26">p15">05 50>p5>#in} href="2pc/sh20audit of ipc object propertiesonent">c/shfollowingpatharim:hland <cr@sap.com>t/sp2tine" namvL16">06 50>p6>#incendif 2ref="20 * Dustin Kirkland <dustin.kirkland@us.ibm.com>t/sp2code=id"_2t.htlass="sref">ipc_mt.h2>    20) rout" ns aclasalled inr shmp1) gt;ctl(id, 58"1RMID, NULL) wathhref="iss="thispmv2.Lrtt/spa  
(p 19t/a>tspa  class="commen.Lrtt/spa  
p 2luea>tspa  class="comment"2) gysctl 1"1>p .e=shm_idmv2.L7"pathseunto 1pportt/spa  
( * Pavel Emelianov <xemul@openvz.org>t/spa 1">p1 50>2a>        conurn fal0a h2ef="i2c/shm.t/
	  16.34.8static con 8p 56t86>static convoid href="+code=shmsearidsrdidlass="sref">nstsearidsrdid>(p 311/a>#intic conhref=""9class="line" namv2.L55"es.htarily heldspa  
2s="line" 2amv2.L12">>p 121/a>tsp} 2ref="2pc/shmcode=ipc_namvsmt.htlas2relt.htca2llass="sref">ipcpurelt.h2call>21c/shm.c#L58"1 id2.L28"9 
  ipc_namvsmt.ht>(ode=S_ERR>(        c9class="line" namv2.L7"c_SHMNI>;
pp 5||ode=ipc_namvsmt.htlas2rv2.L26">pshm_mt.htlass="sref">ipc2mt.ht21L58"9id2.L6" 9class="8"9 
          con     conhref="+code=ipcsref"plass="sref">shm_ip>)  t;ta href="+code=ids_idsmissp="+code=shm_ids" class=2ss="sref"2shm_filt.ht> *nst/a>)  , href="2aerf" cla2s="sref">ipc_namt.ht_mro2_ >p 1911a>#incle h2ef="+22">p 19t/a>tspa  class="commss="line" namv2.L26"1>p 2612a>2rnattchnn2uidr  gidr cuidr cgidr  2  c c22>p 2luea>tspa  class="comment"remov>pc/shat/shm ef=cripts="vmapportt/spa  
p2>pmemoryass=hmegiterm#L5itpathmari="ief="ipc="pportt/spa  
p1 50>2     c cmer     d cmer  2  c c22ss="line" namv2.L52"8p 52t8a>tThe ef=cripts="hasnalndrey baen"remov>ip>pompc/shrurrter90>

p2>()"pportt/spa  
 * MovOnly _idst/a.rw_mutex remains locked on exitspa2">shm_ipc2sh__idsmroh__iow>(priopc>)   a href="ipc/shm.c#L58"6id2.L6" cclass="line" namv2.L6">pp 56t66>static convoid href="+code=shm_idsclosclass="sref">ipc_iins locked on exitspa2"v2.L26">pamv2.L25"1>p 25125>#in} 2ref="22   href="+code=ipc_filt.htl2nst/a>;
nst/a>;
        conuct shm2"6p 52t62>        cvmp 59t69>static con  * /pr_idslock2(chec22>p 48t/a>        int shm_file_datat2.L7" 8class="lif  , p;(        conuct shm_file_dathref="+code=file" class="sref">filet/a>) (*(   conurn falruct ipc_namvspacet/a> *p 311/a>#intic conhref="+ss="line" namv2.L8">pp 58t88>        conuct <2a href="i2c/shm.c#L21"1 id2.L30"1 2lass=231>ipc_namvspacet/a> *8p 56t86>static convoid href="+code=shmsearidsrdidlass="sref">ns3>        conuct         c9class="line" namv2.L7"58t88>        conuct <2annnnnnns2t/a> *idt/a>;
shmkern_tnamciss> *shmtnap>)-& =nhref="+code=ipctnaml"9p 52t92>      > *//spa=nhref="+code=i1 class="l(*(   conurn falruct (at/shmesnt">c/shmsp segitermutex remains locked on exitspa2code=shm 2lass="sref">idt/a>;
)  a href="i"+code=shmt.e" namss="sref">ipc_.e" 2.L7" 8class="l9class="line" namv2.L7">9p 57t97>        f  , p;(        cm_namlock>(    =nhref="+code=BUG_ONnamlock>(p 3413a>
ipc23idsctlmni>    =nhref="+code= fiperit  impmore sspa  
shm_ip>)  a href="itask_tg.L3vnta href="+code=itask_tg.L3vnta href="ipc/shm.c#L4currter)>p 37137>
shmtnap>)-&a 2ref="23/shm.c#L54"1 id2.L17"  class fiperit  impmore sspa  
shm_ip>)  a href="iget_serefipc_idid_kernel> *s90>
ipc_namvspa#L58"9 
  9p 57t97>        con     conhref="+code=ip=href="i" clalt;dragos22 href="i2href="../orm 
	opta /opn2x/sec241>ipc_namvspaidid_kernel> *9p 57t97>        con     conhref="+code=ipcshdsdeuctoylass="sref21t/a>#inc2lude <linu2x/ipc_namvspace.ht/a>>2;
    |=nhref="+conel> *ode=IPCPRIVATE>)  a href="ipc/shm.c#L58"9id2.L55"9class="line" namv2.L55"9p 55t95>        con  2cess.h|in2clude/asm-x86_64/uaccess2.h|in24, href="+code=shmsearidsrdidup_
shmkern_tnamciss> *shmtnap>)-& =nhref="+code=ipctnaml"9p 52t92>      > *//spa=nhref="+code=i1 class="l(*(   conurn falruct asm/uaccess.ht/a>>2;
p 45t/2a>#in2lude "util.ht/a>"2;
 *//spa f="i="iutex remains locked on exitspa2l=ns"tnap2e" namv2.L47">p 47t/a>st2ruct 24c/shm.c#L58"10id2.L17" 0class="7clasryref="ipc_currter)>p 37137>
(ipc_namvspacet/a> *8p 56t86>static convoid href="+code=shmsearidsrdidlass="sref">ns3>        conuct ipc_namvspacet/a> *p 32132>
p 33133>        conuct <9class="line" napnamv   conurn falruct #inc2uct" class="sref">vm_ope2ran v25.c#L48"1 id2.cet/a> *p 311/a>#intic conhref="+ss="line" namv2.L8">pp hm_ip>)  a href="ipc/shm.c#L58"8id2.L59"8class="line" namv2.L59"8p 59t89>        conhref="+code=ipcshplass="sref">shm_ip>)   =nhref="+code=ipctentainer_oflass="sref">shmtentainer_of>(shmtnap>)-&,ruct vm_opst/a>;
2)   t;ta href="+code=id2class="li2ne" namv2.L52">p 52t/a>}2;
 creatot href!m_ip>)  a href="ipurrter)>p 37137>
filet/a2>)-&g25c/shm.c#L58"111111111=shmt.ht_"namvslass="sref">ipc2a" class=2"sref">private_datat/a>)2)
fi2le_operan vast/a> p 2612a>2truct" cl2ass="sref">vm_operan vas2_stru25 * Dustin Kirkland <dustiiiiiiiii* MarkT>)  s orphan="itoief="ipc>c/shmegitermwh)a hline" namv2.L26"1>p 2612a>2t shm_des2ss="sref">shm_vm_opst/a>2;
p .e=shm_idmv2.L7"pathchang="pportt/spa  
idst26">p 19t/a>tspa  class="commeiiiiiiii* Itpaths opm#L5t ihfollowingpahmpmayref="ipc()1 id2.Lsiarimpportt/spa  
ode=IPC_SHMt/a>O2ode=I26>p 2luea>tspa  class="commeniiiiiiii*tex remains locked on exitspa2=shm_idsu2nlocklass="sref">shm_ids2unloc26( creatot hrefm_ip>)  a href="iNULLa href="+code=iNULLnamv   conurn falruct sh2_ip>)   t;ta href="+code=id2s_idsmiss2lass="sref">shm_idsmiss>2)    26f="ipc/shm.c#L/a.rw_mutex (writer)d/*ex remains locked on exitspa2=ode=shm 2ref">ipc_namvspacet/a> *2 * MovOnly _idst/a.rw_miiiiiiii* Don't"eveniaryitoief="ipc>it.  If e=shm_idmv2.L7"=0e="ip58"1RMIDex remains locked on exitspa2=" class=2ff="ipc/shm.c#L15" id2.L25
p 15t/aiiiiiiii* aths whset,T>)  souldn't"ba eflet7"p id2pportt/spa  
fi2ipcarea_structlass="s2ref">26audit of ipc object propertiiiiiiiii*tex remains locked on exitspa2=ruct" cl2ode=ipc_idid_kernellass=2"sref26f="ipc/shm.c# id2!23"8id2.L6" 8cl9class="line" namv2.L7"c_SHMNI>;
pp =  t;ta href="+code=id2 ops" cla2e" namv2.L58"6p 58t6a>#i2nclfi26>p 48t/a>    11111111=shmt.ht_"namvslass="sref">ipc2">shm_fil2e.ht> *vm_it>)   a h2ref="27ef="ipc/shm.c#L58"9 
  9p 57t97>        con     conhref="+code=ip= code=ipc_namvsmt.htlas2alue="22.26.ae22.L597p 50t7a>#ince2ndif 27  t;ta href="+code=ids_idsnattchlass="> ass="by_ptta href="+code=if"> ass="by_ptt_.e" m.c#L58"9id2.L55"9class="line" namv2.L55"9p 55t95>        con  2a;( *9p 57t97>        con     conhref="+code=ipcshdsdeuctoylass="sref2f="+code=2ns" class="sref">nst/a>)2-&g h2ef="ipc/shm.c#_idsmroh__iowlass="sre2aclass="s2e=ids_idsctlmaxlass="sre2f">ip27c/shm.c#L58"1 id2.L2t_"namvslass="sref">ipc2"" class=2e=ids_idsctlalllass="sre2f">ip27ef="i_idsmroh__iowlass="sre2ref="+cod2e=ids_idsctlmnilass="sre2f">ip27did_kernel> *nst/a>)-&t;ta2 href27 * Dustin Kirkland <dustsstspa  class="ns90>
<"tnapla(ns)"> *//spa f="i="iutex remains locked on exitspa2    conhr2ef="+code=ipc class="sre2f">ns27) rou.c#L58"10id2.L17" 0class="7clasryref="ipc_orphan=")>p 37137>
(p 1code=ipc_namvsmt.htlas2"e=ns"i3l2" class="sref">nst/a>)  2  a h281>ipc_namvspacet/a> *8p 56t86>static convoid href="+code=shmsearidsrdidlass="sref">ns3>        conuct 2#in} 28.c#L48"1 id2.cet/a> *p 32132>
p 33133>        conuct <9class="line" napnamv   conurn falruct p 311/a>#intic conhref="+ss="line" namv2.L8">pp hm_ip>)  a href="ipc/shm.c#L58"8id2.L59"8class="line" namv2.L59"8p 59t89>        conhref="+code=ipcshplass="sref">shm_ip>)   =nhref="+code=ipctentainer_oflass="sref">shmtentainer_of>(shmtnap>)-&,ruct  * Copyall2ed wi28="sref">nst/a>)   , href="2"class="s2.L54"8p 54t8a>tspa  clas2s="co28idsctlmax>    /a.rw_mutex (writer)d/*ex remains locked on exitspa2"  
p 15t/aiiiiiiii* We wantitoief="ipc>megitersiass=out usetsn="ipwis="alndreyex remains locked on exitspa2"ef="+cod2=ipckern_tnamcisslass="s2ref">28audit of ipc object propertiiiiiiiii* c>
<'="iorigin#L5ng nnnhesspportt/spa  
shmtnap>)2-&g h28 * Dustin Kirkland <dustiiiiiiiii*portt/spa  

<* 
)'spmafeitoiskip"copff="i5ngpportt/spa  
ipc2_idid29">p 19t/a>tspa  class="commeiiiiiiii*tex remains locked on exitspa2_idsmissl2ass="sref">shm_idsmiss>)2   a 29ef="ipc/shm.c#L58"9 
   creatot href!m_ip>)  a href="iNULLa href="+code=iNULLnamv=href="i" clalt;dragos2  href="+2code=filshplass="sref">s2hm_ip29  t;ta href="+code=id id2.L2t_"namvslass="sref">ipc2s>)  .hre2f="+code=idsm=idlass="sr2ef">s29ip>)   t;ta href="+code=id2"line" na2mv2.L53"9p 53t93>       2 con 29, href="+code#L58"9 
  9p 57t97>        con     conhref="+code=ip= code=ipc_namvsmt.htlas2sclass="s2+code=idskeylass="sref">2ipcke29c/shm.c#L58"111111111s_idsnattchlass="> ass="by_ptta href="+code=if"> ass="by_ptt_.e" m.c#L58"9id2.L55"9class="line" namv2.L55"9p 55t95>        con  2s  
ode=S_ERR>(9p 57t97>        con     conhref="+code=ipcshdsdeuctoylass="sref2sf="+code2">shm_ip>)   a href="ipc2/shm.2#L58"9id2.L6" _idsmroh__iowlass="sre2sode=ns"t2deuctoy> *< href="+code=2ns" c29c/shm.c#L58"1 id2.L2t_"namvslass="sref">ipc2s   conhr2ff="ipc/shm.c#L18" id2.L28"sre29ost" onsubmit="return false3class="li3e" namv2.L8">9p 58t98>#i3} hre30ta /optop href="../orm 
	o3cc#L20" i3" namv2.L10">pp 50>pp>#i3clfin30_SH.3> *p 37137>
8p 56t86>static convoid href="+code=shmsearidsrdidlass="sref">ns=href="i" clalt;dragos3 href="+c3de=ipc_namvspace" class=3sref"30sref">nst/a>)-&,r nst/a>)-&g h3ef="i30/shm.c#L54"10id2.L12" 0classdown_
shmkern_tnamciss> *shmtnap>)-& =nhref="+code=ipctnaml"9p 52t92>      > *//spa=nhref="+code=i1 class="l(*(   conurn falruct ns3/a>) 30, href="+code#L58"9 
  shmtnap>)-& =nhref="+code=ipctnaml"9p 52t92>      in_usemv2.L6">8p 56t86n_use">ns=href="i" clalt;dragos3 5 href="3ccode=idskeylass="sref">3PC_SH30c/shm.c#L58"111111111s_idsnattchlassidrmv2._eaid2.L51"9class="lidrmv2._eaid_dathsref">shmkern_tnamciss> *shmtnap>)-& =nhref="+code=ipctnaml"9p 52t92>      lalsaplta href="+code=ilalsaplt.L7">9sref">shmkern_tnamciss> sryref="ipc_orphan=")>p 37137>
    =nhref="+code=up_
shmkern_tnamciss> *shmtnap>)-& =nhref="+code=ipctnaml"9p 52t92>      > *//spa=nhref="+code=i1 class="l(*(   conurn falruct 315">05 50>p5>#in} href="3pc/sh30idsct_idsmroh__iowlass="sre3tine" nam3L16">06 50>p6>#incendif 3ref="30t/a> ipc_mt.h3>    30f="ipc/shm.c#L58"9id2.L8" 3class="li3c_namvsmt.ht>(p 1> *
<_s"sss="scet/a> *pp 5task_"line"oid href="+code=shmsetask namv2.L6">pp 5task">ns=href="i" clalt;dragos3cc#L20" i322.L20" class="line" nam32lfin31>p 2l>nst/a>)-&,r ( *8p 56t86>static convoid href="+code=shmsearidsrdidlass="sref">ns3>        conuct pp 5task">ns2"6p 52t62>        c9cnnnx        con} els9cnnnx ">ns2"6p 52t62>        c6>staline" namv2.L10">>stalnamv   conurn falruct p1 50>3a>        conurn fal0a h3ef="i31ip>)   t;ta href="+code=id3s="line" 3amv2.L12">>p 121/a>tsp} 3ref="31, href="+code#L58"9 
  shmtnap>)-& =nhref="+code=ipctnaml"9p 52t92>      in_usemv2.L6">8p 56t86n_use">ns == 0)  t;ta href="+code=id3s5 href="3llass="sref">ipcpurelt.h3call>31c/shm.c#L58"111111111=shmt.   conurn falruct ipc_namvsmt.ht>(3shm_mt.htlass="sref">ipc3mt.ht31idsctlmni>    t/a>tspa  class="commss Df="ipc>allnalndrey created>megiters,tbut1s whmapped>yermutex remains locked on exitspa3ss="sref"3shm_filt.ht> *shmkern_tnamciss> *shmtnap>)-& =nhref="+code=ipctnaml"9p 52t92>      > *//spa=nhref="+code=i1 class="l(*(   conurn falruct ipc_namt.ht_mro3_ shmtnap>)-& =nhref="+code=ipctnaml"9p 52t92>      in_usemv2.L6">8p 56t86n_use">ns)  t;ta href="+code=id3line" nam32.L19">>p 1911a>#incle h3ef="+320/shm.c#L58"111111111s_idsnattchlassidrmv2._eaid2.L51"9class="lidrmv2._eaid_dathsref">shmkern_tnamciss> *shmtnap>)-& =nhref="+code=ipctnaml"9p 52t92>      lalsaplta href="+code=ilalsaplt.L7">9sref">shmkern_tnamciss> sryref="ipc_currter)>p 37137>
9p 57t97>       & =nhref="+code=ipctnaml   conurn falruct shmkern_tnamciss> *shmtnap>)-& =nhref="+code=ipctnaml"9p 52t92>      > *//spa=nhref="+code=i1 class="l(*(   conurn falruct p1 50>3     c cmer     d cmer  3  c c32ip>)   t;ta href="+code=id3s="line" 3p\not; *pp 56t66>static convoid href="+code=shm_idsclosclass="sref">ipc_ss="sref">shm_ip>)   =nhvlafaulr)>p 37137>
ns)  t;ta href="+code=id3l5 href="3C_SHMt/a>Ood, href="+cod3=shm_32ent">>nst/a>)-&,r shm_ipc3sh__idsmroh__iow>(nst/a>;
        conuct shm2"6p 52t62>        cvmp 59t69>static con 3amv2.L25"1>p 25125>#in} 3ref="32L58"9id2.L6" cet/a> *shm_file_datat2.L7" 8class="lif  , p;(        conuct shm_file_dathref="+code=file" class="sref">filet/a>) (*(   conurn falruct   * /pr_idslock3(chec32>p 48t/a>     id2.L27"1 class="line f  , p;(        cv*        cfaulr)>p 37137>
ipc_sshref="+code=shm_i8"8id2.L59"8clas_i8">ns)   conurn falruct ipc_idsmroh__iowlass="sre3a href="i3c/shm.c#L21"1 id2.L30"1 3lass=33f="ipc/shm.c#L58"8 
   *p1 50>3lass="sref">idt/a>;
 *pp 56t66>static convoid href="+code=shm_idsclosclass="sref">ipc_ss="sref">shm_ip>)   =nhmempolic        con} elsmempolic oid href="+code=shmseaew=nhref="+code=ipew">ns)  t;ta href="+code=id3i="line" 3idst/a>(idt/a>;
nst/a>;
        conuct shm2"6p 52t62>        cvmp 59t69>static con    cet/a> *shm_file_datat2.L7" 8class="lif  , p;(        conuct shm_file_dathref="+code=file" class="sref">filet/a>) (*(   conurn falruct ipc33idsctlmni>   10id2.L17" 0class="erta href="+code=iertine"3> t_"namvslass="sref">ipc3e=ns"tnap3ass="sref">shmtnap>)-&a 3ref="33f="ipc/shm.c# id27"1 class="line f  , p;(        cv*        cset_polic        con} elseet_polic ss=")  t;ta href="+code=id3ia  class3' by `struct vm_area3thod=33>p 48t/a>    111111112.L17" 0class="erta href="+code=iertine"3> 7"1 class="line f  , p;(        cv*        cset_polic        con} elseet_polic ss="shref="+code=shm_idsclosclass="sref">ipc_sshref="+code=shmaew=nhref="+code=ipew">ns)_"namvslass="sref">ipc32	opt/for3 
	opta /optop href="../3rm 
	34">ipc_namvspa id2.L27"1 class="lineerta href="+code=iertine"_"namvslass="sref">ipc32 href="i3href="../orm 
	opta /opn3x/sec34_SH.3_idsmroh__iowlass="sre31t/a>#inc3lude <linu3x/ipc_namvspace.ht/a>>3;
shm_ip>)   =nhmempolic        con} elsmempolic oid href="+code=shmseref"get_polic        con} else hrget_polic ss="scet/a> *pp 56t66>static convoid href="+code=shm_idsclosclass="sref">ipc_snamvspace.h" class="f3r="line" 3clude/asm-x86_64/uaccess3.h|in34, href="+codeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeunsign="ilong *asm/uaccess.ht/a>>3;
>nst/a>)-&,r p 45t/3a>#in34idsctlall>   cet/a> *nst/a>;
        conuct shm2"6p 52t62>        cvmp 59t69>static con util.ht/a>"3;
 *shm_file_datat2.L7" 8class="lif  , p;(        conuct shm_file_dathref="+code=file" class="sref">filet/a>) (*(   conurn falruct p 47t/a>st3ruct 34f="ipc/shm.c#L54"8id2.L7" 8class="lmempolic        con} elsmempolic oid href="+code=shmsepo class="line" napo shm.cm_ip>)  a href="iNULLa href="+code=iNULLnamv   conurn falruct ipc_namvspa id27"1 class="line f  , p;(        cv*        cget_polic        con} elsget_polic ss=")  t;ta href="+code=id3      str3uct ipc_namvspaidid_kernel> *)  a href="i f  , p;(        cv*        cget_polic        con} elsget_polic ss="shref="+code=shm_idsclosclass="sref">ipc_sshref="+code=shmadlta href="+code=iadltss=")   conurn falruct #inc3uct" class="sref">vm_ope3ran v35(shm2"6p 52t62>        cvmppolic        con} elsvmppolic ss=")  t;ta href="+code=id3 ef">linu3lass="sref">vm_opst/a>;
3    |=nhref="+conel> *)  a href="ihm_idsnvz.lass="sref">shm2"6p 52t62>        cvmppolic        con} elsvmppolic ss="   conurn falruct p 52t/a>}3;
nst/a>)   , href="3code=shm 3le" class="sref">filet/a3>)-&g35c/shm.c#L58"1 id2.L2nel> *private_datat/a>)3)
fi3le_operan vast/a> vm_operan vas3_stru35t/a> shm_vm_opst/a>3;
nst/a>;
nst/a>;
shm_ip>)   =nhvlalass="line" namv2.L6">pp 56t66>static convoid _ip>)  a href="ihm_idsnvz.lass="sref">shm)  t;ta href="+code=id3;ta href=3"+code=ids" class="sref"3>idst36">p 1code=ipc_namvsmt.htlas3;     str3="sref">ode=IPC_SHMt/a>O3ode=I361>ipc_namvspacet/a> *shm_file_datat2.L7" 8class="lif  , p;(        conuct shm_file_dathref="+code=file" class="sref">filet/a>) (*(   conurn falruct shm_ids3unloc36(sh3_ip>)   t;ta href="+code=id3s_idsmiss3lass="sref">shm_idsmiss>3)    36f="ipc/shm.c#L.L17" 0class=" id=nhref="+code=i1etshm.cm_ip>)  a href="i f  , p;(        c" class="sref">filet/a>) (*90>
)  a href="i f  , p;(        c" class="sref">filet/a>) (*sshref="+code=shm_i_idsnvz.lass="sref">shm)   conurn falruct ipc_namvspacet/a> *3ode=S_ERR>( *fi3ipcarea_structlass="s3ref">36idsctlmni>    =nhref="+code= f  , p;(        cv*)  a href="ihm_idsnvz.lass="sref">shm2"6p 52t62>        cvmpa  =nhref="+code=iv*)   t;ta href="+code=id3s shm_des3e" namv2.L58"6p 58t6a>#i3nclfi36>ipc_idid_kernel> *        cv*        cfaulr)>p 37137>
shm_fil3e.ht> *vm_it>)   a h3ref="371shm.c#L54"10id2.L19" 0classhm_idsnvz.lass="sref">shm2"6p 52t62>        cvmpa  =nhref="+code=iv*shmkern_tnamciss> vmpa  =nhref="+code=iss> vmpa  ine"   conurn falruct  a enss="shref="+code=shm_idsclosclass="sref">ipc_)   conurn falruct nst/a>)3-&g h3ef="ipc/shm.c# id2.L2nel> *ip37c/sh__idsmroh__iowlass="sre3"" class=3e=ids_idsctlalllass="sre3f">ip37ude "ip37did_k.c#L58"10id2.L17" 0class="7clarelealass="sref">priopc>) relealass="scet/a> *shm_ip>)   =nh=ns" class="sref">nst/a>;
nst/a>)-&t;ta3 href37 * Ducode=ipc_namvsmt.htlas3    conhr3ef="+code=ipc class="sre3f">ns37>p 48t/a>        int shm_file_datat2.L7" 8class="lif  , p;(        conuct shm_file_dathref="+code=file" class="sref">filet/a>) (*(   conurn falruct (nst/a>)  3  a h381shm.c#L54"10id2.L19" 0classput_6>staline" namv2.L10"put_6>stalss="sip>)  a href="i f  , p;(        c& =nhref="+code=ipctnaml   conurn falruct 3#in} 38(shm_file_dathref="+code=file" class="sref">filet/a>) (*(cm_ip>)  a href="iNULLa href="+code=iNULLnamv   conurn falruct )  a href="ik>p2>69>static con p2>pc/shm.c#L58"9id2.L55f  , p;( * Copyall3ed wi38f="ipc/shm.c# id2.L2t_"namvslass="sref">ipc3"class="s3.L54"8p 54t8a>tspa  clas3s="co38c/sh__idsmroh__iowlass="sre3"  
38did_k.c#L58"10id2.L17" 0class="7clafsync_data" class="sref">syncss="scet/a> *nst/a>;
        c" class="sref">filet/a>) (*sshref="+code=shmloff_d=nhref="+code=iloff_d>;
;
910id2.L17" 0class="filesync_data" class="sfilesyncine")  t;ta href="+code=id3code=ns"t3naplass="sref">shmtnap>)3-&g h38 * Ducode=ipc_namvsmt.htlas3c   conhr3code=ipc_idid_kernellass3="sre38>p 48t/a>        int shm_file_datat2.L7" 8class="lif  , p;(        conuct shm_file_dathref="+code=file" class="sref">filet/a>) (*(   conurn falruct ipc3_idid39ta /optop href="../orm 
	o3_idsmissl3ass="sref">shm_idsmiss>)3   a 39ef="ipc/shm.c#L58!23"8id2.L6" 8cl f  , p;(        c" class="sref">filet/a>) (*90>
s3hm_ip39  t;ta href="+code=id id2.L2-a href="ipc/shmEINVALa href="+code=iEINVALnamv   conurn falruct )  .hre3f="+code=idsm=idlass="sr3ef">s393="ipc/shm.c# id2.L223"8id2.L6" 8cl f  , p;(        c" class="sref">filet/a>) (*90>
)  a href="i f  , p;(        c" class="sref">filet/a>) (*sshref="+code=shm7tarr)>p 37137>
92.L17" 0class="filesync_data" class="sfilesyncine")   conurn falruct        3 con 39, hre_idsmroh__iowlass="sre3sclass="s3+code=idskeylass="sref">3ipcke39c/shmidsmroh__iowlass="sre3s  
nst/a>;
        c" class="sref">filet/a>) (*ss10id2.L17" 0class="  con     conhref="+code=ipsshref="+code=shmloff_d=nhref="+code=iloff_d>;
shm_ip>)   a href="ipc3/shm.39L58"9id2.L6" 9class="""""""""""href="+code=shmloff_d=nhref="+code=iloff_d>;
 *< href="+code=3ns" c39 * Ducode=ipc_namvsmt.htlas3s   conhr3ff="ipc/shm.c#L18" id2.L38"sre39>p 48t/a>        int shm_file_datat2.L7" 8class="lif  , p;(        conuct shm_file_dathref="+code=file" class="sref">filet/a>) (*(   conurn falruct 9p 58t98>#i4} hre40ta /optop href="../orm 
	o4cc#L20" i4" namv2.L10">pp 50>pp>#i4clfin40ef="ipc/shm.c#L58!23"8id2.L6" 8cl f  , p;(        c" class="sref">filet/a>) (*90>
nst/a>)-&g h4ef="i403="ipc/shm.c# id2.L223"8id2.L6" 8cl f  , p;(        c" class="sref">filet/a>) (*90>
filet/a>) (*sshref="+code=shm  con     conhref="+code=ipsshref="+code=shmoffsid=nhref="+code=ioffside=ipsa2.L17" 0class="len=nhref="+code=ilenss=")   conurn falruct        4/a>) 40, hre_idsmroh__iowlass="sre4 5 href="4ccode=idskeylass="sref">4PC_SH40c/shmidsmroh__iowlass="sre4<6 href="4c="+code=ipcshdsunlockla4ef="i40_opea_structunsign="ilong *stss="scet/a> *nst/a>;
        c" class="sref">filet/a>) (*sidsmroh__iowlass="sre4<7 href="4c>shm_ip>)   a href="ipc4pc/sh40L58"9id2.L6" unsign="ilong * *< href="+code=4ref="40858"9id2.L6" unsign="ilong *    40ef="+code=ipc_namvsmt.htlas4class="li4c_namvsmt.ht>(ipc_namvspacet/a> *shm_file_datat2.L7" 8class="lif  , p;(        conuct shm_file_dathref="+code=file" class="sref">filet/a>) (*(   conurn falruct         c" class="sref">filet/a>) (*90>
st_data" class="sget_unmapped66>stss="sip>)  a href="i f  , p;(        c" class="sref">filet/a>) (*sshref="+code=shmadlta href="+code=iadltss=", *        conurn fal0a h4ef="i41ip>) _idsmroh__iowlass="sre4s="line" 4amv2.L12">>p 121/a>tsp} 4ref="41="sref">nst/a>)   , href="4s5 href="4llass="sref">ipcpurelt.h4call>41c/shm_structconsts="sref">shm_ip>)   =nh=ns" a ertruo& =nhref="+code=i=ns" a ertruo& >;
shm_a ertruo& =nhref="+code=i7ef">shm_a ertruo& ine"3> code=ipc_namvsmt.htlas4c6 href="4f">ipc_namvsmt.ht>(ode=S_ERR>("9p 52t92>      mmap_data" class="smmapss="ddddddddddd>        conuct ipc4mt.ht41idsctlmni>   "9p 52t92>      fsync_data" class="sfsyncine"dddddddddd>        conuct syncss=",  conurn falruct       >elealass="sref">prioprelealass="dddddddd>        conuct priopc>) relealass=",  conurn falruct ipc_namt.ht_mro4_ )   t;ta href="+code=id4line" nam42.L19">>p 1911a>#incle h4ef="+420/shm.c#L58"1"9p 52t92>      get_unmapped66>st_data" class="sget_unmapped66>stss="dddddd>        conuct st_data" class="sref"get_unmapped66>stss=",  conurn falruct       llseek namv2.L6">pp 5llseekine"ddddddddd>        conuct pp 5s op_llseekss=",  conurn falruct    "9p 52t92>      falloca hn     conhref="falloca hss="dddddd>        conuct Ood, href="+cod4=shm_42c/shmidsmroh__iowlass="sre4">shm_ipc4sh__idsmroh__iow>(shm_ip>)   =nh=ns" a ertruo& =nhref="+code=i=ns" a ertruo& >;
shm_a ertruo& _hughn     conhref="7clafshm_a ertruo& _hughine"3> code=ipc_namvsmt.htlas4"v2.L26">4amv2.L25"1>p 25125>#in} 4ref="42idsctlmni>   "9p 52t92>      mmap_data" class="smmapss="ddddddddddd>        conuct       fsync_data" class="sfsyncine"dddddddddd>        conuct syncss=",  conurn falruct  * /pr_idslock4(chec42>p 48t/a>    "9p 52t92>      >elealass="sref">prioprelealass="dddddddd>        conuct priopc>) relealass=",  conurn falruct       get_unmapped66>st_data" class="sget_unmapped66>stss="dddddd>        conuct st_data" class="sref"get_unmapped66>stss=",  conurn falruct       llseek namv2.L6">pp 5llseekine"ddddddddd>        conuct pp 5s op_llseekss=",  conurn falruct  *      falloca hn     conhref="falloca hss="dddddd>        conuct p1 50>4lass="sref">idt/a>;
(nst/a>)   , href="4code=shm 4lass="sref">idt/a>;
safshm_7clahughpagelss="scet/a> *nst/a>;
        c" class="sref">filet/a>) (*)  t;ta href="+code=id4    conif4 href="+code=filIS_ERRla4s="sr43idsctcode=ipc_namvsmt.htlas4ef="+code4shm_fiid_kernellass="sre4">ipc43idsctlmni>    id2.L223"8id2.L6" 8cl" class="sref">filet/a>) (*90>
shmkern_tnamciss> >shm_a ertruo& _hughn     conhref="7clafshm_a ertruo& _hughine"   conurn falruct shmtnap>)-&a 4ref="43f="ip_idsmroh__iowlass="sre4ia  class4' by `struct vm_area4thod=43f="ipc/shm.c#L58"9id2.L8" 42	opt/for4 
	opta /optop href="../4rm 
	44">ipc_structconsts="sref">shm_ip>)   =nhvmpa ertruo& _"line" namv2.L6">pp 56t6a ertruo& _"line">;
 vmpa  ine"3> code=ipc_namvsmt.htlas42 href="i4href="../orm 
	opta /opn4x/sec441/shm.c#L58"1"9p 52t92>      a en=nhref="+code=ia enss="ddd>        conuct  a enss=",L58"1 t/a>tspa  class="commss callback for a new vm-6>st a enmutex remains locked on exitspa41t/a>#inc4lude <      clolass="sref">priopclola/shm.c>        conuct priopineeclolass=",L58" t/a>tspa  class="commss callback for wh)a5t ihvm-6>st is releala"iutex remains locked on exitspa4ref">linu4x/ipc_namvspace.ht/a>>4;
   "9p 52t92>      faulr)>p 37137>
p 37137>
)  a href="iCONFIG_NUMA"8id2.L59"8clasCONFIG_NUMA="ip)  t;ta href="+code=id4code=shm 4lt">asm/uaccess.ht/a>>4;
   "9p 52t92>      set_polic        con} elseet_polic ss="d>        conuct p 45t/4a>#in44">ode=S_ERR>("9p 52t92>      get_polic        con} elsget_polic ss="d>        conuct util.ht/a>"4;
p 47t/a>st4ruct 44f="ip}   conurn falruct p 19t/a>tspa  class="comm/**portt/spa  
ipc9t/a>tspa  class="comme* newseg - Create a new sh6>sd memorc>megiterportt/spa  
vm_ope4ran v45(tspa  class="comme* @ns:">vm_ convoirtt/spa  
linu4lass="sref">vm_opst/a>;
49t/a>tspa  class="comme* @params:"ptritoit ih"line"ureit at s="lines key, sizen="ipipcflgoirtt/spa  
p 52t/a>}4;
filet/a4>)-&g45c/shm9t/a>tspa  class="comme* spa  class="stnapla"> *//spa held as a 
private_datat/a>)4)
p 15t/autex remains locked on exitspa4"sref">fi4le_operan vast/a> vm_operan vas4_stru45t/a> .c#L58"10id2.L17" 0class="newseg namv2.L6">pp 5sewsegss="scet/a> *8p 56t86>static convoid href="+code=shmsearidsrdidlass="sref">nsss="sref">shm_ip>)   =nh6>stparamsmv2.L6">8p 56t86>stparamsoid href="+code=shmseparamsmv2.L6">8p 56t8paramsoid )  t;ta href="+code=id4t shm_des4ss="sref">shm_vm_opst/a>4;
idst460/shm.c#L58"1ef="+code=shmsekey_d=nhref="+code=ikey_d>;
        conuct 8p 56t8paramsoid 90>
ode=IPC_SHMt/a>O4ode=I461>ipc_namvspa10id2.L17" 0class="7clflg       con} else hflgoi="d>        conuct 8p 56t8paramsoid 90>
#inc4nlocklass="sref">shm_ids4unloc46(;
        conuct 8p 56t8paramsoid 90>
8p 56t8uoid "9p 52t92>      size=nhref="+code=isizeoi="   conurn falruct linu4f="+code=filshplass="sre4f">sh463>ipc_namvspa10id2.L17" 0class="errota href="+code=ierrotoi="   conurn falruct shm_idsmiss>4)    46f="ipc/shm.c#id2.L32"1 class="line"1 id2.L31"1 class="line" namv2.L31"1>p 311/a>#intic conhref="+ss="line" namv2.L8">pp    conurn falruct ipc_namvspacet/a> *4
<0>
pp    conurn falruct    cet/a> *nst/a>;
nst/a>;
<   conurn falruct fi4ipcarea_structlass="s4ref">46idsctlmni>   ch6>d2.L17" 0class="nassine" namv2.L10"nassdsct[13]   conurn falruct p 37137>
;
<   conurn falruct #i4nclfi46>ipc_idid_kernel> *;
ipc4">shm_fil4e.ht> *vm_it>)   a h4ref="47ef="ipc/shm.c#L58ip>)  a href="i ize=nhref="+code=isizeoi="d&l

ns90>
#ince4ndif 47  t;ta href="+code=id id2.L2-a href="ipc/shmEINVALa href="+code=iEINVALnamv   conurn falruct nst/a>)4-&g h4ef="ipc/shm.c##L58ip>)  a href="iaridsrdidlass="sref">ns90>
ns90>
ip47c/shm.c#L58"111111111=shmt.2-a href="ipc/shmENOSPCa href="+code=iENOSPCnamv   conurn falruct ip47ude "ip47idsctlmni>    =nhref="+code= +ss="line" namv2.L8">pp d>        conuct <6>strcu_allocmv2.L6">8p 56t86>strcu_allocss="scizeof(>#intic conhref="+ss="line" namv2.L8">pp ))   conurn falruct nst/a>)-&t;ta4 href47f="ipc/shm.c# id2!23"8id2.L6" 8cl +ss="line" namv2.L8">pp )  conurn falruct ns47>p 48t/a>    11111111=shmt.2-a href="ipc/shmENOMEMa href="+code=iENOMEMnamv   conurn falruct (nst/a>)  4  a h481shm.c#L54"10id2.L19" 0class +ss="line" namv2.L8">pp 90>
      key=nhref="+code=ikeyss="d>        conuct 4#in} 48(pp 90>
        con     conhref="+code=ipd> sip>)  a href="i clflg       con} else hflgoi="dsref"d2.L17" 0class="S_IRWXUGOnamlock>(pp )   conurn falruct )  a href="is"ss="line" namv2.L8">pp 90>
        conuct  * Copyall4ed wi48="sref">nst/a>)   , href="4"class="s4.L54"8p 54t8a>tspa  clas4s="co485pp 90>
      securit        con} elseecurit ss="d>        conuct     =nhref="+code=errota href="+code=ierrotoi="d>        conuct 8p 56t8iecurit _7claallocss="sip>)  a href="i +ss="line" namv2.L8">pp )   conurn falruct 487="ipc/shm.c# id2 =nhref="+code=errota href="+code=ierrotoi=") code=ipc_namvsmt.htlas4code=ns"t4naplass="sref">shmtnap>)4-&g h488p 48t/a>    11111111       conuct <6>strcu_putode=v2.L6">8p 56t86>strcu_putodess="sip>)  a href="i +ss="line" namv2.L8">pp )   conurn falruct p 48t/a>    11111111=shmt.22.L17" 0class="errota href="+code=ierrotoi="   conurn falruct ipc4_idid490/shm.c#L58"1_idsmroh__iowlass="sre4_idsmissl4ass="sref">shm_idsmiss>)4   a 49f="ipc/shm.c#L58"8 
  s4hm_ip49(8p 56t8spr 0ie)  a href="iaassine" namv2.L10"nassdsct," t/a>tspa  clstr 0g">"SYSV%08x"ex remas *)  .hre4f="+code=idsm=idlass="sr4ef">s493="ipc/shm.c##L58"9 
         4 con 49, href="+codeeeeeeeee t/a>tspa  class="commss hughtlbafshm_7shmp applies cetict account 0gautex remains locked on exitspa4sclass="s4+code=idskeylass="sref">4ipcke49c/shm.c#L58"111111111#L58"9 
  pp )  conurn falruct ode=S_ERR>(pp    conurn falruct shm_ip>)   a href="ipc4/shm.49L58"9id2.L6" 9class="*nst/a>;
 de=ns"shplass="hughtlbafshm_7shmp class="sref">nhughtlbafshm_7shmpss="sip>)  a href="iaassine" namv2.L10"nassdsct,"0sshref="+code=shm7ize=nhref="+code=isizeoi="sshref="+code=shmacct lag=nhref="+code=iacct lagoi=",  conurn falruct  *< href="+code=4ns" c498p 48t/a>    11111111111111111111111111sref">shmkern_tnamcissss="line" namv2.L8">pp 90>
p 48t/a>    1111111111111111111111118"9 
  9p 58t98>#i5} hre500/shm.c#L58"1_od cmacode=ipc_namvsmt.htlas5cc#L20" i5" namv2.L10">pp 50>pp>#i5clfin50ef="ipc/shm.c9class="*t/a>tspa  class="commssex remains locked on exitspa5 href="+c5de=ipc_namvspace" class=5sref"50(tspa  class="commeeeeeeeeeeeeeeeee* Do not allow no account 0gafor OVERCOMMIT_NEVER, evenss remains locked on exitspa5 3ref="+c5d="+code=idsm=idlass="sr5ef="i50m=id>9t/a>tspa  class="commeeeeeeeeeeeeeeeee* #L5it's askedaforpportt/spa  
       5/a>) 50="sre9t/a>tspa  class="commeeeeeeeeeeeeeeeee*tex remains locked on exitspa5 5 href="5ccode=idskeylass="sref">5PC_SH50c/shm.c#L58"111111111#L5 (8"9 
  pp )dsref"sref"ins locked on exitspa5 6 href="5c="+code=ipcshdsunlockla5ef="i50">ode=S_ERR>(ode=!> de=ns"shplass="OVERCOMMIT_NEVER       con} elsOVERCOMMIT_NEVER>pp )  conurn falruct pp    conurn falruct     11111111       conuct <=ns" class="sref">nst/a>;
 de=ns"shplass="ct emafshm_7shmp class="sref">nct emafshm_7shmpss="sip>)  a href="iaassine" namv2.L10"nassdsct,"href="+code=shm7ize=nhref="+code=isizeoi="sshref="+code=shmacct lag=nhref="+code=iacct lagoi=")   conurn falruct     50>p 48t/a>    _idsmroh__iowlass="sre5class="li5c_namvsmt.ht>(        conuct filet/a>) (*(   conurn falruct filet/a>) (*()  conurn falruct         conurn fal0a h5ef="i51ip>)   t;ta href="+code=id5s="line" 5amv2.L12">>p 121/a>tsp} 5ref="51f="ipc/shm.c#L.L17" 0class="i")>p 37137>
;
        conuct <6>staddi")>p 37137>
staddi"ss="ssref">shmkern_tnamciss> id =nhref="+code=iss> id ss="sip>)  a href="ia =nhref="+code=ipctnaml,1sref">shmkern_tnamcissss="line" namv2.L8">pp 90>
ns90>
ipcpurelt.h5call>51c/shm.c#L58"1 id27"1 class="linei")>p 37137>
;
ipc_namvsmt.ht>(ode=S_ERR>(        conuct p 37137>
;
<   conurn falruct ipc5mt.ht51L58"9id2.L6" 9class="goto        conuct p 37137>
;
<   conurn falruct ipc_namt.ht_mro5_ >p 1911a>#incle h5ef="+520/shm.c#L58"1ef="+code=shmsessss="line" namv2.L8">pp 90>
p 37137>
)  a href="icurr"com href="+code=icurr"co) (*(   conurn falruct pp 90>
p 37137>
ipc5snnnnnnns5ap\not;pp 90>
;
 de=ns"shplass="ctss="line" namv2.L8">pp 90>
;
 t_"namvslass="sref">ipc5sode=ns" 5     c cmer     d cmer  5  c c52/shm.c#L54"1 ip>)  a href="is"ss="line" namv2.L8">pp 90>
;
 de=ns"shplass="get_second =nhref="+code=iget_second ss="s(   conurn falruct pp 90>
;
 de=ns"shplass="cize=nhref="+code=isizeoi="   conurn falruct pp 90>
;
 t_"namvslass="sref">ipc5s6 href="5sh__idsmroh__iow>(pp 90>
nst/a>;
<   conurn falruct 5amv2.L25"1>p 25125>#in} 5ref="52idsctlmni>    =nhref="+code= +ss="line" namv2.L8">pp 90>
;
 de=ns"shplass="curr"com href="+code=icurr"co) (*   conurn falruct tspa  class="commssex remains locked on exitspa5pa  class5"comment"> * /pr_idslock5(chec52>p 489t/a>tspa  class="commeeeeeeeee* mv2.L gets reported as "inoco#" in /proc/pid/mapspportt/spa  
p 19t/a>tspa  class="commeeeeeeeee* proc-ps tools useit is. Chang 0gat is will breakit impportt/spa  
ipc9t/a>tspa  class="commeeeeeeeee*tex remains locked on exitspa5annnnnnns5t/a> *filet/a>) (*90>


;
 de=ns"shplass="ctss="line" namv2.L8">pp 90>
      i")>p 37137>
;
<   conurn falruct p1 50>5lass="sref">idt/a>;
(ns90>
        conuct idt/a>;
        conuct pp 90>
      i")>p 37137>
;
<   conurn falruct     =nhref="+code=s"m_unlock=nhref="+code=i.c#Lunlockss="sip>)  a href="i +ss="line" namv2.L8">pp )   conurn falruct ipc53idsctlmni>    id2.L223"8id2.L6" 8clerrota href="+code=ierrotoi="   conurn falruct shmtnap>)-&a 5ref="53t/a> p 37137>
;
<:safshm_hughpagelss="sip>)  a href="i" class="sref">filet/a>) (*(dsref"sref" ip>)  a href="is"ss="line" namv2.L8">pp 90>
)  a href="i ize=nhref="+code=isizeoi="sshref="+code=shms"ss="line" namv2.L8">pp 90>
#inc5lude <p 37137>
filet/a>) (*(   conurn falruct linu5x/ipc_namvspace.ht/a>>5;
static con pp :)  a href="i +ss="line" namv2.L8">pp )   conurn falruct asm/uaccess.ht/a>>5;
8p 56t86>strcu_putodess="sip>)  a href="i +ss="line" namv2.L8">pp )   conurn falruct p 45t/5a>#in54">ode=S_ERR>( id2.L223"8id2.L6" 8clerrota href="+code=ierrotoi="   conurn falruct util.ht/a>"5;
p 47t/a>st5ruct 54t/a> p 489t/a>tspa  class="commssex remains locked on exitspa5a href="+5code=ipc_namvspace" clas5s="sr55">p 19t/a>tspa  class="comme* spa  class="stnapla"> *//spa ="ip onp lockedpportt/spa  
ipc9t/a>tspa  class="comme*tex remains locked on exitspa5 t/a>#inc5uct" class="sref">vm_ope5ran v55(8p 56t86n"sre>ode=10id2.L17" 0class="7clasecurit        con} elseclasecurit ss="scet/a> *_6>stpers=nhref="+code=i1"1>_6>stpers>ode=>#intic conhref= onp=v2.L6">8p 56t86>spss=",a10id2.L17" 0class="7clflg       con} else hflgoi=")  conurn falruct linu5lass="sref">vm_opst/a>;
5code=ipc_namvsmt.htlas5 ="line" 5ne" namv2.L52">p 52t/a>}5;
p 311/a>#intic conhref="+ss="line" namv2.L8">pp    conurn falruct filet/a5>)-&g55c/shmidsmroh__iowlass="sre5 " class=5"sref">private_datat/a>)5)
    =nhref="+code=s"ss="line" namv2.L8">pp a> de=ns"shplass="c="lineet_oe=v2.L6">8p 56t8c="lineet_oess="sip>)  a href="i onp=v2.L6">8p 56t86>spss=",aid2.L32"1 class="line"1 id2.L31"1 class="line" namv2.L31"1>p 311/sshref="+code=shms"#Lpers=nhref="+code=i.c#Lpersoid )   conurn falruct fi5le_operan vast/a> )  a href="i +ss="line" namv2.L8">pp sshref="+code=shms"#flg       con} else hflgoi=")   conurn falruct vm_operan vas5_stru55f="ip_idsmroh__iowlass="sre5t shm_des5ss="sref">shm_vm_opst/a>5;
idst56">p 19t/a>tspa  class="comm/*ex remains locked on exitspa5;     str5="sref">ode=IPC_SHMt/a>O5ode=I561>ipc9t/a>tspa  class="comme* spa  class="stnapla"> *//spa ="ip onp lockedpportt/spa  
shm_ids5unloc56(tspa  class="comme*tex remains locked on exitspa5;ef">linu5f="+code=filshplass="sre5f">sh563>ipc.c#L58"de=ns"shplass="6n"sref"2.L6">8p 56t86n"sre>ode=10id2.L17" 0class="7clamore_check =nhref="+code=iss> more_check ss="scet/a> *_6>stpers=nhref="+code=i1"1>_6>stpers>ode=>#intic conhref= onp=v2.L6">8p 56t86>spss=",ins locked on exitspa5;="line" 5lass="sref">shm_idsmiss>5)    56, href="+codeeeeeeeeeeeeeeeeeeeeeeeee="sref">shm_ip>)   =nh6>stparamsmv2.L6">8p 56t86>stparamsoid href="+code=shmseparamsmv2.L6">8p 56t8paramsoid )  t;ta href="+code=id5;ode=shm 5ref">ipc_namvspacet/a> *5   cet/a> *p 311/a>#intic conhref="+ss="line" namv2.L8">pp    conurn falruct fi5ipcarea_structlass="s5ref">56did_kernel> *pp a> de=ns"shplass="c="lineet_oe=v2.L6">8p 56t8c="lineet_oess="sip>)  a href="i onp=v2.L6">8p 56t86>spss=",aid2.L32"1 class="line"1 id2.L31"1 class="line" namv2.L31"1>p 311/sshref="+code=shms"#Lpers=nhref="+code=i.c#Lpersoid )   conurn falruct #i5nclfi56>ipc_idid_ker#L58"9 
  pp 90>
;
8p 56t8paramsoid 90>
8p 56t8uoid "9p 52t92>      size=nhref="+code=isizeoi=")  t;ta href="+code=id5">shm_fil5e.ht> *vm_it>)   a h5ref="57f="ipc/shm.c#L58"8 
  #ince5ndif 57  t;ta href=" id2.L2t_"namvslass="sref">ipc5";(nst/a>)5-&g h57="sref">nst/a>)   , href="5aode=shm 5e=ids_idsctlmaxlass="sre5f">ip57c/shma href="ipc/shmSYSCALL_DEFINE3a href="+code=iSYSCALL_DEFINE3ss="sip>)  a href="i +mgid=nhref="+code=i +mgid311/sshref="+code=shmkey_d=nhref="+code=ikey_d>;
;
<,"href="+code=shm7ize=nhref="+code=isizeoi="ss10isshref="+code=shms"#flg       con} else hflgoi=")f">nst/a>)   , href="5a" class=5e=ids_idsctlalllass="sre5f">ip57idsctcode=ipc_namvsmt.htlas5ref="+cod5e=ids_idsctlmnilass="sre5f">ip57idsctlmni>   cet/a> *8p 56t86>static convoid href="+code=shmsearidsrdidlass="sref">ns_"namvslass="sref">ipc5"=ns"tnap5ass="sref">nst/a>)-&t;ta5 href57f="ipc/shm.c#cet/a> * a  ="ip_"namvslass="sref">ipc5" shm_des5ef="+code=ipc class="sre5f">ns57>p 48t/a>    ="sref">shm_ip>)   =nh6>stparamsmv2.L6">8p 56t86>stparamsoid hhref="+code=shms"#Lparamsmv2.L6">8p 56t8s"#Lparams="ip_"namvslass="sref">ipc5" c>(nst/a>)  5  a h581shm.c#L54"10id2.L19" 0classaridsrdidlass="sref">nsa> de=ns"shplass="curr"com href="+code=icurr"co) (*90>

8p 56t86>stef">ns_"namvslass="sref">ipc5"lue="22.5="22.6.ae22.L598p 50t8a>5#in} 58(ipc5";()  a href="is"#La  =nhref="+code=iss> a  ="ip"9p 52t92>      getnew=nhref="+code=igetnew">nsa> de=ns"shplass="newseg namv2.L6">pp 5sewsegss="_"namvslass="sref">ipc5"="+code=5ass="comment"> * Copyall5ed wi58f="ipc/shm.c#L.L17" 0class="s"#La  =nhref="+code=iss> a  ="ip"9p 52t92>      associa hn     conhref="associa hss="d>        conuct ipc5"ode=shm 5.L54"8p 54t8a>tspa  clas5s="co585 a  ="ip"9p 52t92>      more_check =nhref="+code=imore_check ss="d>        conuct ipc5"" class=5f="ipc/shm.c#L21"8id2.L555"8cl58ude "58idsctlmni>    =nhref="+code= +#Lparamsmv2.L6">8p 56t8s"#Lparams="ip"9p 52t92>      key=nhref="+code=ikeyss="d>        conuct shmtnap>)5-&g h588/shm.c#L58"1 =nhref="+code=s"#Lparamsmv2.L6">8p 56t8s"#Lparams="ip"9p 52t92>      flg       con} elsflgoi="d>        conuct ipc_idid_kernel> *8p 56t8s"#Lparams="ip"9p 52t92>      umv2.L6">8p 56t8uoid "9p 52t92>      size=nhref="+code=isizeoi="a> de=ns"shplass="cize=nhref="+code=isizeoi="   conurn falruct ipc5_idid59ta /optop href="../orm 
	o5_idsmissl5ass="sref">shm_idsmiss>)5   a 591="ipc/shm.c# id2.L223"8id2.L6" 8cl"..gid=nhref="+code=i"..gidss="sip>)  a href="iaridsrdidlass="sref">nssssref">shmkern_tnamciss> id =nhref="+code=iss> id ss="sip>)  a href="ia =nhref="+code=ipctnaml,1sref">shmkern_tnamciss#La  =nhref="+code=iss> a  ="ip,1sref">shmkern_tnamciss#Lparamsmv2.L6">8p 56t8s"#Lparams="ip)   conurn falruct s5hm_ip59(s59ip>)   t;ta href="+code=id5s="+code=5mv2.L53"9p 53t93>       5 con 59, hre.c#L58"de=ns"shplass="6n"sref"2.L6">8p 56t86n"sre>ode=unsign="ilong *8p 56t8buess=",aid2.L32"1 class="line"1 id264_d =nhref="+code=iss>d264_d >ode=>#intic conhref= n=nhref="+code=iinss=",a10id2.L17" 0class="version=nhref="+code=iversionoi=")f">nst/a>)   , href="5sclass="s5+code=idskeylass="sref">5ipcke59c/shmcode=ipc_namvsmt.htlas5s  
ode=S_ERR>(switchsip>)  a href="iversion=nhref="+code=iversionoi=") code=ipc_namvsmt.htlas5sef="+cod5">shm_ip>)   a href="ipc5/shm.59L58"9id2.L6" cased2.L17" 0class="IPC_lass="sref"code=iIPC_la58"9: *< href="+code=5ns" c598p 48t/a>    11111111 id2.L223"8id2.L6" 8clcop _to_useta href="+code=icop _to_usetss="sef="+code=shmsebue=v2.L6">8p 56t8buess=",a#intic conhref= n=nhref="+code=iinss=",acizeof(>#intic conhref= n=nhref="+code=iinss="))   conurn falruct p 48t/a>    cased2.L17" 0class="IPC_OLDss="sref"code=iIPC_OLD58"9:9p 58t98>#i6} hre600 href="+codeeeeecode=ipc_namvsmt.htlas6cc#L20" i6" namv2.L10">pp 50>pp>#i6clfin60ef="ipc/shm.c9class="id2.L32"1 class="line"1 id2.d =nhref="+code=iss>d2_d >ode="1 class="line"our)>p 37137>
ipc6 3ref="+c6d="+code=idsm=idlass="sr6ef="i603f="ipc/shm.c9class="9p 52t92>      memsid=nhref="+code=imemsidss="ssref">shmkern_tnamciour)>p 37137>
shmkern_tnamciour)>p 37137>
       6/a>) 60, href="+codeeeeeeeee 3"8id2.L6" 8cl"..64_pers_to_6>stpers=nhref="+code=i"..64_pers_to_6>stpersss="ssref">shmkern_tnamci n=nhref="+code=iinss="90>
shmkern_tnamciour)>p 37137>
      s"#Lpers=nhref="+code=i.c#Lpersoid )   conurn falruct 6PC_SH60c/shm.c#L58"111111111>shmkern_tnamciour)>p 37137>
      s"#Lsegsz=nhref="+code=i.c#Lsegsz>;
        conuct < n=nhref="+code=iinss="90>
;
<   conurn falruct ode=S_ERR>(shmkern_tnamciour)>p 37137>
      s"#Latist69>static con <.c#Latist>;
        conuct < n=nhref="+code=iinss="90>
shm_ip>)   a href="ipc6pc/sh60L58"9id2.L6" 9class=">shmkern_tnamciour)>p 37137>
      s"#Ldtist69>static con <.c#Ldtist>;
        conuct < n=nhref="+code=iinss="90>
 *< href="+code=6ref="608p 48t/a>    11111111       conuct p 37137>
      s"#Lctist69>static con <.c#Lctist>;
        conuct < n=nhref="+code=iinss="90>
    60>p 48t/a>    11111111       conuct p 37137>
      s"#Lcpi")>p 37137>

p 37137>
(p 37137>
      s"#Llpi")>p 37137>

p 37137>
      s"#Lnattch=nhref="+code=i.c#Lnattch>;
        conuct < n=nhref="+code=iinss="90>
;
<   conurn falruct ipc6code=ns" 6a>        conurn fal0a h6ef="i613f="ipc/shm.c9class=" id2.L223"8id2.L6" 8clcop _to_useta href="+code=icop _to_usetss="sef="+code=shmsebue=v2.L6">8p 56t8buess=",asref">shmkern_tnamciour)>p 37137>
shmkern_tnamciour)>p 37137>
>p 121/a>tsp} 6ref="61, href="+codeeeee_idsmroh__iowlass="sre6c5 href="6llass="sref">ipcpurelt.h6call>61c/shm.c#L58"1defaulr:ipc_namvsmt.ht>(ode=S_ERR>(ipc6mt.ht61L58"9id2.L6" _idsmroh__iowlass="sre6c8 href="6shm_filt.ht> *ipc_namt.ht_mro6_ >p 1911a>#incle h6ef="+62">ipc_structde=ns"shplass="6n"sref"2.L6">8p 56t86n"sre>ode=unsign="ilongc/shm.c#L58"9id2.L8" 6lc#L20" i6uidr  gidr cuidr cgidr  6  c c621shm.*d264_d >ode=>#intic conhref=our)>p 37137>
8p 56t8buess=",a10id2.L17" 0class="version=nhref="+code=iversionoi=")f">nst/a>)   , href="6snnnnnnns6ap\not;)  a href="iversion=nhref="+code=iversionoi=") code=ipc_namvsmt.htlas6r="line" 6p\not;Ood, href="+cod6=shm_62c/shm.c#L58"111111111#L58"9 
  p 37137>
8p 56t8buess=",aiizeof(>#intic conhref=our)>p 37137>
nst/a>)   , href="6s6 href="6sh__idsmroh__iow>(ode=S_ERR>(6amv2.L25"1>p 25125>#in} 6ref="62L58"9id2.L6" 9class=" id2.L2t_"namvslass="sref">ipc6"8 href="6pc/shm.c#L47"1 id2.L27"16class62/shm.c#L54"1 cased2.L17" 0class="IPC_OLDss="sref"code=iIPC_OLD58"9: * /pr_idslock6(chec62>p 48t/a>    1111code=ipc_namvsmt.htlas6id2.L19" 6class="line" namv2.L29"16p 291630 href="+codeeeeeeeeeid2.L32"1 class="line"1 id2.d =nhref="+code=iss>d2_d >ode="1 class="line"tbue_ol")>p 37137>
 *shmkern_tnamcitbue_ol")>p 37137>
8p 56t8buess=",aiizeof(>shmkern_tnamcitbue_ol")>p 37137>
nst/a>)   , href="6a">p1 50>6lass="sref">idt/a>;
(nst/a>)   , href="6a5 href="6lass="sref">idt/a>;
shmkern_tnamciour)>p 37137>

      ui")>p 37137>
p 37137>
      s"#Lpers=nhref="+code=i.c#Lpersoid "9p 52t92>      ui")>p 37137>
ode=S_ERR>(shmkern_tnamciour)>p 37137>

      gi")>p 37137>
p 37137>
      s"#Lpers=nhref="+code=i.c#Lpersoid "9p 52t92>      gi")>p 37137>
6shm_fiid_kernellass="sre6">ipc63L58"9id2.L6" 9class=">shmkern_tnamciour)>p 37137>

        con     conhref="+code=ipddd ad>        conuct p 37137>
      s"#Lpers=nhref="+code=i.c#Lpersoid "9p 52t92>        con     conhref="+code=ip   conurn falruct shmtnap>)-&a 6ref="63t/a> ipc62	opt/for6 
	opta /optop href="../6rm 
	640 href="+codeeeee_idsmroh__iowlass="sre62 href="i6href="../orm 
	opta /opn6x/sec64ef="ipc/shm.cdefaulr:linu6x/ipc_namvspace.ht/a>>6;
asm/uaccess.ht/a>>6;
p 45t/6a>#in64">ode.c#L58"de=ns"shplass="6n"sref"2.L6">8p 56t86n"sre>ode=unsign="ilong *8p 56t8buess=",aid2.L32"1 class="line"1 idnfolass="sref"code=i1 idnfolass="dref="+code=shmse n=nhref="+code=iinss=",a10id2.L17" 0class="version=nhref="+code=iversionoi=")f">nst/a>)   , href="6rf="+code6s="fref">util.ht/a>"6;
p 47t/a>st6ruct 64f="ipc/shm.c#cwitchsip>)  a href="iversion=nhref="+code=iversionoi=") code=ipc_namvsmt.htlas62 shm_des6d2.L48" class="line" nam6v2.L464>p 48t/a>    cased2.L17" 0class="IPC_lass="sref"code=iIPC_la58"9:8p 56t8buess=",aef="+code=shmse n=nhref="+code=iinss=",acizeof(>#intic conhref= n=nhref="+code=iinss="))   conurn falruct     cased2.L17" 0class="IPC_OLDss="sref"code=iIPC_OLD58"9:vm_ope6ran v65  t;ta href="+codcode=ipc_namvsmt.htlas6 ef">linu6lass="sref">vm_opst/a>;
6ode="1 class="line"our)>p 37137>
p 52t/a>}6;
nst/a>)   , href="6 ode=shm 6le" class="sref">filet/a6>)-&g65c/shm.c#L58"111111111#Lsip>)  a href="i n=nhref="+code=iinss="90>

nst/a>)   , href="6 " class=6"sref">private_datat/a>)6)
ode=S_ERR>(p 37137>
      s"#maa=nhref="+code=i.c#maaoid d>        conuct vm_operan vas6_stru658p 48t/a>    1111111111111111de=ns"shplass="our)>p 37137>
      s"#maa=nhref="+code=i.c#maaoid d> (10i)ip>)  a href="i n=nhref="+code=iinss="90>
shm_vm_opst/a>6;
idst660 href="+codeeeeeeeee       conuct p 37137>
      s"#m n=nhref="+code=is"#m ne=ipddd ad>        conuct < n=nhref="+code=iinss="90>
ode=IPC_SHMt/a>O6ode=I66ef="ipc/shm.c9class="* href="ipc/shmour)>p 37137>
      s"#mni=nhref="+code=i.c#mni) (*ddd ad>        conuct < n=nhref="+code=iinss="90>
#inc6nlocklass="sref">shm_ids6unloc66  t;ta href="+code=id* href="ipc/shmour)>p 37137>
      s"#seg namv2.L6">pp 5s"#seg) (*ddd ad>        conuct < n=nhref="+code=iinss="90>
pp 5s"#seg) (*   conurn falruct linu6f="+code=filshplass="sre6f">sh663f="ipc/shm.c9class="9p 52t92>      our)>p 37137>
      s"#al class="line" namv2al ) (*ddd ad>        conuct < n=nhref="+code=iinss="90>
shm_idsmiss>6)    66="sref">nst/a>)   , href="6;ode=shm 6ref">ipc_namvspacet/a> *68p 56t8buess=",asref">shmkern_tnamciour)>p 37137>
shmkern_tnamciour)>p 37137>
ode=S_ERR>(fi6ipcarea_structlass="s6ref">66L58"9id2.L6" defaulr:    11111111 id2.L2-a href="ipc/shmEINVALa href="+code=iEINVALnamv   conurn falruct #i6nclfi66>p 48t/a>    _idsmroh__iowlass="sre6">shm_fil6e.ht> *vm_it>)   a h6ref="67f="ipc/shm.c#L58"8 
  #ince6ndif 67(tspa  class="comm/*ex remains locked on exitspa6";(nst/a>)6-&g h67="sre9t/a>tspa  class="comme* spa  class="stnapla"> *//spa held as a1 iadetssrtt/spa  
ip67c/shmat/a>tspa  class="comme*tex remains locked on exitspa6a" class=6e=ids_idsctlalllass="sre6f">ip67">ode.c#L58"void * *p 311/a>#intic conhref="+ss="line" namv2.L8">pp ,ins locked on exitspa6ref="+cod6e=ids_idsctlmnilass="sre6f">ip67idsctlmni>   unsign="ilong >#intic conhref=rss_adds="line" namv2.rss_add) (*,"unsign="ilong >#intic conhref=swp_adds="line" namv2.swp_addoi=")f">nst/a>)   , href="6"=ns"tnap6ass="sref">nst/a>)-&t;ta6 href67f="ipcode=ipc_namvsmt.htlas6" shm_des6ef="+code=ipc class="sre6f">ns67>p 48t/a>    ="sref">shm_ip>)   =nh6nocon     conhref="inoco) (*dref="+code=shmse nocon     conhref="inoco) (*   conurn falruct (nst/a>)  6  a h681shm.c#L54"10id2.L19" 0class6nocon     conhref="inoco) (*d>        conuct pp 90>
      d"corc       con} elsd"corc) (*90>
6#in} 68(ipc6";(safshm_hughpagelss="sip>)  a href="iitss="line" namv2.L8">pp 90>
 * Copyall6ed wi68f="ipc/shm.c#t/a>    ="sref">shm_ip>)   =nhaddress_s" namv2.L6">8p 56t8address_s" na) (*dref="+code=shmsemapping namv2.L6">pp 5mapping) (*d>        conuct <6nocon     conhref="inoco) (*90>
pp 5i_mapping) (*   conurn falruct tspa  clas6s="co68c/shm.c#L58"111111111="sref">shm_ip>)   =nhh.c#Lon     conhref="h.c#Lo) (*dref="+code=shmseh=nhref="+code=ih) (*d>        conuct static con pp 90>
ode=S_ERR>(#intic conhref=rss_adds="line" namv2.rss_add) (*d+>        conuct pp 5mapping) (*90>
68idsctlmni>   }"d cm code=ipc_namvsmt.htlas6"=ns"tnap6naplass="sref">shmtnap>)6-&g h688/shm#ifdef ef="+code=shmseCONFIG_SHMEMine" namv2.L10"CONFIG_SHMEMipc6" shm_des6code=ipc_idid_kernellass6="sre68>p 48t/a>    11111111cet/a> *        conuct )  a href="i6nocon     conhref="inoco) (*)   conurn falruct ipc6_idid690 href="+codeeeeeeeee       conuct shmkern_tnamci nfoss="sref"code=idnfo) (*90>
shm_idsmiss>)6   a 69ef="ipc/shm.c9class=">#intic conhref=rss_adds="line" namv2.rss_add) (*d+>        conuct <6nocon     conhref="inoco) (*90>
pp 5i_mapping) (*90>
s6hm_ip69  t;ta href="+code=id>#intic conhref=swp_adds="line" namv2.swp_addoi="d+>        conuct <6nfoss="sref"code=idnfo) (*90>
s693f="ipc/shm.c9class="9p 52t92>      .pin_unlock=nhref="+code=i.pin_unlockss="ssref">shmkern_tnamci nfoss="sref"code=idnfo) (*90>
       6 con 69, hre#d cm  conurn falruct 6ipcke69c/shm.c#L58"111111111>#intic conhref=rss_adds="line" namv2.rss_add) (*d+>        conuct <6nocon     conhref="inoco) (*90>
pp 5i_mapping) (*90>
ode#endif  conurn falruct shm_ip>)   a href="ipc6/shm.69L58"9id2.L6" _idsmroh__iowlass="sre6 ode=ns"t6deuctoy> *< href="+code=6ns" c69f="ip_idsmroh__iowlass="sre6  shm_des6ff="ipc/shm.c#L18" id2.L68"sre69f="ipc/shm.c#L58"9id2.L8" 7class="li7e" namv2.L8">9p 58t98>#i7} hre70">p 19t/a>tspa  class="comm/*ex remains locked on exitspa7cc#L20" i7" namv2.L10">pp 50>pp>#i7clfin701>ipc9t/a>tspa  class="comme* spa  class="stnapla"> *//spa held as a1 iadetssrtt/spa  
tspa  class="comme*tex remains locked on exitspa7 3ref="+c7d="+code=idsm=idlass="sr7ef="i703>ipc.c#L58"void * *8p 56t86>static convoid href="+code=shmsearidsrdidlass="sref">ns,"unsign="ilong >#intic conhref=rsss="line" namv2.rss>pp ,ins locked on exitspa7c4de=ns" 7lv2.L53"9p 53t93>       7/a>) 70, href="+codeeeeeeeeeunsign="ilong >#intic conhref=swps="line" namv2.swpoi=")f">nst/a>)   , href="7 5 href="7ccode=idskeylass="sref">7PC_SH70c/shmcode=ipc_namvsmt.htlas7 6 href="7c="+code=ipcshdsunlockla7ef="i70">ode=S_ERR>(10id2.L17" 0class="nextpi")>p 37137>
shm_ip>)   a href="ipc7pc/sh70L58"9id2.L6" 10id2.L17" 0class="tota class="line" natota ">ns,"       conuct <6n_usen     conhref="in_useoi="   conurn falruct      70>p 48t/a>    >#intic conhref=rsss="line" namv2.rss>pp a> t_"namvslass="sref">ipc7class="li7c_namvsmt.ht>(#intic conhref=swps="line" namv2.swpoi="a> t_"namvslass="sref">ipc7cc#L20" i722.L20" class="line" nam72lfin71f="ipc/shm.c#L58"8 
  ( id ss="sip>)  a href="ia =nhref="+code=ipctnaml"9p 52t92>      in_usen     conhref="in_useoi="   conurn falruct         conurn fal0a h7ef="i71ip>)   t;ta href="+code=id7s="line" 7amv2.L12">>p 121/a>tsp} 7ref="71, href="+codeford27"1 class="linetota class="line" natota ">nsa> t,"       conuct p 37137>
nsa&l
p 37137>
ipcpurelt.h7call>71c/shm.c#L58"111111111="sref">shm_ip>)   =nh1"1>_6>stpers=nhref="+code=i1"1>_6>stpers>ode=>#intic conhref= onmv2.L6">8p 56t86>soi="   conurn falruct ipc_namvsmt.ht>(ode=S_ERR>( *p 311/a>#intic conhref="+ss="line" namv2.L8">pp    conurn falruct ipc7mt.ht71did_kernel> * *8p 56t86>soi="d>        conuct <6dr_fin")>p 37137>
shmkern_tnamciineeid =nhref="+code=iss> id ss="sip>)  a href="ia =nhref="+code=ipctnaml"9p 52t92>      ipcs idta href="+code=iipcs idt">ns,"       conuct p 37137>
ipc_namt.ht_mro7_ p 48t/a>    11111111 id27"1 class="lineionmv2.L6">8p 56t86>soi="d>>        conuct nst/a>)   , href="7line" nam72.L19">>p 1911a>#incle h7ef="+720 href="+codeeeeeeeeeeeeeeeeec="linue   conurn falruct pp a> de=ns"shplass="c="lineet_oe=v2.L6">8p 56t8c="lineet_oess="sip>)  a href="i onmv2.L6">8p 56t86>soi=",aid2.L32"1 class="line"1 id2.L31"1 class="line" namv2.L31"1>p 311/sshref="+code=shms"#Lpers=nhref="+code=i.c#Lpersoid )   conurn falruct ipc7sode=ns" 7     c cmer     d cmer  7  c c723f="ipc/shm.c9class="9p 52t92>      .tnaadd_rss_swap=nhref="+code=i.c#Ladd_rss_swapss="s* href="ipc/shms"ss="line" namv2.L8">pp sshref="+code=shmrsss="line" namv2.rss>pp ,"9p 52t92>      .wps="line" namv2.swpoi=")   conurn falruct nst/a>)   , href="7l5 href="7C_SHMt/a>Ood, href="+cod7=shm_72c/shm.c#L58"1111111112.L17" 0class="tota class="line" natota ">ns++   conurn falruct ode=S_ERR>(_idsmroh__iowlass="sre7"v2.L26">7amv2.L25"1>p 25125>#in} 7ref="72idsct_idsmroh__iowlass="sre7"8 href="7pc/shm.c#L47"1 id2.L27"17class72t/a>  * /pr_idslock7(chec72>p 489t/a>tspa  class="commssex remains locked on exitspa7id2.L19" 7class="line" namv2.L29"17p 29173">p 19t/a>tspa  class="comme* This function handles some"stnctl ass=ands which require the > *//spaex remains locked on exitspa7ic#L20" i7c/shm.c#L21"1 id2.L30"1 7lass=731>ipc9t/a>tspa  class="comme* to be held in write +codpportt/spa  
tspa  class="comme* NOTE: no locks must be held, the > *//spa is taken inside this functionpportt/spa  
idt/a>;
( *8p 56t86>static convoid href="+code=shmsearidsrdidlass="sref">ns,"10id2.L17" 0class="7cli")>p 37137>
ns,"10id2.L17" 0class="cm")>p 37137>
pp ,ins locked on exitspa7a5 href="7lass="sref">idt/a>;
 *d2_d >ode="1 class="line"__useta href="+code=i__usetss="dref="+code=shmsebue=v2.L6">8p 56t8buess=",a10id2.L17" 0class="version=nhref="+code=iversionoi=")f">nst/a>)   , href="7i6 href="7 href="+code=filIS_ERRla7s="sr73idsctcode=ipc_namvsmt.htlas7iv2.L26">7shm_fiid_kernellass="sre7">ipc73idsctlmni>   cet/a> *_6>stpers=nhref="+code=i1"1>_6>stpers>ode=>#intic conhref= onp=v2.L6">8p 56t86>spss="   conurn falruct shmtnap>)-&a 7ref="73f="ipc/shm.c#cet/a> *d264_d >ode=*d264ss="   conurn falruct p 48t/a>    ="sref">shm_ip>)   =nh1 id2.L31"1 class="line" namv2.L31"1>p 311/a>#intic conhref="+ss="line" namv2.L8">pp    conurn falruct pp    conurn falruct #inc7lude <p 37137>
pp d>>        conuct linu7x/ipc_namvspace.ht/a>>7;
shmkern_tnamciined264=nhref="+code=iss>d264ss=","ef="+code=shmsebue=v2.L6">8p 56t8buess=",a2.L17" 0class="version=nhref="+code=iversionoi="))f">nst/a>)   , href="72="line" 7clude/asm-x86_64/uaccess7.h|in74, href="+codeeeeeeeeeeeeeeeee id2.L2-a href="ipc/shmEFAULT=nhref="+code=iEFAULTnamv   conurn falruct asm/uaccess.ht/a>>7;
p 45t/7a>#in74ude "util.ht/a>"7;
    =nhref="+code= onp=v2.L6">8p 56t86>spss="d>        conuct <6pcctl_pre_down=nhref="+code=i6pcctl_pre_downss="sip>)  a href="ia =nhref="+code=ipctnamsssref">shmkern_tnamciss> id =nhref="+code=iss> id ss="sip>)  a href="ia =nhref="+code=ipctnaml,12.L17" 0class="7cli")>p 37137>
ns,"2.L17" 0class="cm")>p 37137>
pp ,ins locked on exitspa7l=ns"tnap7e" namv2.L47">p 47t/a>st7ruct 748p 48t/a>    11111111111111111111111sref">shmkern_tnamciined264=nhref="+code=iss>d264ss=""9p 52t92>      s"#Lpers=nhref="+code=i.c#Lpersoid , 0)   conurn falruct ipc_idid_ker#L58"9 
  )  a href="i onp=v2.L6">8p 56t86>spss="))f">nst/a>)   , href="7a href="+7code=ipc_namvspace" clas7s="sr750 href="+codeeeeeeeee id2.L223"8id2.L6" 8clPTR_ERR=nhref="+code=iPTR_ERRss="sip>)  a href="i onp=v2.L6">8p 56t86>spss=")   conurn falruct #inc7uct" class="sref">vm_ope7ran v75(pp a> de=ns"shplass="c="lineet_oe=v2.L6">8p 56t8c="lineet_oess="sip>)  a href="i onp=v2.L6">8p 56t86>spss=",aid2.L32"1 class="line"1 id2.L31"1 class="line" namv2.L31"1>p 311/sshref="+code=shms"#Lpers=nhref="+code=i.c#Lpersoid )   conurnL58"8 
  linu7lass="sref">vm_opst/a>;
7)   t;ta href="+code=id7 ="line" 7ne" namv2.L52">p 52t/a>}7;
pp d>        conuct pp sshref="+code=shmcm")>p 37137>
pp )   conurnL58"8 
  filet/a7>)-&g75c/shm.c#L58"1#L58"9 
  nst/a>)   , href="7a   conif7"sref">private_datat/a>)7)
ode=S_ERR>(      our_unlock=nhref="+code=iour_unlocknamv   conurn falruct p 37137>
pp ) code=ipc_namvsmt.htlas7 =ns"tnap7ass="sref">vm_operan vas7_stru75/shm.c#L54"1 cased2.L17" 0class="IPC_RMIDss="sref"code=iIPC_RMIDshm.:shm_vm_opst/a>7;
p 48t/a>    11111111       conuct p 37137>
)  a href="i onp=v2.L6">8p 56t86>spss=")   conurn falruct idst760 href="+codeeeeeeeeegoto"9p 52t92>      our_up=v2.L6">8p 56t8our_upnamv   conurn falruct ode=IPC_SHMt/a>O7ode=I761p 48t/a>    cased2.L17" 0class="IPC_SET=nhref="+code=iIPC_SEToi=":shm_ids7unloc76  t;ta href="+code=id* href="ipc/shmerta href="+code=iert>pp d>        conuct <6>stupd#LoLpers=nhref="+code=i"..tupd#LoLpersss="ssref">shmkern_tnamciined264=nhref="+code=iss>d264ss=""9p 52t92>      s"#Lpers=nhref="+code=i.c#Lpersoid , ip>)  a href="i onp=v2.L6">8p 56t86>spss=")   conurn falruct linu7f="+code=filshplass="sre7f">sh763f="ipc/shm.c9class="#L58"9 
  nst/a>)   , href="7;="line" 7lass="sref">shm_idsmiss>7)    76, href="+codeeeeeeeeeeeeeeeeegoto"9p 52t92>      our_unlock=nhref="+code=iour_unlocknamv   conurn falruct ipc_namvspacet/a> *7pp 90>
pp d>        conuct ode=S_ERR>(76L58"9id2.L6" defaulr:    11111111* href="ipc/shmerta href="+code=iert>pp d> -a href="ipc/shmEINVALa href="+code=iEINVALnamv   conurn falruct #i7nclfi76>p 48t/a>    _idsmroh__iowlass="sre7">shm_fil7e.ht> *      our_unlock=nhref="+code=iour_unlocknamv:vm_it>)   a h7ref="771shm.c#L54"10id2.L19" 0class.c#Lunlock=nhref="+code=i.c#Lunlockss="s* href="ipc/shms"ss="line" namv2.L8">pp )   conurn falruct 8p 56t8our_upnamv:linu7code=ipc_namvspace" clas7s="sr773shm.c#L54"10id2.L19" 0classup_write=v2.L6">8p 56t8up_writess="ssref">shmkern_tnamciineeid =nhref="+code=iss> id ss="sip>)  a href="ia =nhref="+code=ipctnaml"9p 52t92>      > *//spas="line" namv2.r *//spaexp )   conurn falruct nst/a>)7-&g h77, href="+code id2.L223"8id2.L6" 8clerta href="+code=iert>pp    conurn falruct ip77c/shm_idsmroh__iowlass="sre7"   conif7e=ids_idsctlalllass="sre7f">ip77ude "ip77idsct23"8id2.L6" 8clSYSCALL_DEFINE3a href="+code=iSYSCALL_DEFINE3ss="s* href="ipc/shms"#ctl=nhref="+code=i."#ctlss=",a10i,12.L17" 0class="7cli")>p 37137>
ns,"10i,12.L17" 0class="cm")>p 37137>
pp ,=cet/a> *d2_d >ode="1 class="line"__useta href="+code=i__usetss="dr,"ef="+code=shmsebue=v2.L6">8p 56t8buess=")f">nst/a>)   , href="7"=ns"tnap7ass="sref">nst/a>)-&t;ta7 href77f="ipcode=ipc_namvsmt.htlas7" shm_des7ef="+code=ipc class="sre7f">ns77>p 48t/a>    ="sref">shm_ip>)   =nh1 id2.L31"1 class="line" namv2.L31"1>p 311/a>#intic conhref="+ss="line" namv2.L8">pp    conurn falruct (pp ,a2.L17" 0class="version=nhref="+code=iversionoi="   conurn falruct nst/a>)  7  a h781shm.c#L54"10cet/a> *8p 56t86>static convoid href="+code=shmsearidsrdidlass="sref">ns   conurn falruct 7#in} 78(ipc7";(p 37137>
pp d&l
p 37137>
nsd&l
 * Copyall7ed wi78f="ipc/shm.c#t/a>    * href="ipc/shmerta href="+code=iert>pp d> -a href="ipc/shmEINVALa href="+code=iEINVALnamv   conurn falruct tspa  clas7s="co78c/shm.c#L58"111111111goto"9p 52t92>      our=v2.L6">8p 56t8ournamv   conurn falruct ode=S_ERR>(_idsmroh__iowlass="sre7"ef="+cod7=ipckern_tnamcisslass="s7ref">78did_kernel> *shmtnap>)7-&g h788p 48t/a>    2.L17" 0class="version=nhref="+code=iversionoi="d>        conuct <6>stparse_version=nhref="+code=i6>stparse_versionss="ssref">shmkern_tnamcicm")>p 37137>
pp )   conurnL58"8 
  p 48t/a>    ef="+code=shmsearidsrdidlass="sref">nsa> de=ns"shplass="curr"com>p 37137>
pp 90>
staline" namv2.L10">>stalnamv   conurn falruct ipc7_idid79ta /optop href="../orm 
	o7de=ns"i3l7ass="sref">shm_idsmiss>)7   a 79ef="ipc/shm.ccwitch58"9 
  p 37137>
pp ) c 9t/a>tspa  class="commsse iplonvlass="pro8"10ierfonvl?e*tex remains locked on exitspa7  href="+7code=filshplass="sref">s7hm_ip79  t;ta href="cased2.L17" 0class="IPC_INFO=nhref="+code=iIPC_INFOnamv:s793f="ipc/shm.ccode=ipc_namvsmt.htlas7d="+code=7mv2.L53"9p 53t93>       7 con 79f="ipc/shm.c#t/a>    ="sref">shm_ip>)   =nhs idnfolass="sref"code=i1 idnfolass="d>shm_ip>)   =nhs idnfoss="sref"code=i1 idnfonamv   conurn falruct 7ipcke79c/shmidsmroh__iowlass="sre7 " class=7f="+code=ipcshdsunlockla7ss="s79">ode=S_ERR>(shmkern_tnamcierta href="+code=iert>pp d>        conuct p 37137>
pp )   conurnL58"8 
  shm_ip>)   a href="ipc7/shm.79L58"9id2.L6" 9class="#L58"9 
  nst/a>)   , href="7 ode=ns"t7deuctoy> *< href="+code=7ns" c798p 48t/a>    1111111111111111 id2.L223"8id2.L6" 8clerta href="+code=iert>pp    conurn falruct 9p 58t98>#i8} hre800 href="+codeeeeeeeee       conuct p 37137>
shmkern_tnamciinednfoss="sref"code=i1 idnfonamv, t,"cizeof(>shmkern_tnamciinednfoss="sref"code=i1 idnfonamv))   conurn falruct pp 50>pp>#i8clfin80ef="ipc/shm.c9class="* href="ipc/shms"ednfoss="sref"code=i1 idnfonamv"9p 52t92>      s"#mni=nhref="+code=i.c#mni) (*d>        conuct       s"#seg namv2.L6">pp 5s"#seg) (*d>        conuct ns90>
pp    conurn falruct       s"#maa=nhref="+code=i.c#maaoid d>        conuct ns90>
pp    conurn falruct       .tndnfoss="sref"code=i1 idnfonamv"9p 52t92>      s"#al class="line" namv2al ) (*d>        conuct ns90>
pp    conurn falruct        8/a>) 80="sref">nst/a>)   , href="8 5 href="8ccode=idskeylass="sref">8PC_SH80c/shm.c#L58"111111111* href="ipc/shms"ednfoss="sref"code=i1 idnfonamv"9p 52t92>      s"#m n=nhref="+code=is"#m ne=ipd>        conuct ode=S_ERR>()  a href="icop _7clinfo_to_useta href="+code=icop _7clinfo_to_usetss="58"9 
  8p 56t8buess=",asref">shmkern_tnamciinednfoss="sref"code=i1 idnfonamv, 2.L17" 0class="version=nhref="+code=iversionoi="))f">nst/a>)   , href="8 7 href="8c>shm_ip>)   a href="ipc8pc/sh80L58"9id2.L6" 9class="11111111 id2.L2-a href="ipc/shmEFAULT=nhref="+code=iEFAULTnamv   conurn falruct      80>p 48t/a>    11111111       conuct shmkern_tnamciineeid =nhref="+code=iss> id ss="sip>)  a href="ia =nhref="+code=ipctnaml"9p 52t92>      > *//spas="line" namv2.r *//spaexp )   conurn falruct pp d>        conuct <6>stget_maai")>p 37137>
stget_maai"ss="ssref">shmkern_tnamciineeid =nhref="+code=iss> id ss="sip>)  a href="ia =nhref="+code=ipctnaml)   conurn falruct shmkern_tnamciineeid =nhref="+code=iss> id ss="sip>)  a href="ia =nhref="+code=ipctnaml"9p 52t92>      > *//spas="line" namv2.r *//spaexp )   conurn falruct ipc8code=ns" 8a>        conurn fal0a h8ef="i813f="ipc/shm.c9class="#L8"9 
  nst/a>)   , href="8s="line" 8amv2.L12">>p 121/a>tsp} 8ref="81, href="+codeeeeeeeeeeeeeeeee       conuct ipc8c5 href="8llass="sref">ipcpurelt.h8call>81c/shm.c#L58"111111111goto"9p 52t92>      our=v2.L6">8p 56t8ournamv   conurn falruct ipc_namvsmt.ht>(ode=S_ERR>(_idsmroh__iowlass="sre8c7 href="8shm_mt.htlass="sref">ipc8mt.ht81L58"9id2.L6" cased2.L17" 0class="SHM_INFO=nhref="+code=iSHM_INFOnamv: *ipc_namt.ht_mro8_ p 48t/a>    11111111="sref">shm_ip>)   =nhs i_dnfoss="sref"code=i1 i_dnfo) (*d>shm_ip>)   =nhs i_dnfoss="sref"code=i1 i_dnfo) (*   conurn falruct >p 1911a>#incle h8ef="+82ta /optop href="../orm 
	o8lc#L20" i8uidr  gidr cuidr cgidr  8  c c82ef="ipc/shm.c9class="* href="ipc/shmerta href="+code=iert>pp d>        conuct p 37137>
pp )   conurnL58"8 
  nst/a>)   , href="8sode=ns" 8     c cmer     d cmer  8  c c823f="ipc/shm.c9class=""""""""" id2.L223"8id2.L6" 8clerta href="+code=iert>pp    conurn falruct nst/a>)   , href="8l5 href="8C_SHMt/a>Ood, href="+cod8=shm_82c/shm.c#L58"1111111112.L17" 0class="memseom>p 37137>
shmkern_tnamciine_dnfoss="sref"code=i1 i_dnfo) (*, t,"cizeof(>shmkern_tnamciine_dnfoss="sref"code=i1 i_dnfo) (*l)   conurn falruct ode=S_ERR>(shmkern_tnamcidown_ iad=nhref="+code=idown_ iadss="ssref">shmkern_tnamciineeid =nhref="+code=iss> id ss="sip>)  a href="ia =nhref="+code=ipctnaml"9p 52t92>      > *//spas="line" namv2.r *//spaexp )   conurn falruct 8amv2.L25"1>p 25125>#in} 8ref="82L58"9id2.L6" 9class=">shmkern_tnamciine_dnfoss="sref"code=i1 i_dnfo) (*"9p 52t92>      usedeid =nhref="+code=iusedeid ) (*d>        conuct )  a href="ia =nhref="+code=ipctnaml"9p 52t92>      in_usen     conhref="in_useoi="   conurn falruct     11111111* href="ipc/shmstnaget_sc#L69>static con <.c#Lget_sc#Lss="58"9 
  shmkern_tnamciss> infoss="sref"code=i1 i_dnfo) (*"9p 52t92>      1 i_rsss="line" namv2.1 i_rsstnamsssref">shmkern_tnamciss> infoss="sref"code=i1 i_dnfo) (*"9p 52t92>      1 i_.wps="line" namv2.s i_.wpexp )   conurn falruct  * /pr_idslock8(chec82>p 48t/a>    11111111       conuct  infoss="sref"code=i1 i_dnfo) (*"9p 52t92>      1 i_toL69>static con <.c#LtoL) (*d>        conuct ns90>
      1wap_attemptss="line" namv2.1wap_attempts>pp d> t_"namvslass="sref">ipc8ic#L20" i8c/shm.c#L21"1 id2.L30"1 8lass=83ef="ipc/shm.c9class="* href="ipc/shms"e infoss="sref"code=i1 i_dnfo) (*"9p 52t92>      1wap_successeline" namv2.L10"1wap_successel>pp d> t_"namvslass="sref">ipc8innnnnnns8t/a> *p 37137>
stget_maai"ss="ssref">shmkern_tnamciineeid =nhref="+code=iss> id ss="sip>)  a href="ia =nhref="+code=ipctnaml)   conurn falruct idt/a>;
shmkern_tnamciineeid =nhref="+code=iss> id ss="sip>)  a href="ia =nhref="+code=ipctnaml"9p 52t92>      > *//spas="line" namv2.r *//spaexp )   conurn falruct (8p 56t8buess=",asref">shmkern_tnamciine_dnfoss="sref"code=i1 i_dnfo) (*, cizeof(>shmkern_tnamciine_dnfoss="sref"code=i1 i_dnfo) (*l)) code=ipc_namvsmt.htlas8a5 href="8lass="sref">idt/a>;
pp d> -a href="ipc/shmEFAULT=nhref="+code=iEFAULTnamv   conurn falruct ode=S_ERR>(      our=v2.L6">8p 56t8ournamv   conurn falruct 8shm_fiid_kernellass="sre8">ipc83L58"9id2.L6" 9class="_idsmroh__iowlass="sre8i8 href="8ass="sref">shmtnap>)-&a 8ref="83t/a> pp d>        conuct       our=v2.L6">8p 56t8ournamv   conurn falruct linu8x/ipc_namvspace.ht/a>>8;
asm/uaccess.ht/a>>8;
shm_ip>)   =nhs id264_d =nhref="+code=iss>d264_d >ode=*8p 56t8tbuess="   conurn falruct p 45t/8a>#in84">ode=S_ERR>(8p 56t8resulrss="   conurn falruct 8s="fref">util.ht/a>"8;
 *p 47t/a>st8ruct 848p 48t/a>    11111111#L58"9 
  p 37137>
pp d>>        conuct p 48t/a>    1111111111111111       conuct pp a> de=ns"shplass="1 i_lock=nhref="+code=i.c#Llockss="s* href="ipc/shma =nhref="+code=ipctnamssip>)  a href="iscli")>p 37137>
ns)   conurn falruct )  a href="is"ss="line" namv2.L8">pp )) code=ipc_namvsmt.htlas8      str8uct )  a href="is"ss="line" namv2.L8">pp )   conurn falruct #inc8uct" class="sref">vm_ope8ran v85  t;ta href="+code=idddddddddddddddddgoto"9p 52t92>      our=v2.L6">8p 56t8ournamv   conurn falruct linu8lass="sref">vm_opst/a>;
8p 52t/a>}8;
8p 56t8resulrss="d>        conuct pp 90>
      i")>p 37137>
filet/a8>)-&g85c/shm.c#L58"111111111}"d cm code=ipc_namvsmt.htlas8a   conif8"sref">private_datat/a>)8)
ode=S_ERR>(pp a> de=ns"shplass="1 i_lock_check=nhref="+code=i.c#Llock_checkss="s* href="ipc/shma =nhref="+code=ipctnamssip>)  a href="iscli")>p 37137>
ns)   conurn falruct 8le_operan vast/a> )  a href="is"ss="line" namv2.L8">pp )) code=ipc_namvsmt.htlas8 =ns"tnap8ass="sref">vm_operan vas8_stru858p 48t/a>    111111111111111111111111       conuct )  a href="is"ss="line" namv2.L8">pp )   conurn falruct shm_vm_opst/a>8;
p 48t/a>    111111111111111111111111goto"9p 52t92>      our=v2.L6">8p 56t8ournamv   conurn falruct idst860 href="+codeeeeeeeee11111111}  conurn falruct ode=IPC_SHMt/a>O8ode=I86ef="ipc/shm.c9class="11111111       conuct 8p 56t8resulrss="d> t_"namvslass="sref">ipc8;t/a>#inc8nlocklass="sref">shm_ids8unloc86  t;ta href="+code=id}  conurn falruct linu8f="+code=filshplass="sre8f">sh863f="ipc/shm.c9class="* href="ipc/shmerta href="+code=iert>pp d> -a href="ipc/shmEACCES=nhref="+code=iEACCESnamv   conurn falruct shm_idsmiss>8)    86, href="+codeeeeeeeee id27"1 class="lineionpersline" namv2.L10">>sperslss="s* href="ipc/shma =nhref="+code=ipctnamsssref">shmkern_tnamciinss="line" namv2.L8">pp 90>
)  a href="iS_IRUGO=nhref="+code=iS_IRUGO>pp ))  conurn falruct ipc_namvspacet/a> *8      our_unlock=nhref="+code=iour_unlocknamv   conurn falruct ode=S_ERR>(pp sshref="+code=shmcm")>p 37137>
pp )   conurnL58"8 
  86L58"9id2.L6" 9class="#L58"9 
  nst/a>)   , href="8;=ns"tnap8ode=ipc_idid_kernellass=8"sref868p 48t/a>    1111111111111111goto"9p 52t92>      our_unlock=nhref="+code=iour_unlocknamv   conurn falruct #i8nclfi86>p 48t/a>    11111111       conuct p 37137>
shmkern_tnamcitbue=v2.L6">8p 56t8tbuess=", t,"cizeof(>shmkern_tnamcitbue=v2.L6">8p 56t8tbuess="l)   conurn falruct shm_fil8e.ht> *p _to_alr64tpers=nhref="+code=i1"1>p _to_alr64tpersss="ssref">shmkern_tnamciinss="line" namv2.L8">pp 90>
shmkern_tnamcitbue=v2.L6">8p 56t8tbuess=""9p 52t92>      s"#Lpers=nhref="+code=i.c#Lpersoid )   conurn falruct vm_it>)   a h8ref="87ef="ipc/shm.c9class="* href="ipc/shmtbue=v2.L6">8p 56t8tbuess=""9p 52t92>      s"#Lsegszs="line" namv2.s i_.egszf="ipc>        conuct pp 90>
#inc86.ae22.L597p 50t7a>#ince8ndif 87  t;ta href="+code=id* href="ipc/shmtbue=v2.L6">8p 56t8tbuess=""9p 52t92>      s"#Latimen     conhref="s"#Latimef="ipc>        conuct pp 90>
pp    conurn falruct linu8code=ipc_namvspace" clas8s="sr873f="ipc/shm.c9class="* href="ipc/shmtbue=v2.L6">8p 56t8tbuess=""9p 52t92>      s"#Ldtimen     conhref="s"#Ldtimef="ipc>        conuct pp 90>
pp    conurn falruct nst/a>)8-&g h87, href="+codeeeeeeeee* href="ipc/shmtbue=v2.L6">8p 56t8tbuess=""9p 52t92>      s"#Lctimen     conhref="s"#Lctimef="ipc>        conuct pp 90>
pp    conurn falruct ip87c/shm.c#L58"1111111112.L17" 0class="tbue=v2.L6">8p 56t8tbuess=""9p 52t92>      s"#Lcpi")>p 37137>
        conuct pp 90>
p 37137>
ip87">ode=S_ERR>(8p 56t8tbuess=""9p 52t92>      s"#Llpi")>p 37137>
        conuct pp 90>
p 37137>
ip87L58"9id2.L6" 9class=">shmkern_tnamcitbue=v2.L6">8p 56t8tbuess=""9p 52t92>      s"#Lnattch)>p 37137>
pp 90>
nst/a>)-&t;ta8 href878p 48t/a>    11111111* href="ipc/shmstnaunlock=nhref="+code=i.c#Lunlockss="s* href="ipc/shms"ss="line" namv2.L8">pp )   conurn falruct ns87>p 48t/a>    11111111 i8"9 
  8p 56t8buess=",asref">shmkern_tnamcitbue=v2.L6">8p 56t8tbuess=", >shmkern_tnamciversion=nhref="+code=iversionoi="))f">nst/a>)   , href="8" c>(nst/a>)  8  a h88ef="ipc/shm.c9class="d cm  conurn falruct #inc8="22.6.ae22.L598p 50t8a>8#in} 88  t;ta href="+code=iddddddddd       conuct 8p 56t8resulrss="   conurn falruct       our=v2.L6">8p 56t8ournamv   conurn falruct  * Copyall8ed wi88f="ipc/shm.c#}  conurn falruct tspa  clas8s="co88c/shm.c#L58"1cased2.L17" 0class="SHM_LOCK=nhref="+code=iSHM_LOCK/shm:ode=S_ERR>(cased2.L17" 0class="SHM_UNLOCK=nhref="+code=iSHM_UNLOCK/shm:88L58"9id2.L6" code=ipc_namvsmt.htlas8"=ns"tnap8naplass="sref">shmtnap>)8-&g h888p 48t/a>    11111111="sref">shm_ip>)   =nhfilen     conhref="filep 48t>#intic conhref="+m_filen     conhref=""+m_filenamv   conurn falruct ipc8_idid890 href="+codeeeeeeeee       conuct pp a> de=ns"shplass="1 i_lock_check=nhref="+code=i.c#Llock_checkss="s* href="ipc/shma =nhref="+code=ipctnamssip>)  a href="iscli")>p 37137>
ns)   conurn falruct shm_idsmiss>)8   a 89ef="ipc/shm.c9class="#L58"9 
  )  a href="is"ss="line" namv2.L8">pp )) code=ipc_namvsmt.htlas8  href="+8code=filshplass="sref">s8hm_ip89  t;ta href="+code=iddddddddd       conuct )  a href="is"ss="line" namv2.L8">pp )   conurn falruct s893f="ipc/shm.c9class="""""""""goto"9p 52t92>      our=v2.L6">8p 56t8ournamv   conurn falruct        8 con 89f="ipc/shm.c#t/a>    }  conurn falruct 8ipcke89c/shmidsmroh__iowlass="sre8 " class=8f="+code=ipcshdsunlockla8ss="s89">ode=S_ERR>(shmkern_tnamciaudit_6>stobj=v2.L6">8p 56t8audit_6>stobjss="ssref"sip>)  a href="is"ss="line" namv2.L8">pp 90>
shm_ip>)   a href="ipc8/shm.89did_kernel> * *< href="+code=8ns" c898p 48t/a>    11111111#L58!* href="ipc/shma _capablen     conhref="a _capabless="s* href="ipc/shma =nhref="+code=ipctnam90>
)  a href="iCAP_IPC_LOCK=nhref="+code=iCAP_IPC_LOCK>pp )) code=ipc_namvsmt.htlas8  shm_des8ff="ipc/shm.c#L18" id2.L88"sre89>p 48t/a>    1111111111111111       conuct p 37137>
pp d>        conuct p 37137>
9p 58t98>#i9} hre900 href="+codeeeeeeeeedddddddd       conuct pp 50>pp>#i9clfin90ef="ipc/shm.c9class="11111111#L58!* href="ipc/shmuid_eqine" namv2.L10"uid_eqss="s* href="ipc/shmeui")>p 37137>
pp ssip>)  a href="iscss="line" namv2.L8">pp 90>
      ui")>p 37137>
pp )asref"sref"  conurn falruct s9sref"90  t;ta href="+code=iddddddddddddd!* href="ipc/shmuid_eqine" namv2.L10"uid_eqss="s* href="ipc/shmeui")>p 37137>
pp ssip>)  a href="iscss="line" namv2.L8">pp 90>
      cui")>p 37137>
pp ))f">nst/a>)   , href="9 3ref="+c9d="+code=idsm=idlass="sr9ef="i903f="ipc/shm.c9class="""""""""""""""""goto"9p 52t92>      our_unlock=nhref="+code=iour_unlocknamv   conurn falruct        9/a>) 90, href="+codeeeeeeeeeeeeeeeee#L58"9 
  p 37137>
pp d>>        conuct 8p 56t8rlimirss="s* href="ipc/shmRLIMIT_MEMLOCK=nhref="+code=iRLIMIT_MEMLOCK>pp ))f">nst/a>)   , href="9 5ref="+c9dcode=idskeylass="sref">9PC_SH90c/shm.c#L58"111111111""""""""""""""""goto"9p 52t92>      our_unlock=nhref="+code=iour_unlocknamv   conurn falruct ode=S_ERR>( * *< href="+code=9ref="908p 48t/a>    11111111* href="ipc/shmerta href="+code=iert>pp d> a href="ipc/shm.ecurit _7cl_s"#ctl=nhref="+code=i.ecurit _7cl_s"#ctlss="s* href="ipc/shms"ss="line" namv2.L8">pp sshref="+code=shmcm")>p 37137>
pp )   conurnL58"8 
      90>p 48t/a>    11111111#L58"9 
  nst/a>)   , href="9class="li9c_namvsmt.ht>(      our_unlock=nhref="+code=iour_unlocknamv   conurn falruct         conuct pp 90>
        conurn fal0a h9ef="i913f="ipc/shm.c9class="#Ld27"1 class="lineis_file_hugepageline" namv2.L10"is_file_hugepagelss="s* href="ipc/shms"#Lfilen     conhref=""+m_filenamv))f">nst/a>)   , href="9s="line" 9amv2.L12">>p 121/a>tsp} 9ref="91, href="+codeeeeeeeeeeeeeeeeegoto"9p 52t92>      our_unlock=nhref="+code=iour_unlocknamv   conurn falruct ipcpurelt.h9call>91c/shmidsmroh__iowlass="sre9c6 href="9f">ipc_namvsmt.ht>(ode=S_ERR>(p 37137>
pp d>>        conuct ipc9mt.ht91L58"9id2.L6" 9class="11111111="sref">shm_ip>)   =nhusett="srefine" namv2.L10"usett="srefp 48t>#intic conhref=useta href="+code=iusetss="5>        conuct  *ipc_namt.ht_mro9_ p 48t/a>    11111111pp d&ref"sref"d!sip>)  a href="is"ss="line" namv2.L8">pp 90>
      m   =nhref="+code=im   >pp d&ref"        conuct pp )) code=ipc_namvsmt.htlas9line" nam92.L19">>p 1911a>#incle h9ef="+920 href="+codeeeeeeeee""""""""11111111* href="ipc/shms"ss="line" namv2.L8">pp 90>
      m   =nhref="+code=im   >pp d|>        conuct pp    conurn falruct pp 90>
pp d> a href="ipc/shmuseta href="+code=iusetss="   conurn falruct       our_unlock=nhref="+code=iour_unlocknamv   conurn falruct     }  conurn falruct ode=S_ERR>(t/a>tspa  class="commsseSHM_UNLOCKe*tex remains locked on exitspa9"v2.L26">9amv2.L25"1>p 25125>#in} 9ref="92L58"9id2.L6" 9class="#L58!sip>)  a href="is"ss="line" namv2.L8">pp 90>
      m   =nhref="+code=im   >pp d&ref"        conuct pp ))ins locked on exitspa9"8 href="9pc/shm.c#L47"1 id2.L27"19class928p 48t/a>    11111111""""""""goto"9p 52t92>      our_unlock=nhref="+code=iour_unlocknamv   conurn falruct  * /pr_idslock9(chec92>p 48t/a>    11111111       conuct ei_lock=nhref="+code=i.c#e#Llockss="s* href="ipc/shms"#Lfilen     conhref=""+m_filenamv, 0ssip>)  a href="iscss="line" namv2.L8">pp 90>
pp )   conurn falruct pp 90>
      m   =nhref="+code=im   >pp d&ref"= ~       conuct pp    conurn falruct pp 90>
pp d> a href="ipc/shmNULLa href="+code=iNULLoi="   conurn falruct idt/a>;
pp )   conurn falruct (pp 5s"#ei_unlock_mappingss="s* href="ipc/shms"#Lfilen     conhref=""+m_filenamv90>
ode=IPC_SHM hr2ode21111111112.L17" 0class=codes locked on ex_filen     conhref="get_filess="s* href="ipc/shms"#Lfilen     conhref=""+m_filenc/shmidsmnurn falruct       our=v2.L6">8p 56t8o9rnamv   c9nurn falruct 8sh9_fiid_kernellapc/sh92f="ipc/shm.c#t/aass="_ids9roh__iowlass="sre8i8 hre9="8as93hm.c#L47"1 idt/a>>8;
>8;
pp    c9nurn falruct )  a href="is>p 37137>
ns,"10i,12.L17" 0class= 37137>

8p 56t8o9rnamv   c9nurn falruct #9nc8lu9e <76L58"9id2.L6" d9Tnamv:l9nu8x/94="sref">idt/a>;
 * Copyall8ed wi88f="ipc/9+codecode9ipc_namvsmt.htlas825 hre9="8lt94Mt/a>Ood, href="+cod9=shm_9ess="   c9nurn falruct     11111111""""""""goto"9p 52t92>      our_unlock=7ref">76L58"9id2.L6" d9Tnamv   c9nurn falruct 8s=94fiid_kernellaef="i933f="ipc/shm.c9class="9p 52t92>      stnaunlock=nhref="+code=i.c#Lunlockss="s* href="ipc/shms"ss="line" namv2.L8"4did_kern9l> *   7ref">76L58"9id2.L6" d9Tt/a> ns)   c9nurn falruct pp )   c9nurn falruct #9nc8uc9" clasef="i92">ode=S_ERR>(l9nu8la9s="sreef="i92">ode=S_ERR>(ode=S_ERR>(ode=S_ERR>((rypoint. The class="commsseSHM_UNLOCKe*terss="   c9ipc_namvsmt.htlas8a   co9if8"s9ef">pref="i92">ode=S_ERR>(8le9operanef="i92">ode=S_ERR>(ode=S_ERR>(ode=S_ERR>ode=ipctnamssip>)  a href="is>pcharin84">ode=S_ERR>_pp 90>
)  a hraddr="is>pa>#in84">ode=S_ERR>odefl conuct ei_unlofl pt9on  37137>
pp d> a href=longseta filen     conhreraddrpctnamssip>)  araddr="is>"commsseSHM_UNLOCKe*ternamv   c9nurn falruct ei_unlolbaipc/s"commsseSHM_UNLOCKe*ter )) code9nurn falruct osref"code=iSHM_LOCKED>p"d> t_"na9vslass="sref">ipc8;t/a>#9nc8nl9cklass="sref">;
)  a href_to_alrseta filen     conhref=unlockss="s* href="ipc/8clerta href="+code=ie9de=id}  c9nurn falruct l9nu8f=9+code=filshplaunsigned long shm.c9class="""addrpctnamssip>)  aaddr="is8clerta href="+code=ie9dnamv:shm_iunsigned long shm.c9class="""Lizess="s* href="ipcize="is8clerta href="+code=ie9dcodecode9nurn falruct ipc_namvspac-&g h888p 48t/a>    11111111="sref">shm_ip>)   =nhf88p 48t/a>    11111111="sref">shm_ip>)   =n8clerta href="+code=ie9dss="   c9nurn falruct #i./8p 48t/a>    1111111111111111* href="ipc/8clerta href="+code=ie9dnamv   c9nurnL58"8 
  )   , href="8;=ns"t9ap8od9=ipc_idid_kernunsigned long shm.c9class="""pr>ns90>
#in84">ode=S_ERR>acc_.c#Lpersoid "9p 52tacc_.c#Lipc/8clerta href="+code=ie9s="l)   c9nurn falruct shm_9il8e.9t> *)  anhuseaddripc/8clerta href="+code=ie9s )) code9nurn falruct vm_it>-&g h888p 48t/a>    116>st8"  e" napctnamssip>)  a6>st8"  e" naseta filen     conhreck_checkss="s* href="ip8clerta href="+code=ie9sd> t_"na9nurn falruct #9nc86.97klass="sref">;
ei_unloe_hugedataseta filen     conhreffipctnamssip>)  a flpri")>p 37137>
pp    c9nurn falruct l9nu8co9e=ipc_namvspac;


shm.c9class="""f.c#L111111111       cf.c#L11ipc_nc/shm.c#L58"111f_.c#Lpersoid "9p 52tf_.c#Lipc/8clerta href="+code=ie9scodecode9nurn falruct     1111111111111111* href="ipc/shm.L6" 9class="1111iert>pp d> -a href="ipc/shmEINVALa href="+code=iEINV9dnamv   c9nurn falruct ode=S_ERR>ode=ipctnamssip>)  a href="ist nst/a>)-&t;ta8f="ipc/shm.c9class="""""""""goto"9p 52t92>      our=v2.L6">8p 56t8o9>pp )   c9nurn falruct ode=S_ERR>addrpctnamssip>)  aaddr="isshm="91">ode=S_ERR>ulonget>pp d> a href=longseta)ilen     conhref="addrpctnamssip>)  a hraddr="iss="sref"code=iSHM_LOCKED>poi="))f">9st/a>)   , href="8" c>(<9 p8;(9ahref="+code=shm_ids"8ref="91">ode=S_ERR>addrpctnamssip>)  aaddr="issm   =n="91">ode=S_ERR>odelbaconuct ei_unlolbaipc/ - 1s="sref"code=iSHM_LOCKED>po )) code9nurn falruct nst/a>)  8ctlmnilaref="91">ode=S_ERR>odefl conuct ei_unlofl pt9o m   =nhref="+code=im   >pRN"= ~       conuct #9nc8="92.6.ae22.L598p 50t8a>8#in} 88 ctlalllap 48t/a>    111addrpctnamssip>)  aaddr="issm   == ~="91">ode=S_ERR>odelbaconuct ei_unlolbaipc/ - 1s;alllapf="i92">ode=S_ERR>(ode=S_ERR>_pARCH_FORCE_t 
ode=S_ERR>addrpctnamssip>)  aaddr="issm   =nref="+code=im   PAGE_MASp d>>        conPAGE_MASpipc/s"commsseSHM_UNLOCKe*te=namv   c9ref="+code=shm_vm8"   co9if8f=9ipc/sh#endif"commsseSHM_UNLOCKe*te=namv   c9ref="+code=shm_vm8"f="+c9de8=i98mt.htlass="sref">ipc9mt.ht91LLLLLLLLLLLLLLLLLf="ipc/shm.c9class="""""""""goto"9p 52t92>      our=v2.L6">8p 56t8o9.L6" code9ipc_namvsmt.htlas8"=ns"t9ap8na9lass="sref">shmtnap>)8Copyall8ed wi88f="ipc/9enamv   c9nurn falruct  * /pr_idslock9(chec92>p 48t/aflagk_checkss="s* hrflagkipc/shmerta href="+codMAP_t ARf"= ~       conucMAP_t ARf"ipc/s|merta href="+codMAP_FIXf"= ~       conucMAP_FIXf">      our=v2.L6">8p 56t8o98f="ipc/s9m.c#L58"9id2.L8" 8de=ipc9id8id9kernellass="sr>)-&g85c/shm.c#L58"111111111}9">ns)   c9nurn falruct shm_idsmiss>)8   a="91">ode=S_ERR>odefl conuct ei_unlofl pt9o m   =nhref="+code=im   >pREMAP= ~       conuct s8hm_ip89 f="ipc/shm.c9class="""""""""goto"9p 52t92>      our=v2.L6">8p 56t8o9>pp )   c9nurn falruct 8p 56t8o9>namv:       8(chec92>p 48t/aflagk_checkss="s* hrflagkipc/shmerta href="+codMAP_t ARf"= ~       conucMAP_t ARf"ipc/   our=v2.L6">8p 56t8o9>m.c#}  c9nurn falruct 99s_idsctlmnilaref="91">ode=S_ERR>odefl conuct ei_unlofl pt9o m   =nhref="+code=im   >pRDONLY= ~       conuct  * *< href="+code=8shm.c9class="""pr>ns90>
8p 56t8o9>namv   c9ipc_namvsmt.htlas8  shm_9es8ff9"ipc/shm.c#L18" id2.L8n84">ode=S_ERR>acc_.c#Lpersoid "9p 52tacc_.c#Lipc/t 8p 56t8o10s="s)   c10s="snamvsmt.htlas8  shm_10s=">10s=53"9p 53t93>       8(chec92>p 48t/af_.c#Lpersoid "9p 52tf_.c#Lipc/t 
8p 56t8o10s1"s)   c10surn falruct 10s1rnellass="sr>)-&g85c/shm.c#L58"111111111}10s2"s)   c10spc_namvsmt.htlas8  href10spc>10s *ns90>
8p 56t8o10s3"s)   c10surn falruct 10s="sref">idt/a>;
8p 56t8o10s4"s)   c10surn falruct        8(chec92>p 48t/af_.c#Lpersoid "9p 52tf_.c#Lipc/t 8p 56t8o10s5"s)   c10surn falruct 10sde=IPC_SHM hrCopyall8ed wi88f="ipc/10s6"s)   c10soh__iowlass="sre8 " cla10soh>10s6_idsctlmnilaref="91">ode=S_ERR>odefl conuct ei_unlofl pt9o m   =nhref="+code=im   >pEXEC= ~       conuct ip87L58"9id2pr>ns90>
8p 56t8o10s8"s)   c10s> *)  a hrefX"iS_IRU   our=v2.L6">8p 56t8o10s9"s)   c10spc_namvsmt.htlas8  shm_10spc>10s9e=IPC_SHM hrCopyall8ed wi88f="ipc/101="s)   c10st/a>)   , href="9class=10st/>10stode=opyall8ed wi88f="ipc/10s1"s)   c10nurn falruct 10s1rnellass="sref="i92">ode=S_ERR>(10s clasef="i92">ode=S_ERR>(10s="sreef="i92">ode=S_ERR>()   , href="9s="lin10st/>10snamv2ef="i92">ode=S_ERR>(10sde=IPC_SHM hrilen     conhreck_checkss="s* href="ip=useta href="+code=iusets_checkss="s* hr=iusets="ipen     conhref=""+m_nspr>xy_checkss="s* hrefpr>xy="ipen     conhref=""+m_6>st8ee id27"1 class="li_ef="ip8clerta href="+code=ie10s6"s)   c10roh__iowlass="sre9c6 hre10roh>10ss_idsctlalllap 48t/a>    111+codeeeeeeeee       conuct pp a> de=ns"shplass="1 i_lock_check=nhref="+code=i.c#Llock_checkss="s* href="ipc/shma =nhref="+code=ipctnamssip>)  a href="iscli")>p 37137>
10ss_idsctlmnilaref="91">ode=S_ERR>c9class="#L58"9 
  )  a href="is"ss="line" namv2.L8">10s8"s)   c10nurn falruct 10stoy> *< href="+code=9ref="908p 48t/a>    11111111* href="ipc/shmerta href="+code=iert>pp d>        conuct )  a href="is"ss="line" namv2.L810s9"s)   c10nurn falruct 10sipc/shm.c#L18" id2.L8f="ipc/shm.c9class="""""""""goto"9p 52t92>      our=v2.L6">8p 56t8o102="s)   c10ipc_namvsmt.htlas9line" 10ipc>10ipe=IPC_SHM hrCopyall8ed wi88f="ipc/1021"s)   c10nurn falruct 10i20" class="line" nam92lfin10i2"s)   c10nurn falruct 10i2_idsctlalllap 48t/a>    111shm.c9class="* href="ipc/shmerta href="+code=iert>pp d> -a href="ipc/shmEACCES=nhref="+code=iEACC10i3"s)   c10nurn falruct 10i3_idsctlmnilaref="91">ode=S_ERR>ieeeeeeee id27"1 class="lineionpersline" namv2.L10">>sperslss="s* href="ipc/shma =nhref="+code=ipctnamsssref">shmkern_tnamciinss="line" namv2.L8">pp 90>
       8p 48t/a>    11111111""""""""goto"9p 52t92>      our_unlock=nhref="+code=iour_unlo10i5"s)   c10nurn falruct 10iMt/a>Ood, href="+cod9=shm_10i6"s)   c10roh__iowlass="sre9s6 hre10roh>10is_idsctlalllap 48t/a>    1111111111111111* href="ipc/shmss="line" namv2. _7cl_s"#ctl=nh111* href="ipc/sh. _7cl_s"#ctl=nh11TR_ERR=nhref="+code=iPTR_ERRss="sip>)  a hrefc/shma =nhref="+codeaddrpctnamssip>)  a hraddr="is>p"91">ode=S_ERR>odefl conuct ei_unlofl pt9o="is"ss="line" namv2.L81027"s)   c10locked on exitspa9"v2.L210loc>10is_idsctlmnilaref="91">ode=S_ERR> 11111111#L58"9 
  10i"sref">nst/a>)-&t;ta8f="ipc/shm.c9class="""""""""goto"9p 52t92>      our_unlock=nhref="+code=iour_unlo10i9"s)   c10nurn falruct 10i=ipc_idid_kernellass8="sre103="s)   c10nurn falruct 10nu_idsctlalllap 48t/a>    111pat0>
        conuct pp 90>

10n1_idsctlalllap 48t/a>    111pat0_g 11111111       cpat0_g 1TR_ERshma =nhref="+code=ipat0>
10n2_idsctlalllap 48t/a>    111nattchss="d>        conuct pp 90>
10n3_idsctlalllap 48t/a>    111nizess="s* href="ipcize="isnn     conhref=""+i_cize_reac#Lpersoid "9p 52_cize_reacTR_ERR=nhref="+code=pat0>
(ry>
shm.c9class="""shm.c9class="9p 52t92>      stnaunlock=nhref="+code=i.c#Lunlockss="s* href="ipc/shms"ss="line" namv2.L810n5"s)   c10t.ht> *10nMt/a>Ood, href="+cod9=shm_1036"s)   c10nurn falruct 10ns_idsctlalllap 48t/a>    1111111111111111* href="ipc/shm.L6" 9class="1111NOMEt>pp d> -a href="NOMEtock=nhref="+code=iour_unlo1037"s)   c10nurn falruct 10nfiid_kernellaef="i933f="ipc/sfipctnamssip>)  a flpri"nn     conhref=""+kzalaunpctnamssip>)  akzalaunock=n=v2.L6"filen     conhreffipctnamssip>)  a flpri")>p"91">ode=S_ERR>GFP_KERNE>pp d> -a href="GFP_KERNE>ipc/shms"ss="line" namv2.L810n8"s)   c10roh__iowlass="sre8i8 hre10roh>10n"sref">nst/a>p 48t/a>    11111111ffipctnamssip>)  a flpri")ms"ss="line" namv2.L810n9"s)   c10ref="+code=shm_vm8ia  cl10ref>10nipc/shm.c#L18" id2.L8f="ipc/shm.c9class=""""_p""_dR>(ry>
(ryock=nhref="+code=iour_unlo104="s)   c10nurn falruct 10nut/a>Ood, href="+cod9=shm_1041"s)   c10nurn falruct 10n1_idsctlalllap 48t/a>    111111111="sref">shm_ip>)   =nhn     conhref=""+alaun">pp 90>
pp TR_ERshma =nhref="+code=ipat0>
ode=S_ERR>f_.c#Lpersoid "9p 52tf_.c#Lipc/>"commsseSHM_UNLOCKe*t10n2"s)   c10roh__iowlass="sre81t/a>#10roh>10n.6.ae22.L598p 50t8a>8#in} 88 ct    conhref=""+i9class="#Ld27"1 class="lineis_file_hugepageline" namv2.L10"is_file_hugfilenamvd>        conuct pp 90>
l10ref>10ncode=idsm=idlass="sr9ef="i903f="ipc/sshma =nhref="+code=ipcoe_hugeom.cationsepage90>
76L58"9id2.L6" d10n4"s)   c10ref="+code=shm_vm8r="lin10ref>10n.L12">>p 121/a>tsp} 9ref="91,f="ipc/sshma =nhref="+code=ipcoe_hugeom.cations90>
10n5sref">nst/a>p 48t/a>    11111111111111="sref">shm_ip>)   =n)ms"ss="line" namv2.L81046"s)   c10nurn falruct 10nf="+code=filIS_ERRla8f="ipc/shm.c9class=""""_fre111="sref">shm_i"""_fre1ock=nhref="+code=iour_unlo1047"s)   c10nurn falruct 10nm_ip>)   a href="ipc9pc/sh10n8"s)   c10l> * >10n8_idsctlalllap 48t/a>    111111111="sref">shm_ip>)   =nt ei_uprivatgedataipc_nn     conhref=""+mfipctnamssip>)  a flpri")>p 37137>
10n9_idsctlalllap 48t/a>    111111111="sref">shm_ip>)   =nt 
        conuct pp 90>

p 37137>
pp 90>
p 37137>
10n1_idsctlalllap 48t/a>    111sfipctnamssip>)  a flpri"en     conhref=""+m_ck_checkss="s* href="ip=useta href="+codec/sh6>st8ee id27"1 class=c/sh6>st8epersline" namv2.L10">>sperslss="s* href="ipshms"ss="line" namv2.L81052"s)   c10nurn falruct #10nur>10n2_idsctlalllap 48t/a>    111nfipctnamssip>)  a flpri"en     conhref=""+m_111111="sref">shm_ip>)   =nhn     conhref=""+m_filenamvd>        conuct pp 90>
l10nur>10n3_idsctlalllap 48t/a>    111nfipctnamssip>)  a flpri"en     conhref=""+m_vmeom>sperslss="s* hrvmeom>  =nhn     conhref=""+k_uset>pp d> a href="ipc/shmNULLa href="+code=iNU10n4"s)   c10roh__iowlass="sre8 ="lin10roh>10n4_ip>)   a href="ipc9pc/sh1055"s)   c10nurn falruct 10nde=IPC_SHM hrilen     conhre1111111111111* href="ipc/shmss="line" namv2. _7cl_s"mhmf">pp 90>
pp persline" namv2.L10"111111="sref">shm_ip>)   =n>p"91">ode=S_ERR>pr>ns90>
ode=S_ERR>flagk_checkss="s* hrflagkipc/shms"ss="line" namv2.L81056"s)   c10ipc_namvsmt.htlas8a   co10ipc>10n6_idsctlmnilaref="91">ode=S_ERR> 11111111#L58"9 
  10ns_idsctlmnilass="sre8f="ipc/shm.c9class=""""_fass=codes locked o"""_fassc/shmNULLa href="+code=iNU10n8"s)   c10ipc_namvsmt.htlas8 =ns"t10ipc>10n8_ip>)   a href="ipc9pc/sh1059"s)   c10nurn falruct 10n9_idsctlalllap 48t/a>    111amci_wcl_Lpersoid "9p 52tdmci_wcl_LTR_ERshma =nhref="+code=i=iusets_checkss="s* hr=iusets="ipen     conhref=""+m_m 90>

ode=S_ERR>addrpctnamssip>)  aaddr="issm   =a href="+code=iert>pp d&refl conuct ei_unlofl pt9o m   =nhref="+code=im   >pREMAP= ~       conuct 1061"s)   c10nurn falruct 10nm.c#L21"1 id2.L30"1 9lass=93ef="ipc/1111111111111* href="ipc/shm.L6" 9class="1111iert>pp d> -a href="ipc/shmEINVALa href="+code=iEINV10n2"s)   c10vslass="sref">ipc8;t/a>#10vsl>10n.6.ae22.L598p 50t8a>8ref="91">ode=S_ERR>find_vma_interc _tbuess=", >shmkern_find_vma_interc _tbuepersline" namv2.L10"=iusets_checkss="s* hr=iusets="ipen     conhref=""+m_m 90>
)  aaddr="iss=nhref="+code=i.addrpctnamssip>)  aaddr="is +ap 48t/a>    111nizess="s* href="ipcize="iss=/shm.c#L58"111111111}1063"s)   c10nurn falruct l10nur>10n c cmer     d cmer  9  c c923f="ipc/shm.c9class="inval6c#Lpersoid "9p 52nval6cmEINVALa href="+code=iEINV10n4"s)   c10nurn falruct        8(f="i92">ode=S_ERR>(10nclassef="i92">ode=S_ERR>((3f=es below stack, hmke sure=there is some class="commsseSHM_UNLOCKe*t10n6"s)   c10nurn falruct 10nf">pref="i92">ode=S_ERR>(ode=S_ERR>()   , href="8;=ns"t10st/>10ntoy> *< href="+code=8ns" "91">ode=S_ERR>addrpctnamssip>)  aaddr="issm
10nref">ipc_namt.ht_mro9_ ode=S_ERR>addrpctnamssip>)  aaddr="issmgert=nhref="+code=i=iusets_checkss="s* hr=iusets="ipen     conhref=""+m_m 90>
    111PAGE_SIZE= ~       conuceAGE_SIZE="isn* 5=/shm.c#L58"111111111}107="s)   c10nurn falruct shm_10nur>10nuc cmer     d cmer  9  c c923f="ipc/shm.c9class="inval6c#Lpersoid "9p 52nval6cmEINVALa href="+code=iEINV1071"s)   c10nurn falruct 10n1rnellass="sr>ALa href="+code=iEINV1072"s)   c10nurn falruct #10nur>10n.6.ae22.L598p 50t8a>8ALa href="+code=iEINV1073"s)   c10nurn falruct l10nur>10n3_idsctlalllap 48t/a>    111nhuseaddrpctnamssip>)  anhuseaddripc/shmss="line" namv2do"mhmf"pgof_usetss="58"9 
 do"mhmf"pgof_persline" namv2.L10"111111="sref">shm_ip>)   =n>p"91">ode=S_ERR>addrpctnamssip>)  aaddr="iss=nhref="+code=i.nizess="s* href="ipcize="is>p"91">ode=S_ERR>pr>ns90>
ode=S_ERR>flagk_checkss="s* hrflagkipc/, 0shms"ss="line" namv2.L81074"s)   c10nurn falruct filen     conhreraddrpctnamssip>)  araddr="is href="+code=imlock_useaddrpctnamssip>)  anhuseaddripc/8clerta href="+code=ie10n5"s)   c10nurn falruct 10nde=IPC_SHM hrilen     conhre1111111111111* href="ipc/shm08clerta href="+code=ie10n6"s)   c10nurn falruct 10n6_idsctlmnilaref="91">ode=S_ERR>pt9on _/shUE= ~       conucpt9on _/shUEpersline" namv2.L10"k_useaddrpctnamssip>)  anhuseaddripc/s=/shm.c#L58"111111111}1077"s)   c10nurn falruct ip87L58"9id21111111111111* href="ipc/shm(long)ilen     conhrek_useaddrpctnamssip>)  anhuseaddripc/8clerta href="+code=ie10n8"s)   c10nurn falruct 10namv2.c/shm.c9class="inval6c#Lpersoid "9p 52nval6cmEIN7ref">76L58"9id2.L6" d1079"s)   c10nurn falruct 10n9_idsctlalllap 48t/a>    111up_wcl_Lpersoid "9p 52tup_wcl_LTR_ERshma =nhref="+code=i=iusets_checkss="s* hr=iusets="ipen     conhref=""+m_m 90>

(<10st/>10st_ip>)   a href="ipc9pc/sh1081"s)   c10nurn falruct 10s1mv2.c/shm.c9class=""""_fass=codes locked o"""_fassc/sh7ref">76L58"9id2.L6" d1082"s)   c10nurn falruct #10nur>10s2_idsctlalllap 48t/a>    111lass=codes locked on ex_filen     conhref="111111="sref">shm_ip>)   =n)hms"ss="line" namv2.L81083"s)   c10nurn falruct 10scode=  our=v2.L6">8p 56t8o10s4"s)   c10nurn falruct pp 90>
pp 90c/sh7ref">76L58"9id2.L6" d1085"s)   c10nurn falruct 10sde=IPC_SHM hrilen     conhreamci_wcl_Lpersoid "9p 52tdmci_wcl_LTR_ERshma =nhref="+code=ic/shids90>
>sperslss="s* href="ipss=nhref="+code=irw_mutexpctnamssip>)  arw_mutex  =n)hms"ss="line" namv2.L81086"s)   c10ref="+code=shm_vm8"   co10ref>10ss_idsctlalllap 48t/a>    111+codeeeeeeeee       conuct p90>
)  a href="iscli")>p 37137>
)  a href="li")>p 37137>
10s8_idsctlalllap 48t/a>    111nattchss="d>        conuct pp 90>
p 37137>
10samv2.L58"6p 5aef="91">ode=S_ERR>ode_may_destroy>
p 37137>
10m._idsctlmnilass="sre8f">ip87L58"9id2ode_destroy>
p 37137>
10m1rnellass="sr-&g8"commsseSHM_UNLOCKe*t10m2"s)   c10ipc_namvsmt.htlas8  href10ipc>10m a href="ipc/shm.c#L98"1 i91  t;ta href=c9class="9p 52t92>      stnaunlock=nhref="+code=i.c#Lunlockss="s* href="ipc/shms"ss="line" namv2.L81093"s)   c10nurn falruct 10m3_idsctlalllap 48t/a>    111np_wcl_Lpersoid "9p 52tup_wcl_LTR_ERshma =nhref="+code=ic/shids90>
>sperslss="s* href="ipss=nhref="+code=irw_mutexpctnamssip>)  arw_mutex  =n)hms"ss="line" namv2.L81094"s)   c10nurn falruct 10m5mv2.c/shm.c9class="""">
76L58"9id2.L6" d1096"s)   c10roh__iowlass="sre8 " cla10roh>10ms_idsctlalllaf="ipc/shm.c9class=""""""""" id2.L223"8id2.L6" 8clerta href="+code=ie10m7"s)   c10nurn falruct  *      our_unlock=7ref">76L58"9id2.L6" d10m9"s)   c10ipc_namvsmt.htlas8  shm_10ipc>10m9_idsctlalllap 48t/a>    111ref=c9class="9p 52t92>      stnaunlock=nhref="+code=i.c#Lunlockss="s* href="ipc/shms"ss="line" namv2.L811s="s)   c11s="snamvsmt.htlas8  shm_11s=">11s=53"9p 53t93>f="ipc/shm.c9class="""""""""goto"9p 52t92>      our=v2.L6">8p 56t8o11s1"s)   c11surn falruct 11020" class="line" nam92lfin11s2"s)   c11spc_namvsmt.htlas8  href11spc>11s *shm_i"""_fre1ock=7ref">76L58"9id2.L6" d11s3"s)   c11surn falruct 1103_idsctlalllap 48t/a>    111kfre111="sref">shm_ikfre1ock=nhref="+code=i.c#fipctnamssip>)  a flpri")   our=v2.L6">8p 56t8o11s4"s)   c11surn falruct (ry>
(ryock=7ref">76L58"9id2.L6" d11s5"s)   c11surn falruct 110de=IPC_SHM hrilen     conhrepat0_ass=codes locked opat0_assTR_ERshma =nhref="+code=ipat0>
11s6_idsctlmnilaf="ipc/shm.c9class=""""_>pp 90>
pp 90c/sh"is"ss="line" namv2.L811s7"s)   c11surn falruct  *11s9e=IPc/shm.c9class="SYSCALL_DEFINE3>
)  a href="is>pcharin84">ode=S_ERR>_pp 90>
)  a hraddr="is>pa>#c/shma =nhref="+codefl conuct ei_unlofl pt9o=)   a href="ipc9pc/sh111="s)   c11st/a>)   , href="9class=11st/>11stode=s"ss="line" namv2.L8">11s1"s)   c11nurn falruct 11s1rnellass="srunsigned long shm.c9class="""r 11111111       cre2>      our=v2.L6">8p 56t8o11s2"s)   c11m.c#L58"8 
  111 a href="ipc/long shm.c9class=""""""""" id2.L223"8id2.L6" 8clerta href="+code=ie11s3"s)   c11nurn falruct 111code=  our=v2.L6">8p 56t8o11s4"s)   c11st/a>)   , href="9s="lin11st/>111class="sref">shm.c9class="""1111111111111* href="ipc/shmss="line" namv2dol=nh111* href="ipc/shdol=nh11ock=nshma =nhref="+code=ipctnamssip>)  a href="is>pshma =nhref="+codeaddrpctnamssip>)  a hraddr="is>pshma =nhref="+codefl conuct ei_unlofl pt9oc/shma =nhref="+code=ir 11111111       cre2>   >pshma =nhref="+ct 
11sde=IPC_SHM hrref="91">ode=S_ERR> 11111111#L58"9 
  111fiid_kernellaef="i933f="ipc/force_successful_syst/ll_f="ipc11="sref">shm_iporce_successful_syst/ll_f="ipcock=n="is"ss="line" namv2.L811s8"s)   c11nurn falruct 11stoy> *< href=f="ipc/(long)ilen     conhrer 11111111       cre2>      our=v2.L6">8p 56t8o11s9"s)   c11nurn falruct 11sipc/s>ALa href="+code=iEINV112="s)   c11ipc_namvsmt.htlas9line" 11ipc>112t_ip>)   a href="ipc9pc/sh1121"s)   c11nurn falruct 11i20" c(f="i92">ode=S_ERR>(112 clasef="i92">ode=S_ERR>((3refmarked destroyed. class="commsseSHM_UNLOCKe*t11i3"s)   c11nurn falruct 112="sreef="i92">ode=S_ERR>( LOC_close. class="commsseSHM_UNLOCKe*t11i4"s)   c11nurn falruct ode=S_ERR>(1125mv2.c/shm.c9class="SYSCALL_DEFINE1>
pcharin84">ode=S_ERR>_pp 90>
)  a hraddr="isn verta href="+code=ie11i6"s)   c11roh__iowlass="sre9s6 hre11roh>11is_idss"ss="line" namv2.L8">1127"s)   c11locked on exitspa9"v2.L211loc>11is_idsctlmnila;



8p 56t8o11i8"s)   c11locked on exitspa9"8 hre11loc>11i"sref">nst/a>;

ei_uvma="ip   our=v2.L6">8p 56t8o11i9"s)   c11nurn falruct 1129_idsctlalllaunsigned long shm.c9class="""addrpctnamssip>)  aaddr="isshm(unsigned long)ilen     conhref="addrpctnamssip>)  a hraddr="is   our=v2.L6">8p 56t8o113="s)   c11nurn falruct 11nu_idsctlalllaa>#in84">ode=S_ERR>re2varpctnamssip>)  are2var="isshm.L6" 9class="1111iert>pp d> -a href="ipc/shmEINVALa href="+code=iEINV1131"s)   c11nurn falruct 11n1_ids#ifdefin84">ode=S_ERR>CONFIG_MMUpp d> -a href="CONFIG_MMU_ip>)   a href="ipc9pc/sh1132"s)   c11nurn falruct 11n2_idsctlalllap 48t/a>    111loff111111111       cloff11_idscilen     conhrefizess="s* href="ipcize="isnn 08clerta href="+code=ie1133"s)   c11nurn falruct 11n3_idsctlallla;


 *11nMt/a>Ood, href="+cod9=shm_1136"s)   c11nurn falruct 1136_idsctlmnilaref="91">ode=S_ERR>addrpctnamssip>)  aaddr="issm   =nref="+code=im   PAGE_MASp d>>        conPAGE_MASpipc/s"commsseSHM_UNLOCKe*t1137"s)   c11nurn falruct 113s_idsctlmnilass="sre8f="ipc/shm.c9class="""re2varpctnamssip>)  are2var="isVALa href="+code=iEINV1138"s)   c11roh__iowlass="sre8i8 hre11roh>1138_ip>)   a href="ipc9pc/sh11n9"s)   c11ref="+code=shm_vm8ia  cl11ref>1139_idsctlalllap 48t/a>    111amci_wcl_Lpersoid "9p 52tdmci_wcl_LTR_ERshma =nhref="+code=im 90>

1141rnellass="sref="i92">ode=S_ERR>(ode=S_ERR>((s "h11oclass="commsseSHM_UNLOCKe*t11n3"s)   c11ref="+code=shm_vm8ref">l11ref>114="sreef="i92">ode=S_ERR>(114namv2ef="i92">ode=S_ERR>((3"h11 sOould be class="commsseSHM_UNLOCKe*t1145"s)   c11ipc_namvsmt.htlas825 hre11ipc>114classef="i92">ode=S_ERR>(114f">pref="i92">ode=S_ERR>(114peranef="i92">ode=S_ERR>( * >114"srefef="i92">ode=S_ERR>(11n9_idsef="i92">ode=S_ERR>(11nuiid_ef="i92">ode=S_ERR>(11520" c(f="i92">ode=S_ERR>(#11nur>115 clasef="i92">ode=S_ERR>(l11nur>115="sreef="i92">ode=S_ERR>(115namv2ef="i92">ode=S_ERR>(115classef="i92">ode=S_ERR>(11n6_idsctlmnilaef="i92">ode=S_ERR>(115peranef="i92">ode=S_ERR>(115"srefef="i92">ode=S_ERR>(odume /ll vma's areoclass="commsseSHM_UNLOCKe*t11n9"s)   c11nurn falruct 1159_idsef="i92">ode=S_ERR>(116uiid_ef="i92">ode=S_ERR>(1161_idsctlalllap 48t/a>    111vmaconuct ei_uvma="ip=useta href="+codefind_vma11="sref">shm_ipind_vmaock=nshma =nhref="+cm 90>
)  aaddr="isshms"ss="line" namv2.L811n2"s)   c11vslass="sref">ipc8;t/a>#11vsl>11n.6.aems"ss="line" namv2.L811n3"s)   c11nurn falruct l11nur>11n c cm#ifdefin84">ode=S_ERR>CONFIG_MMUpp d> -a href="CONFIG_MMU_ip>)   a href="ipc9pc/sh11n4"s)   c11nurn falruct whilef="91">ode=S_ERR>vmaconuct ei_uvma="ip=is"ss="line" namv2.L8">1165"s)   c11nurn falruct 116de=IPC_SHM hr2ode2111  conhref=""+m_nex890>
ei_uvma="ipen     conhref=""+m_vmenex890>
116code=opyall8ed wi88f="ipc/1167"s)   c11nurnL58"8 
  116s_idsctlmnilass="sre8ff="i92">ode=S_ERR>()   , href="8;=ns"t11st/>116"srefef="i92">ode=S_ERR>(1169_idsef="i92">ode=S_ERR>((3created by mpr>nect() and/or munhmf(), or r1oclass="commsseSHM_UNLOCKe*t117="s)   c11nurn falruct shm_11nur>117uiid_ef="i92">ode=S_ERR>(10n1_idsctla  "+code=8* otherwig85r17OCKe*t11no nosslesct 116uiid_ef=s="sr>ALa 1ref="+code=iEINV1072"s)  1c10nu17d with 2nval6c par   terc or refit&#urn falruct 1161_idsctlL598p 50t81>8ALa href="+code=iEINV1013"s) 1 c10nurn falruct 
ppt 10nref">ip1alllap 48t1a>    111nhuseaddrpctnams1ip>) 17al6c#Lpersoid "9p 52nval6cmEI=nhref="+code=im90>
ipc/s"commsseSHM_UNLOCKe11111}107="s)   c10nurn falruct <=href=""+m_vmenex890>
shm_iINV"1111t 116de=IPC_S3t93>filen1    conhreraddrpctnamssip1)  ar1710m5mv2.c/1HM hrilen 1   conhre1111111111111* h1ef="i171136_idsctlmnilaref="11">ode=S_ERR>pt9on _/shUE1 ~   172.L223"8id2.L6" 8clerNLOCKe*t1 href="+code=ie1133"s)   c11nurn falruct 
116code=opymnilass="s1e8f">ip87L58"9id21111111111111*1href="ipc/shm(long)ileNLOCKe*t1 href="+code=iommsseSHMamssip>)  a href="malruct ode=i.addrpctnamssip>)  aaddr="isshms"ss="line" namv2.L81190>

 a href="ipc/shode=8l6c#c8;t/a>#11vsl>11n.6.aems"hm.c9class1"inval6c#Lpersoid "9p 52n1al6cm17ip>)  aaddr="issm)   , href="8;=ns"t11st/>116"srefef=alllap 48t1a>    111up_wcl_Lpersoid 19p 5217RR>(3created by mpr>nect() and/or munhmf(), urn falruhavediscLOCredommsseSHM_UNLOCKe*t1145"s)  , sohref="8;=ns"t11st/>116"srefef= a href="i1c9pc/sh1081"s)   c10nurn 1alruc18ig85r1 s
arts2tn falruct 10urn falruhbommk ou vmas0nurnoh__f   cthroughrn fOCKeuct 116"srefef= ="sr>ALa 1""""_fass=codes locked o"1"_fas18d with 2nval6c par   terc or refit&#urn falrurn falruhloopUNLOCKus"commsseSHM_informalass="ocodoct #11nur>115 clasef=alllap 48t1a>    111lass=codes locke1 on e18a. Both t/lls in "his fun_tbue are furn falrurn falruhass="ceSHMc11n"s)  eSHM11nurn fact 116uiid_ef=ur=v2.L6">1p 56t8o10s4"s)   c10nurn 1alruc18 are directly copied from thehvma3iturn falrurn falruct 1161_idsctlhm.c9class1""""_>pp 90>
18ode=ipcoe_hugeom.cations90>
<" 9class="1111iert>pp d> -a href="ipc/shmEINVALa h9iode=n11nur>11n3_idsctlHM hrilen 1   conhreamci_wcl_Lpersoi1 "9p 18"ipnex8mEIN=useta hreons90>
<" 9class="1111i1="sref">shm_ipind_vmaock=nshma =nhref="+cm4"s)   c11nurn falruct 112t_ip>)  alllap 48t1a>    111nattchss="d>    1   co18ref="ipc/shmerta href="+code=iert>pp1="sref">shm_ipind_vmaock=nshma =nhref="+cm4"s)   c11nurn falruct ode=S_ERR>ode_may_dest1oy>
<18>)   , href="9class=10st/>10stode=op1mnilass="s1e8f">ip87L58"9id2ode_dest1oy>
<191141rnellass="sr-&g8"1ommsseSHM_UNLOCKe*t10m2"s1   c119SHM_UNLOCKe*t11n2"s)   c11roh__iowlass="sre81t/a>#11roh>114 clasef="ipc/shm.c1L98"1 i91  t;ta href=c9cl1ss="919 on=thehfs heck= since SYSV IPC does havene="is ok1no furidscUNLONLOCKemaximumg85r17OCK r1oclass=s="sre81t/a>#11roh>114 clasef="r=v2.L6">1a>    111np_wcl_Lpersoid 19p 5219 are directly copied from thehvma3itsect1169possiblyn falrloh_n9"s). Also cnurnM_UNgmsseSsnn 08sses="sre81t/a>#11roh>114 clasef="m.c9class1c9pc/sh1095"s)   c10nurn 1alruc19ore do"munhmf ~annot fail. (famous lasprevss="LOCrflowsnoh__0n6"sot parisons vs. equal-widthrnypesct 116uiid_ef=hm.c9class1"""">
11n6_idsctlalllaf="ip1/shm.c9class=""""""""" id1.L22319ct p901133"s)   c11nurn falruct  *<1 )hre19ref="ipc/shm(s="line" namv2.L8">1165"s)   c11nurn falruct 116s="s* href="ipcize="isnn 08cler)=nhref="+code=im90>
ipcipen nhref="+code=i.cck3"s)   c10nurn falruct 116de=IPC_Shm.c9class1"""""""""goto"9p 52t92>  1   ou19ref="ipc/shmerta href="+code=iert>ppct ei_uvma="ipen     conhref=""+m_vmenex890>
116code=opyalllap 48t1a>    111ref=c9class="9p 12t92>1910nu_idsct23t93>f="ip2/shm.c9class="""""""""got2"9p 520href="ipc/ode_destroyo1n2"s)   c11roh__iowlas =nhreSHM_n"s)  eSHM11n1now10nurnOCKealtscUc/shmEsmt.htlas8a   co11ipc>11n6_idsct2s="line" n2m92lfin11s2"s)   c11spc_n2mvsmt20ref="ipc/shm.L6" 9clam   =nhref="+code=im90>
ppt 10nref">ip2hm.c9class2""""_fre111="sref">shm_i"2"_fre20s="#Ld27"1 class="lineis_file=nhref="+code=im90>
ipc/s"commsseSHM_UNLOCKe11111}107="s)   c10nurn falruct <=href=""+m_vmenex890>
shm_iINV"1111t 10nref">ip2h3.c9class2">    111np_wcl_Lpersoid 2m_ikf20ef="9s="lin11st/>111class="2hm.c9class2""""_p""_dR>(ry>

<" 9class="1111iommsseSHMamssip>)  a href="malruct ode=i.addrpctnamssip>)  aaddr="isshms"ss="line" namv2.L81190>

 a href="ipc/shode=8l6c#c8;t/a>#11vsl>11n.6.aems2HM hrilen 2   conhrepat0_ass=codes l2cked 20"ipnex8mEIN=useta href="+codevmaconu1="sref">shm_ipind_vmaock=nshma =nhref="+cm4"s)   c11nurn falruct pp 90>2pp9class=10st/>10stode=op2a href="+c2de=iEINV11s8"s)   c11s> *2a )hr20"+co8 ode=n10l> >10mamv2.c/2 a href="i2c9pc/sh11s9"s)   c11spc_n2mvsmt2htlas8#las8yo1n2"s)   c11roh__iowlas  falruct 11n6_idsct2s9 href="i2c>    111ref=c9class="9p 2"ipc/20tdmci_wcl_LTR_1n2"s)   c11roh__iowlas uh_nr NOt 114classef2s="line" n2mv2.L8">11s1"s)   c11nurn2falru21"munhmf are ignored: thehfun_tbue onlyfalrusmt.htlas8a   co11ipc>11n6_idsct2s="srunsig2ed long shm.c9class="""r 21111121p=useta href="+codefind_vma1ert>pp d> -a href="ipc/shmEINVALa href="+code=iEINV1131"s)   c11nurn falruct 11n1_ids#i2"ipc/long 2hm.c9class=""""""""" id2.2223"82d2.L6" 8clertanref="+code=im   PA90>
ei_unlofl pt9o m  nhref="+code=im90>
ppt 116de=IPC_2ur=v2.L6">2p 56t8o11s4"s)   c11st/a>2   , 21al6c#Lpersoid "9p 52n" 9class="1111iommsseSHMamssip>)  a href="malruct ode=i.addrpctnamssip>)  aaddr="isshms"ss="line" namv2.L81190>

 a href="ipc/shode=8l6c#c8;t/a>#11vsl>11n.6.aems2ref">shm.c2class="""1111111111111* h2ef="i21ode=ipcoe_hugeom.cati" 9class="1111iert>pp d> -a href="ipc/shmEINVALa h9iode=n11nur>11n3_idsct2HM hrref="21">ode=S_ERR> 11111111#L52"9 
 210stode=op2=filIS_ERR2a8f="ipc/shm.c9class=""""2"""" 21116s_idsct2nellaef="i233f="ipc/force_successful2syst/2l_f="if="ipc/shmEF11t.h>11nMt/a>Oo2href=f="ip2/(long)ilen     conhrer 121111121m_vm8ia  cl11ref>1139_idsct2a href="+c2de=iEINV112="s)   c11ipc_2amvsm21p_wcl_LTR_ERshma =nhref="+code=i=iusets_checkss="s* hr=iusets="ipen     conhref=""+m0>
ode=2_ERR>(ode=2_ERR>(l11nur>11n c cm#i2"i92">ode=2_ERR>( 22CONFIG_MMU_ip>)   a href="ipc9pc/sPROC_FSs)   c11roh__iopc9pc/sPROC_FSa h8;ef">l11nur>11n c cm#i2"ef">shm.c2_ERR>(_pro1"isow d> a href="ipcsysvr>1"is>_pro1"isowts="im_area_;
shqpat0ock=nf="+code=iEINV113p d> a href="ipcsl6c#"lvoidf="+code=iEINV113i8 d> a href="ipcitt 10nref">ip2hm.c9class2"SYSCALL_DEFINE1>
116de=IPC_2s="line" n2mv2.L8">1127"s)   c11lock2d on 22="ipc/"""_>ppm_area_;
 a href="ipc falr paock=nshma =nhref="+cmshqp falr p d> a href="ipcshqp falr pt ode=i.addrpctnamss6 d> a href="ipcsl6c#h82	opt/11nur>11nut/a>Oo2 ellaef="i24c/shm.c#L58"111mm_;


 a href="ipcitt 11nut/a>Oo2 ref=f="ip24c/shm.c#L58"111vm_area_;2
8p 56t8o11s2"ss6 d> a href="ipcss6INVALa hverta href="+code=w
10nu_idsct2alllaa>#in24">ode=S_ERR>re2varpctnam2sip>)2 are2var="isshhm.c#eom.cationsipcs>e_ss6_swHMamssip>)  a hresipcs>e_ss6_swHMt ode=i.addrpctnamss6>

 a href="ipcss6INVAa =nhref="+ct 
o2e=S_ERR>CONFIG_MMUpp d> -2 href23tlas8  href11spc>11s *    111loff111111111   2   cl2ff11_iG_M="+code=i.cc9clasITS_PER_LONGode=24c/shm.c#L58"111vm_area_;2
2*10m a href2, href="+c2d9=shm_1136"s)   c11nurn 2alruc2 ode=S_ERR>addrpctnamss2p>)  2addr="f="ipc/shmEF11t.h>11nMt/a>Oo2mnilass="s2e8f="ipc/shm.c9class="""r22varp23"+co8 ode=n10l> >10mamv2.c/2 a href="i2c9pc/sh11n9"s)   c11ref="2code=23      cre2>      ourhma =nhref="+cmshqpp8r1t111="sref">shm_ishqpp8r1t1t ode=i.addrpctnamss6 d> a href="ipcsl6c#, ode=n10l> >10mamv2.c/2 lllaunsig2a>    111amci_wcl_Lpersoi2 "9p 23ip>)  aaddr="issmgert=nhrcl_LTR_1n2"s)   c11a 8r105>"%10d %10d  %4o ".htlas8ss="line" namv2.LIZE_SPEC"%5lu %5u %5u %5u %5u %10lu %10lu %10lu ".htlas8a   co11ipc>11n6_idsct2,efin84">o22">ode=S_ERR>(" ".htlas8ss="line" namv2.LIZE_SPECode=2_ERR>(pp 90>
p 37137>

 >10mamv2.c/2"i92">ode=2_ERR>(pp 90>
p 37137>

 >10mamv2.c/2"if"commss2_ERR>(
pp 90>
p 37137>

 >10mamv2.c/2" href="+c2_ERR>(
pp 90>
p 37137>

 >10mamv2.c/2"="line" n2_ERR>(pp 90>
p 37137>
)  a hraddr >10mamv2.c/2"nilass="s2_ERR>(pp 90>
p 37137>
)  a hraddr >10mamv2.c/2"a href="i2_ERR>()  aaddr="issmpp 90>
p 37137>
 >10mamv2.c/2"lllaunsig2_ERR>()  aaddr="issmgert=nhrcl_LTR_)--li")>p 3713OCKe_ku="_mungenamssip>)  a hraOCKe_ku="_mungent ode=i.addrpctnamss falr p d> a href="ipc falr paock137>
p 37137>

)  a hrau=shm_vm, ode=n10l> >10mamv2.c/2"i92">ode=2_ERR>(p 3713OCKe_kg="_mungenamssip>)  a hraOCKe_kg="_mungent ode=i.addrpctnamss falr p d> a href="ipc falr paock137>
p 37137>

)  a hrag=shm_vm, ode=n10l> >10mamv2.c/2"efin84">o2_ERR>()  a hraOCKe_ku="_mungent ode=i.addrpctnamss falr p d> a href="ipc falr paock137>
p 37137>

)  a hracu=shm_vm, ode=n10l> >10mamv2.c/2"i92">ode=2_ERR>(ppOCKe_kg="_mungenamssip>)  a hraOCKe_kg="_mungent ode=i.addrpctnamss falr p d> a href="ipc falr paock137>
p 37137>

)  a hracg=shm_vm, ode=n10l> >10mamv2.c/2"i92">ode=2_ERR>(pp 90>
p 37137>

 >10mamv2.c/2"i92">ode=2_ERR>(
pp 90>
p 37137>

 >10mamv2.c/2" href="+c2_ERR>(
pp 90>
p 37137>

 >10mamv2.c/2"="line" n22">ode=S_ERR>(ppss6 d> a href="ipcss6INVAL* ef=""+m_vmenex8nurn 11111}107="s)   c10nurn falruct , ode=n10l> >10mamv2.c/2"nilass="s2_ERR>(pp w
ode=2_ERR>(10stode=op2"i92">ode=2_ERR>(ode=2_ERR>(


U/div>

(
OCKeoriginal LXR softwlassbyLOCKeshmEF11t.http://sourcass=ge.net/projects/lxr">LXR d: tunitLl6c#,herwigexperithehal versass=byLshmEF11t.mailto:lxr@   ux.no">lxr@   ux.no.c#Ls
U/div>
(
lxr.   ux.no kindlyn ossseSHM_shmEF11t.http://www.redpill-   pro.no">Redpill L  pro ASl6c#,hprovi_nr of L  uxscohsulseSHM_nd operalasss falvicen7"snce 1995.
U/div>