linux/ipc/msg.c
<<
>>
Prefs
   1/*
   2 * linux/ipc/msg.c
   3 * Copyright (C) 1992 Krishna Balasubramanian
   4 *
   5 * Removed all the remaining kerneld mess
   6 * Catch the -EFAULT stuff properly
   7 * Use GFP_KERNEL for messages as in 1.2
   8 * Fixed up the unchecked user space derefs
   9 * Copyright (C) 1998 Alan Cox & Andi Kleen
  10 *
  11 * /proc/sysvipc/msg support (c) 1999 Dragos Acostachioaie <dragos@iname.com>
  12 *
  13 * mostly rewritten, threaded and wake-one semantics added
  14 * MSGMAX limit removed, sysctl's added
  15 * (c) 1999 Manfred Spraul <manfred@colorfullife.com>
  16 *
  17 * support for audit of ipc object properties and permission changes
  18 * Dustin Kirkland <dustin.kirkland@us.ibm.com>
  19 *
  20 * namespaces support
  21 * OpenVZ, SWsoft Inc.
  22 * Pavel Emelianov <xemul@openvz.org>
  23 */
  24
  25#include <linux/capability.h>
  26#include <linux/msg.h>
  27#include <linux/spinlock.h>
  28#include <linux/init.h>
  29#include <linux/mm.h>
  30#include <linux/proc_fs.h>
  31#include <linux/list.h>
  32#include <linux/security.h>
  33#include <linux/sched.h>
  34#include <linux/syscalls.h>
  35#include <linux/audit.h>
  36#include <linux/seq_file.h>
  37#include <linux/rwsem.h>
  38#include <linux/nsproxy.h>
  39#include <linux/ipc_namespace.h>
  40
  41#include <asm/current.h>
  42#include <asm/uaccess.h>
  43#include "util.h"
  44
  45/*
  46 * one msg_receiver structure for each sleeping receiver:
  47 */
  48struct msg_receiver {
  49        struct list_head        r_list;
  50        struct task_struct      *r_tsk;
  51
  52        int                     r_mode;
  53        long                    r_msgtype;
  54        long                    r_maxsize;
  55
  56        struct msg_msg          *volatile r_msg;
  57};
  58
  59/* one msg_sender for each sleeping sender */
  60struct msg_sender {
  61        struct list_head        list;
  62        struct task_struct      *tsk;
  63};
  64
  65#define SEARCH_ANY              1
  66#define SEARCH_EQUAL            2
  67#define SEARCH_NOTEQUAL         3
  68#define SEARCH_LESSEQUAL        4
  69
  70#define msg_ids(ns)     ((ns)->ids[IPC_MSG_IDS])
  71
  72#define msg_unlock(msq)         ipc_unlock(&(msq)->q_perm)
  73
  74static void freeque(struct ipc_namespace *, struct kern_ipc_perm *);
  75static int newque(struct ipc_namespace *, struct ipc_params *);
  76#ifdef CONFIG_PROC_FS
  77static int sysvipc_msg_proc_show(struct seq_file *s, void *it);
  78#endif
  79
  80/*
  81 * Scale msgmni with the available lowmem size: the memory dedicated to msg
  82 * queues should occupy at most 1/MSG_MEM_SCALE of lowmem.
  83 * Also take into account the number of nsproxies created so far.
  84 * This should be done staying within the (MSGMNI , IPCMNI/nr_ipc_ns) range.
  85 */
  86void recompute_msgmni(struct ipc_namespace *ns)
  87{
  88        struct sysinfo i;
  89        unsigned long allowed;
  90        int nb_ns;
  91
  92        si_meminfo(&i);
  93        allowed = (((i.totalram - i.totalhigh) / MSG_MEM_SCALE) * i.mem_unit)
  94                / MSGMNB;
  95        nb_ns = atomic_read(&nr_ipc_ns);
  96        allowed /= nb_ns;
  97
  98        if (allowed < MSGMNI) {
  99                ns->msg_ctlmni = MSGMNI;
 100                return;
 101        }
 102
 103        if (allowed > IPCMNI / nb_ns) {
 104                ns->msg_ctlmni = IPCMNI / nb_ns;
 105                return;
 106        }
 107
 108        ns->msg_ctlmni = allowed;
 109}
 110
 111void msg_init_ns(struct ipc_namespace *ns)
 112{
 113        ns->msg_ctlmax = MSGMAX;
 114        ns->msg_ctlmnb = MSGMNB;
 115
 116        recompute_msgmni(ns);
 117
 118        atomic_set(&ns->msg_bytes, 0);
 119        atomic_set(&ns->msg_hdrs, 0);
 120        ipc_init_ids(&ns->ids[IPC_MSG_IDS]);
 121}
 122
 123#ifdef CONFIG_IPC_NS
 124void msg_exit_ns(struct ipc_namespace *ns)
 125{
 126        free_ipcs(ns, &msg_ids(ns), freeque);
 127        idr_destroy(&ns->ids[IPC_MSG_IDS].ipcs_idr);
 128}
 129#endif
 130
 131void __init msg_init(void)
 132{
 133        msg_init_ns(&init_ipc_ns);
 134
 135        printk(KERN_INFO "msgmni has been set to %d\n",
 136                init_ipc_ns.msg_ctlmni);
 137
 138        ipc_init_proc_interface("sysvipc/msg",
 139                                "       key      msqid perms      cbytes       qnum lspid lrpid   uid   gid  cuid  cgid      stime      rtime      ctime\n",
 140                                IPC_MSG_IDS, sysvipc_msg_proc_show);
 141}
 142
 143/*
 144 * msg_g_id_(check6         tioa href="ipc/msg.c#L119" id="L119" cla 8SEAn
 * linux/ipc/msg.c
  17 144
  
  
is not helda>void   47 */
ipc1eceiver" 1class="sref">msg_receive1r14class="sref"37"> 137
msg_g.c#L138" id="L">ms);
list_headcount        126        126          92        i href="ipc/msg.cide_ipcs" class="sref">free_i  49 1       struct init_ipc_ns< href="ip1c/msg.c#L50" id="L50" cl1ass="1ine" name="L50">  50        strua>(struct  116spacss="line" name="L73">  
 127        idr_destroy(&i href="ipc/msg.cide_ipcL143" class="line" namea href="i1pc/msg.c#L51" id="L51" c1lass=15it(void)
1r_mode;
 141}
free_i name="L513">  53        long 1     1             <<<<<<<<{
) href="+code=idmsgpd="L126" class="lip" naL143" class="line" namea msg_g_idme="L54">  54       1 long15lass="sref">ipc_namespace<1"line" na1me="L55">  55

a5CONFIG_PROcount       &quo     *volatile /*1 one 15class="sref"37"> 137
msg_g.c#L138" id="L">ms);
list_headcount        126        126         1/span>
  92        i href="ipc/msg.cide_ipcs" class="sref">free_i="L60">  160struct init_ipc_ns<     1   struct   51
 116spacss="_lass=        127        idr_destroy(&i href="ipc/msg.cide_ipcL143" class="line" namef="ipc/ms1g.c#L62" id="L62" class=1"line16i);
 g.c#L104" id="L104"IS_ERR> 141}
free_i>  651#define count       ) href="+code=idmsgpd="L126" class="lip" naL143" class="line" name/a>      1        1
  66#define 
a5CONFIG_PROcount         68#define "sysvipcine" name1="L69">  69
 137
msg_g.c#L138" id="L">ms);
{
 126        list_headcount        126       L79" class="line" namcs" class="sref">free_i>"L60">  1ode=ns" class="sref">ns<1/a>) 16_sendass="sref">init_ipc_nsns)->rmi href="ipc/msg.cef">rmi 
 127        idref="L127" class="liL79" class="line" nam"L74">  74static void (m17span>
ipc_u1nlock17 >(struct 1
  17 144" id=" - C_ipc_ a>" i>
@ns: e" name="L1a href="ipc/msg.c#L18" id="Lort for a>static int  */

a5s1eq_file */*<17ent"> *
  1ss="line" name="L81">  81117c#L21" id="L21" class="line" c_namespace" class="sref">ipc1le msgmni1 with the available lowm1em si180lass="sref"pc_params *);
  76#ifdef         list_headi_FS
,
free_i82" id="L182" class="line" name="L182"> 182ass="sref">init_ipc_ns  83  63};
 126         84  92        i href="ipc/msg.cide_ipidr_destroy(&arcvalhref="ipc/msg.carcvalnameL143" class="line" name4a>      1L85" class="line" name="1L85">18ipc/msg.c#L115" id="L115" cl"li_/a>                 116//a>
  74static"lia>        recompute1_msgm185href="ipc/msg">  92        18"fl"        116//a>
  74staticfl"        * i18ode=IPC_MSG_IDS" class="sref 116spacrcu_#L11chref="ipc/msg.cef">rcu_#L11cL76" cizeof(> 126         8918e="L99">  99 ! 126         1/a>        int (void)
  74static void otype;
 11618"fl"        116S_IRWXUG>               S_IRWXUG>ipnaL143" class="line" namea="line" 1"L93" class="line" name=1"L93"1  93          74static void          116"lia>        totalram - ipc_namespace<195   1       74static void  116NUL 70#define nr1_ipc_1s);
 116"="ipc/m_"+cocount_#L11chref="ipc/msg.c"="ipc/m_"+cocount_#L11c   1 97
 116spacrcu_putmsg.ref="ipc/msg.cef">rcu_putmsg   MSGMNI1;1 20it(void)
 103        if2(   3 * Also take into         *kirk_addid() ss="t e" naline" name="L3">   3nb_ns) {
20 class="comment"> * This sho        *linux/capability.h" class="fre="+code=I2CMNI" class="sref">IPCMN2 20ipc/msg.c#L115" id="L115" cli href="ipc/msg.cide_ipme="L116"> 116spacaddid.ref="ipc/msg.cef">addid
 127        idref="L127" class="li  74static void (&class="line" name="L109"> 109}
 207
 108         137
msg207e      ctime\n""L116"> 116spacrcu_putmsg.ref="ipc/msg.cef">rcu_putmsg   allowed;2  3011void ipc_namesp2ce *<2 href="+code=ns" class="2ref">211de=IPC_MSG_IDS" class="sref  74static v" cla 11618"L74" class="line" name"L74">  74static vr clams21 93          74static vc cla 116get_"="oname="L127"> 127MSGMAX;
<2 href2"ipc/msg.c#L114" id="L114" cl  74static vc& 11618"L74" class="line" name"L74">  74static v    MSGMNB;
<2 href2"ipc/msg.c#L115" id="L115" cl18"L74" class="line" name"L74">  74static v & 116ass="line" name="L115"> 115
);
  74static v      11618"L74" class="line" name"L74">  74static v      117
  74static vmessagp;(2amp;  74static vr_list" ;msg_byt2s2 0);
  74static vst" cl;  30s" class="sref">msg_hdrs2/a>, 21pan class="comment"> * Sca2"+code=id2" class="sref">ids[<2 href2"+code=IPC_MSG_IDS" class="srmclass="sref">msq)->q_perm)
 223#ifdef 
      arch_re href="+code=id  74static void  1242/a>void 226" id="L66" class="line" n2pcs(<2 href="+code=ns" class="2ref">22ass="sref">ine" name="L138"ih">msg_g.c#L138" id="L">ms);
addL76" c63};
 126       list_head         127d="L7cs" class="sref">free_2g_ids" cl2ss="sref">msg_ids( = ids[ 127d="L7"L74">  74staticipc/msg.c#L65" id="L65" cme="L116"> 116ude/asm/msg.c#L65" id=ude/asme_ipL143" class="line" nam21llowed" 230"> 130
  74staticsrefahref="ipc/msg.c"refa5" cme="L116"> 116TASK_INTERRUPTIBe" name="L94">  9TASK_INTERRUPTIBe"e_ipL143" class="line" nam21L30">  301"> 131void  127d="L7"L74">  74static *  74static vst" cl;(&ine" name="L138"ih">msg_g.c#L138" id="L">ms);
delL76" c63};
 127d="L7cs" class="sref">free_2/a>);
 = 23ipc/msg.c#L11g.c#L104" id="L104"neme="L127"> 127d="L7"L74">  74static * 116NUL 70#define free_2/cs(<2t;msgmni has been set to2%2\n" 127d="L7"L74">  74static *ip2_init_proc_interface2"sysvip2/msg"2,
wakeupL76" c63};
mem_unit)
hlassidg">  92        killhref="ipc/msg.ckill" nacs" class="sref">free_2/L30">  30  cuid  cgid      stime 2    r23_sendass="sref">init_ipc_ns2how" clas2="sref">sysvipc_msg_proc2show<24ine" name="L51">  51
 243/*24i);
 124 93         116">mem_unit)
hlass"L74">  74staticnexa href="+code=tsnexapc/mL143" class="line" nam2=a>);
 116">mem_unit)
hlass>msg_ctlmni = };
 127d="L7L143" class="line" nam2=cs(<2iver structure for each 2sleep24ass="sref">ns);
  47 137
 127d="L7me="L116"> 116t" clasmrm79" class="linet" clasmrm"+code=q_perm" classtmpd="L126" class=tmpe_ip,9class="sref">list_head        (& *msg_receive2r247e      ctime\n""L116"> 116tmpd="L126" class=tmpe_ipme="L116"> 116tmpd="L126" class=tmpe_ip"L74">  74staticnexa href="+code=tsnexapc/mL143" class="line" nam2=msg"2       struct free_2 href="ip2c/msg.c#L50" id="L50" cl2ass="24me      ctime\n",L104" id="L104"neme="L127"> 127d="L7"L74">  74static * 116NUL 70#define );
 116wake_upsg.c#eeme="L127"> 127 127d="L7"L74">  74staticipc/msg.c#L65" id="L65" c)L143" class="line" nam2s="sref">2r_mode;
  53        long 2     2      
  54       2 long25lass="sref">ipc_namespace<2"line" na2me="L55">  55
kern_ipc_perm};
 126         92        rp;free_2aing">&qu2     *volatile ;
  51
/*2 one 25lass="string">"sysvip2a 49 2/span>
 116ne"L74" class="line" name"L74">  74static vr_list" ;  74static vr_list" ; =      2   struct };
 126       );
 116t" clasmrm79" class="linet" clasmrm"+code=q_perm" classtmpd="L126" class=tmpe_ip,9class="sref">list_headr_list"        (&a_ *  652#define  116tmpd="L126" class=tmpe_ipme="L116"> 116tmpd="L126" class=tmpe_ip"L74">  74staticnexa href="+code=tsnexapc/mL143" class="line" nam2/a>      2        1
n  74staticr_"+c href="+code=tsa_ms"ipname="L116"> 116NUL 70#define   66#define  127  74staticr_ipc/msg.c#L65" id=r_ipc5" c)L143" class="line" nam2>>;
 137
ceiver" 2"L68">  68#define  116  74staticr_"+c href="+code=tsa_ms"ipname="L116"> 116ERR_PTR> 141}
 49 2="L69">  69
"L60">  2ode=ns" class="sref">ns<2/a>) 26it_ns" class="sref">msg_ini2ss="sref"2>ns)->ipc_namesp2/a>(m272L3">   3ipc_u2nlock27"comment"> * Also take into ac class=() wakes up wa&#ers on valust" cln"L20r_list"  wa&#g.c#count,">   3   3  17 144messagp; lasocipc_ns occupyis#counta>void 
void  */
void  * 2/*<27ent"> *
  2ss="line" name="L81">  82127c#L21lass="sref">kern_ipc_perm  76#ifdef         list_heada>(struct free_2le msgmni2 with the available lowm2em si280lasssg_ctlmni =  28f="+code=allo1">  51
  83  63};
 126        116un>
a5
a5CONFIG_PROcount         84ipc_namespace<24a>      2L85" class="line" name="2L85">28ipc/msg.c#L115" id="L115" clexpungt_#L1/msg.c#L65" id=expungt_#L1L76"  126              EIDRML74" class="linEIDRMe" clL143" class="line" nam24me="L66"2" class="sref">recompute2_msgm28);
wakeupL76" ref="L127" class="li  74static vst" cl;;
 * 117
i28ode=IPC_MSG_IDS" class="srefmsq)->q_perm)
  8928e="L9143" class="line" nam2 "L60">  2/a>        int  116ne"L74" class="line" name"L74">  74static vmessagp;);
  74static vmessagp;  63};
 126        116t" clasmrm79" class="linet" clasmrm"+code=q_perm" classtmpd="L126" class=tmpe_ip,9class="sref">list_head"+c href="+code=ts"+cL126,9L127" class="li<_ *2lass="sre2f">totalram -  116tmpd="L126" class=tmpe_ipme="L116"> 116tmpd="L126" class=tmpe_ip"L74">  74staticnexa href="+code=tsnexapc/mL143" class="line" nam295   2     ne="L120dechref="ipc/msg.ce="L120decL76" ref="L127" class="licode=ipc_init_ids" class="sref">ipc_init_ids(&nr2_ipc_29n";
29code=ns" class="sref">ns-> < q_perm)
  74static vc&atomic_set(&MSGMNI2;29;
rcu_putmsg    30it 103        if3();
 * Also take intoL3">   3nb_ns) {
30 class="comment"> * This shomsC      . >
 6tex "L20"liperef=_na>void IPCMN3 30>  17 144 30ass="sref">ine" name="L138"ih">msg_g.c#L138" id="L">ms);
  92        18"_f="ipc/m79" class="line18"_f="ipc/m"sre class="line" name="L76a>(struct   92        m8"fl"       free_3ne" name=3L108"> 108         = msg307e      ctime 63};
 126        116un>
a5
a5CONFIG_PROcount       allowed;3  3311void                m8"fl"       (s3ruct  *<3 href="+code=ns" class="3ref">31i);
ms31 93        SYSCALL_DEFINE2                       ,9 92        m8"fl"       MSGMAX;
<3 href31lass=sg_ctlmni = MSGMNB;
<3 href3"ipc/msg.c#L11class="line" name="L76">  76#ifdef         );
  opCONFIG_PROop  51
CONFIG_PRO
"sysvip3_llowed" 3es" class="sref">msg_byt3s3 0);
 116ude/asm/msg.c#L65" id=ude/asme_ip"L74">  74staticnsproxia>          74statici"ipc/msg.c#L138" id=" class="lL143" class="line" nam3_L30">  33s" class="sref">msg_hdrs3/a>, 31pan class="comment"> * Sca3"+code=id3" class="sref">ids[<3 href3"+code=IPC_MSG_IDS" class="srmclaop 142
 116a href="ipc/msg.c#L76" id="L76"L143" class="line" nam3="L123"> 323#ifdef op 11618"_f="ipc/m79" class="line18"_f="ipc/m"sreL143" class="line" nam3=href="+c3/a>
        op 116NUL 70#define  1243/a>void ipc_namespace<3ce *<3 href="+code=ns" class="3ref">32ipc/msg.c#L115" id="L115" cl18a>
         116"lia>        (<3 href="+code=ns" class="3ref">32);

 11618"fl"       msg_ids(ids[                 127        idref="L127" class="li
 130
  331"> 131void  * Sca3 href="+c3de=msg_init" class="sref3>msg_330lass="sref"ne" name="L138"ih">msg_g.c#L138" id="L">ms);
 * Sca3 "L123"> 3 id="L132" class="line" 3ame="33i"L116"> 116unpm_"+qid_to_us"        kern_ipc_perm       bufd="L126" class=buf" na class="sref">CONFIG_PRO 127qid64_amlass="{
  92        t" ;iong_g.c#L138" id=t" ;ionipnac);
 = );
 = 33ipc/msg.c#L11case"ipc/msg.c#L119"IPC_        1
<8" id=IPC_  pc/m:g_ctlmni = (<3t;msgmni has been set to3%3\n"       bufd="L126" class=buf" na c{
 126       mng_g.c#L138" id="L" na)lL143" class="line" nam3 _ids" cl3href="ipc/msg.c#L137" id3"L137336pc/msg.c#L11case"ipc/msg.c#L119"IPC_OLD3 = ,
CONFIG_PRO 127qid_amlass=ref">CONFIG_PROou/a>          33  cuid  cgid      stime 3    r33pan class="comment"> * Sca3how" clas3="sref">sysvipc_msg_proc3show<34>);
 116memse/a>         343/*34i);
 134            <<<<<<<<< 126       ="i64_eequ_to_ruct atomic_set( ( );
ipc_namespace<3g.c(" cla 116sng_g.c#L138" id="L" nas="sref">atomic_set(" cla(<3iver structure for each 3sleep34n"        (r cla 116sng_g.c#L138" id="L" nas="sref">atomic_set(r cla  47 137
        (c cla 116sng_g.c#L138" id="L" nas="sref">atomic_set(c clamsg_receive3r34lass="string">"sysvip3=msg"3       struct atomic_set(c& 116USHRT_MAX        (c& 116USHRT_MAX);
 3r_mode;
 ,L104" id="L104"ou/a>        (c& 116sng_g.c#L138" id="L" nas="sref">atomic_set(c&  53        long 3     35            <<<<<<<<< 126       ou/a>        (lc& 116sng_g.c#L138" id="L" nas="sref">atomic_set(c&);
  54       3 long35lass="sref">ipc_namespace<3"line" na3me="L55">  55
atomic_set(     116USHRT_MAX&qu3     *volatile        ou/a>        (     116USHRT_MAX/*3 one 357e      ctime\n"<<<<<<<< 126       ou/a>        (     116sng_g.c#L138" id="L" nas="sref">atomic_set(    
atomic_set( & 116USHRT_MAX     3   struct        ou/a>        ( & 116USHRT_MAX else143" class="line" nam3ef="ipc/m3sg.c#L63" id="L63" class3="lin36            <<<<<<<<<<<<<<<<< 126       ou/a>        ( & 116sng_g.c#L138" id="L" nas="sref">atomic_set( &);
 116ou/a>        (l & 116sng_g.c#L138" id="L" nas="sref">atomic_set( &  66#define         (l     116sng_g.c#L138" id="L" nas="sref">atomic_set(l     137
        (l     116sng_g.c#L138" id="L" nas="sref">atomic_set(l      68#define "sysvip3> 49 3="L69">  69
       bufd="L126" class=buf" na cref="L127" class="liou/a>        "L60">  3ode=ns" class="sref">ns<3/a>) 36a href="ipc/m
ns)-> = (m371de=IPC_MSG_I="L63"> arch_re- 126       EINVA 70#define ipc_u3nlock372 href="ipc/m
ine" name="L138"ih">msg_g.c#L138" id="L">ms);
 * Sca3L>;
static int qid_ com_us"        CONFIG_PRO 127qid64_amlass="{
kern_ipc_perm       bufd="L126" class=buf" na cg">  92        t" ;iong_g.c#L138" id=t" ;ionipnac);
 */*<378            =   3ss="line" name="L81">  83137a href="ipc/mcase"ipc/msg.c#L119"IPC_        1
<8" id=IPC_  pc/m:g_ctlmni = );
 126       ou/a>         381de=IPC_MSG_I="L63"> ,arch_re- 126       EFAULT70#define   83  8438ipc/msg.c#L11sg_ctlmni = recompute3_msgm38n"CONFIG_PRO 127qid_amlass=ref">CONFIG_PROtbuf_ol ;
 *i387e      ctime\n"g.c#L104" id="L104"unpm_ com_us"               bufd="L126" class=buf" na ccizeof(L127" class="litbuf_ol  3 class="line" name="L89"3>  89388           <<<<<<<<<,arch_re- 126       EFAULT70#define   3/a>        int  * Sca3a href="i3pc/msg.c#L92" id="L92" c3lass=39>);
 116ou/a>        atomic_set(  116tbuf_ol ( (&3 "L116"> 116ou/a>        atomic_set(  116tbuf_ol (        ou/a>        atomic_set(  116tbuf_ol ( totalram - ipc_namespace<395   3     ( &nr3_ipc_39n"       ou/a>        atomic_set( & 116tbuf_ol (l &;
39class="line" name="L1else143" class="line" nam3> < atomic_set( & 116tbuf_ol ( &MSGMNI3;39me      ctime\n"arch_re0L143" class="line" nam402" id="L402" class="line" name="L402"> 40>);
 103        if4( =  &g4;        EINVA 70#define nb_ns) {
403);
nr407"> 40ass="sref">ns);
 108         */
   3msg40

 6tex">   3 *
  3411void 
 6tex is#taken insideupyis#functiona>void  14441isref">ig">  92        m8"ctl_downg_g.c#L138" id=m8"ctl_down   CONFIG_PRO">  76#ifdef           92        m8q    92        cm ms41            <<<<<<<<<<<<<<<CONFIG_PRO 127qid_amlass=ref">CONFIG_PRO__us"               bufd="L126" class=buf" na cg">  92        t" ;iong_g.c#L138" id=t" ;ionipnac);
MSGMAX;
<4 href41lass=sg_ctlmni = MSGMNB;
<4 href4"ipc/msg.c#L11class="line" name="L76a>(struct );
 127qid64_amlass=ne" name="L138"uninitialized_va         127qid64ipnacL143" class="line" nam4_e" name=4c#L117" id="L117" class=4line"41class="line" 1">  51
 126         92        er        msg_byt4s41e="L9143" class="line" nam4_L30">  34s" class="sref">msg_hdrs4/a>, 41me      ctimeg.c#L104" id="L104"um #define  = ids[<4 href42>);
qid_ com_us"         127qid64ipna,  126       bufd="L126" class=buf" na c 92        t" ;iong_g.c#L138" id=t" ;ionipnacc);
 423#ifdef  ,arch_re- 126       EFAULT70#define 
 1244/a>void ipc_namespace<4ce *<4 href="+code=ns" class="4ref">42ipc/msg.c#L115" id="L115" clmsgpd="L126" class="lip" nane="L116"> 116spcctl_pre_downg_g.c#L138" id=spcctl_pre_down    127        id 92        m8q  42n" 127qid64ipnaine" name="L138"ma>(  127qid64ipnaine" name="L138"ma>( &msg_ids( 141}
ids[ 141}
 130
  341"> 131void  116un>
a5
a5CONFIG_PROcount       ipc_namesp4 "L123"> 4 id="L132" class="line" 4ame="431de=IPC_MSG_IDS" class="srefer         116"="ipc/m_"+cocount_m8"ctl               cm        ou/ass="sref">msq)-&gou/ass="sra hrL143" class="line" nam4(436" id="L66" class="line" n4(cs(<4t;msgmni has been set to4%4\n"4 116amp;,
  34  cuid  cgid      stime 4    r43a href="ipc/mcase"ipc/msg.c#L119"IPC_SET70#define  = sysvipc_msg_proc4show<44>);
 127qid64ipnaine" name="L138"ma>( & 116"+code=atomic_set" class="sref">atomic_set(ctlmn116" id="L116" c/a>(ctlmn1msg.m=ef="=ef="g_ctlmni =  443/*441de=IPC_MSG_I="L63">  =  144            <<<<<<<<);
msq)-&gou/ass="sra hrL143" class="line" nam4g.cns);
  47 137
q_perm)
  74static v & 116m8q  64e="L127"> 127qid64ipnaine" name="L138"ma>( &msg_receive4r44lass="string">"sysvip4=msg"4       struct CONFIG_PRO">  updatet  127qid64ipnaine" name="L138"ma>(  137
q_perm)
  74static vc cla 116get_f="oname="L127"> 127);
 */
 4r_mode;
<<<<<<<<<<<<<<<<<*clasicter  void   53        long 4     45"comment"> * Also take into <<<<<<<<<<<<<<<<*linux/capability.h" class="fr4aa>);
  54       4 long453           <<<<<<<<<"L116"> 116expungt_#L1/msg.c#L65" id=expungt_#L1L76"  126              EAGAINL74" class="linEAGAIN" nacL143" class="line" nam4"line" na4me="L55">  55
 */

void  */
/*4 one 457e      ctime\n""L116"> 116"s>wakeupd="L126" class=ss>wakeupL76" ref="L127" class="li  74static vst" cl;
 =      4   struct msq)-&gou/ass="sra hr:g_ctlmni = );
(ss="sref">msq)->q_perm)
 = (<4>  66#define  127        ine" name="L138" >
 6texdestroy" class= >
 6tex">hreL143" class="line" nam4f_ids" cl4uudit of ipc object prop4r7" c46class="line" arch_re href="+code=ider          68#define   69
"L60">  4ode=ns" class="sref">ns<4/a>) 46a hre href="+code=idSYSCALL_DEFINE3       ,9 92        m8q  ,9 92        cm CONFIG_PRO 127qid_amlass=ref">CONFIG_PRO__us"               bufd="L126" class=buf" nac);
ns)->m471de=IPC_MSG_I1">  51
 126       ipc_u4nlock472 href="ipc/mg">  92        er                t" ;iong_g.c#L138" id=t" ;ionipnaL143" class="line" nam4da>);
  51
  76#ifdef         static int  *"sysvip4L 49 4/*<470);
 116spc>  4ss="line" name="L81">  84147;
 116ude/asm/msg.c#L65" id=ude/asme_ip"L74">  74staticnsproxia>          74statici"ipc/msg.c#L138" id=" class="lL143" class="line" nam4le msgmni4 with the available lowm4em si48e" class="sref">ipc_namesp482" id="L482" class="line" name="L482"> 481de=IPC_MSG_Iswitchc#L104" id="L104"um   83#define  =   84#define  = 48ipc/msg.c#L11sg_ctlmni = recompute4_msgm48n"CONFIG_PROCONFIG_PRO *  92        max_  i48lass="string">"sysvip48 49 4 class="line" name="L89"4>  89488           <<<<<<<<  4/a>        int );
 */
   3<<<<<<<<<<<<<<<<<*cWe must not,arch_re_namelplaack dataa>void  * Also take into <<<<<<<<<<<<<<<<*cdu  to padding,9gt's not,enough>void totalram -  * This sho<<<<<<<<<<<<<<<<*cto stt all member fieldsa>void   17 144nr4_ipc_49n" 116"="ipc/m_"+cocount_m8"ctl               cm ;
49class="line" name="L1g.c#L104" id="L104"er        MSGMNI4;49me      ctime\n" 92        memse/a>         50>);
 116m/ginfo       mni        116"+code=atomic_set" class="sref">atomic_set(ctlmni        103        if5( "L116"> 116m/ginfo       maxdestroy" class=ma>maxnameme="L116"> 116"+code=atomic_set" class="sref">atomic_set(ctlmaxdestroy" class=ma>(ctlmaxnameL143" class="line" nam5n2" name=5LL93" class="line" name=5class50            <<<<<<<<<"L116"> 116m/ginfo       mn116" id="L116" c/a>mn1msg.me="L116"> 116"+code=atomic_set" class="sref">atomic_set(ctlmn116" id="L116" c/a>(ctlmn1msg.L143" class="line" nam5n3" name=5L">totalram - ) {
503           <<<<<<<<<"L116"> 116m/ginfo       ssz        116MSGSSZ70#define se"        116MSGSEG70#define nr507"> 50n" 127        ine" name="L138" >
 6texdestroy" class= >
 6tex">hreL143" class="line" nam5ne" name=5L108"> 108        #define  = msg507e      ctime\n"<<<<<<<< 126       m/ginfo       pool        116 127        ine" name="L138"in_us"msg.c#L138" id="n_us"msg.L143" class="line" nam5n8ef="+co5eL99" id="L99" class="li5,"L116"> 116m/ginfo       mapd="L126" class=ma>mapmsg.me="L116"> 116atomic_rea atomic_set(hdl;hreL143" class="line" nam5n9ef="+co5eNI" class="sref">MSGMNI5=msg_50me      ctime\n",L104" id="L104"m/ginfo       tql        116atomic_rea atomic_set(&(s5ruct  =  *<5 href="+code=ns" class="5ref">511de=IPC_MSG_I="L63"> ,L104" id="L104"m/ginfo       mapd="L126" class=ma>mapmsg.me="L116"> 116MSGMAP70#define  &g5de=msg_ctlmax" class="sr5f">ms51            <<<<<<<<<<<<<<<<< 126       m/ginfo       pool        116MSGPOO 70#define MSGMAX;
<5 href513           <<<<<<<<<<<<<<<<tql        116MSGTQ 70#define MSGMNB;
<5 href51 116spc>get_max   127        cL143" class="line" nam5_e" name=5c#L117" id="L117" class=5line"51class="line" name="L137"> 137
 127        ine" name="L138" >
 6texdestroy" class= >
 6tex">hreL143" class="line" nam5_ref="+co5amp;       bufd="L126" class=buf" na cref="L127" class="liCONFIG_PROmsg_byt5s518           <<<<<<<<<,arch_re- 126       EFAULT70#define   35s" class="sref">msg_hdrs5/a>, 51me      ctime\n"arch_re(L127" class="liids[<5 href52>);
 523#ifdef #define  */
  countcid *linux/capability.h" class="fr5=href="+c5/a>
#define  =  1245/a>void 52 127qid64_amlass=ne" name="L138"tbufd="L126" class=tbuf" naL143" class="line" nam5"7" id="L5 href="+code=ns" class="5ref">52n"  92        success_arch_r       msg_ids(ids[ 130
  351"> 131void  * Sca5 href="+c5de=msg_init" class="sref5>msg_53>);
#define  =  5 id="L132" class="line" 5ame="531de=IPC_MSG_I="L63"> ,L104" id="L104"m/"L74" class="line" nameme="L116"> 116a>  ="sref">msq)-> 141}
q_perm)
,arch_re href="+code=idPTR_ERR> 141}
q_perm)
53,L104" id="L104"success_arch_r        116m8qref">q_perm)
  74static void (<5t;msgmni has been set to5%53n" =  116a>  ="sr_chesref">msq)-> 141}
q_perm)
,
 141}
q_perm)
  35  cuid  cgid      stime 5    r53me      ctime\n",L104" id="L104"success_arch_r       sysvipc_msg_proc5show<54>);
 543/*541de=IPC_MSG_I="L63"> L104" id="L104"er               EACCES70#define  154            <<<<<<<<  74static void );
msq)-&gou/ass="sra hrL143" class="line" nam5g.c(<5iver structure for each 5sleep54n" 116"="ipc/m_"+cocount_m8"ctl               cm   47msg_receive5r547e      ctime\n"<<<<<<<       ou/ass="sref">msq)-&gou/ass="sra hrL143" class="line" nam5g8ef="+co5       struct  137
        cL143" class="line" nam5a href="i5pc/msg.c#L51" id="L51" c5lass=55e" class="sref">ipc_namesp5a"L143"> 5r_mode;
 L104" id="L104"_namel_to_>ip64t   74static void (   53        long 5     55            <<<<<<<<<"L116"> 116tbufd="L126" class=tbuf" naine" name="L138"ma>(s cla 116m8qref">q_perm)
  74static vs cla);
  54       5 long553           <<<<<<<<<"L116"> 116tbufd="L126" class=tbuf" naine" name="L138"ma>(r cla 116m8qref">q_perm)
  74static vr cla  55
 116tbufd="L126" class=tbuf" naine" name="L138"ma>(c cla 116m8qref">q_perm)
  74static vc cla(<5     *volatile (c& 116m8qref">q_perm)
  74static vc& 137
(qnu href="+code=ipc/a>(qnu lass="l=="L116"> 116m8qref">q_perm)
  74static vqnu href="+code=ipcq(qnu lassL143" class="line" nam5aode=ids"5/*5 one 557e      ctime\n""L116"> 116tbufd="L126" class=tbuf" naine" name="L138"ma>(q& 116="sref">q_perm)
  74static v & 116tbufd="L126" class=tbuf" naine" name="L138"ma>(lsp   116m8qref">q_perm)
  74static vlsp   137
(lrp   116m8qref">q_perm)
  74static vlrp       5   struct msq)->q_perm)
 g.c#L104" id="L104"unpm_a>qid_to_us"        qid_to_us" "+code=q_perm" classbufd="L126" class=buf" na cref="L127" class="litbufd="L126" class=tbuf" na, L127" class="lit" ;iong_g.c#L138" id=t" ;ionipnacc);
);
#define  =   68#define  116er         116m8"ctl_downg_g.c#L138" id=m8"ctl_down     69
"L60">  5ode=ns" class="sref">ns<5/a>) 56me      ctimedefault:g_ctlmni = ns)->       EINVA 70#define (m571de=IPC_MSG_I
ipc_u5nlock572 hre       ou/ass="sref">msq)-&gou/ass="sra hr:g_ctlmni = (ss="sref">msq)->q_perm)
static int  *"sysvip5L 49 5/*<570);
ig">  92        mp;t;syd="L126" class=tp;t;sy"+cod1">  51
;sy"> 126               mypa  92        mo38href="+code=ipc/138    c);
  5ss="line" name="L81">  85157;
 = );
 581de=IPC_MSG_Isg_ctlmni =   83#define  =   8458#define  = recompute5_msgm58n"atomic_set        mypa *i587e      ctime\n"<<<<<<< 5 class="line" name="L89"5>  89588           <<<<<<<<#define  =   5/a>        int atomic_set);
(&5 ,breakL143" class="line" nam5/="line" 5"L93" class="line" name=5"L93"59            <<<<<<<<#define  = totalram - atomic_set,<<<<<<<nr5_ipc_59n",breakL143" class="line" nam5/_ids" cl5L97" class="line" name="5L97">59class="line" 
"L60">  5MNI" class="sref">MSGMNI5;59pan class="comment"> * Sca602" id="L602" class="line" name="L602"> 60>);
iipc/msg.c#L119"inline"  href="+code=inlinee    g">  92        pipelinedvst" "  href="+code=pipelinedvst" "+cod1">  51
 126       CONFIG_PRO;syd="L126" class=m/a>;sy"> 126        103        if6( = CONFIG_PROlist_hea totalram - ) {
60lass="sref">ipc_namespace<6n4" name=6L     116m8qref">q_perm)
  74static vr_list" s        nr607"> 60n"  74static vr_list" s =  108        CONFIG_PROr_list" d="L126" class=m/a>r_list" "> 126       msg60lass="string">"sysvip6n8ef="+co6eL99" id="L99" class="li6        116list_entria>        CONFIG_PROr_list" d="L126" class=m/a>r_list" &quo cL127" class="lir_listd="L126" class=r_lista hreL143" class="line" nam6n9ef="+co6eNI" class="sref">MSGMNI6=msg_60me      ctime\n"5" id="L115" cltmpd="L126" class=tmpname =="L116"> 116tmpd="L126" class=tmpname"L74">  74staticnex/a>        (s6ruct                 74staticr>;symypa         74staticr>;o38href="+code=ipcr>;o38" nacm=ef="=ef="g_ctlmni =  *<6 href="+code=ns" class="6ref">611de=IPC_MSG_I="L63"> q_perm)
                74staticr>tsref">msq)-&gr>tsr" na g_ctlmni = ms61            <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 126         74staticr>;symypa         74staticr>;o38href="+code=ipcr>;o38" naccmsg_ctlmni = MSGMAX;
<6 href61lass="sref">ipc_namespace<6c4" name=6ass="sref">MSGMNB;
<6 href61       list_del         74staticr>listd="L126" class=r_lista hreL143" class="line" nam6_7" id="L6msgmni(  74staticr>;axcizehref="+code=ipcr>;axcize"<c 126       atomic_set =   74staticr>;sy 116NUL 70#define   74staticr>tsref">msq)-&gr>tsr" naeL143" class="line" nam6_8ef="+co6es" class="sref">msg_byt6s618           <<<<<<<<<,<<<<<<<< 126       smp_m116" id="L116" csmp_m1"+codeL143" class="line" nam6_9ef="+co6s" class="sref">msg_hdrs6/a>, 61me      ctime\n"<<<<<<<<<<<<<<<< 126         74staticr>;sy 116ERR_PTR> 141}
       E2BIG70#define ids[<6 href62>);
 623#ifdef  ,<<<<<<<< 126         74staticr>;sy 116NUL 70#define 
  74static vlrp   116task_p  _vn d="L126" class=task_p  _vn "+code=q_perm" class=" d="L126" class=m/ name"L74">  74staticr>tsref">msq)-&gr>tsr" naeL143" class="line" nam6124"> 1246/a>void   74static vr cla 116get_f="oname="L127"> 127 *<6 href="+code=ns" class="6ref">62,L127" class="liwake_up_process70#define   74staticr>tsref">msq)-&gr>tsr" naeL143" class="line" nam6"7" id="L6 href="+code=ns" class="6ref">62n",L127" class="lismp_m116" id="L116" csmp_m1"+codeL143" class="line" nam6"e" name=6ss="sref">msg_ids(  74staticr>;sy 116ids["sysvip6p8ef="+co630"> 130
  361"> 131void  6 id="L132" class="line" 6ame="631de=IPC_MSG_I
(&);
636" id="L66" class="line" n6(cs(<6t;msgmni has been set to6%63n&quolong  92        do>;sys" "  href="+code=do>;sys" "+codg">  92        m8q          __us"                mmex/a>         =  116  92        m8gflyd="L126" class=m/afly" nac);
6 =   51
 126         36  cuid  cgid      stime 6    r63me      ctimelass="sref">CONFIG_PRO;syd="L126" class=m/a>;sy"> 126       sysvipc_msg_proc6show<64>);
  92        er         643/*641de=IPC_MSG_I1">  51
  76#ifdef          1642 hre         116ude/asm/msg.c#L65" id=ude/asme_ip"L74">  74staticnsproxia>          74statici"ipc/msg.c#L138" id=" class="lL143" class="line" nam6g.c(<6iver structure for each 6sleep64n"        atomic_set(ctlmaxdestroy" class=ma>(ctlmaxname ||9(long)="L116"> 116        m8q    47msg_receive6r647e      ctimeg.c#L104" id="L104"mmypa  36c/msg.c#L50" id="L50" cl6ass="64pan class="comment"> * Sca6a href="i6pc/msg.c#L51" id="L51" c6lass=650           < 126        116load>;syd="L126" class=load>;sy"+code=q_perm" class=mex/a>         116 6r_mode;
 141}
  53        long 6     65            <<<<<<<<);
  54       6 long65lass="sref">ipc_namespace<6a.c  55
d="L126" class=m/a" nas="sref">atomic_set        mmypa(<6     *volatile atomic_set 116/*6 one 657e      ctime 126        116a>  ="sr_chesref">msq)-> 141}
q_perm)
 =  137
 116PTR_ERR> 141}
q_perm)
     6   struct        ou/afrea);
CONFIG_PROst" " d="L126" class=m/a>st" " lass="L116"> 116(<6>  66#define   68#define   74static void   69
       ou/a href=afreans<6/a>) 66pan class="comment"> * Sca6ss="sref"6>ns)-> 137
 116"="ipc/m_"+cocount_m8"s" "  href="+code="="ipc/m_"+cocount_m8"s"    q_perm)
              (m671de=IPC_MSG_I="L63"> g.c#L104" id="L104"er        ipc_u6nlock67            <<<<<<<<<<<<<<<<       ou/a href=afrea);
ipc_namespace<6sline" na6ruct  116m8qref">q_perm)
  74static vc& 116="sref">q_perm)
  74static v & 116m8qref">q_perm)
  74static vqnu href="+code=ipcq(qnu lasst<=="L116"> 116="sref">q_perm)
  74static v &static int  * 6/*<67e="L9143" class="line" nam6="L60">  6ss="line" name="L81">  86167me      ctime\n"3t"> */
#define  =  681de=IPC_MSG_I="L63"> ,L127" class="lier               EAGAIN70#define   83       ou/a href=afrea  8468 116"s_ad "  href="+code="s_ad    q_perm)
recompute6_msgm68n"  74statici"iprcu>getode=sg.c#L138" id=" clrcu>getode   q_perm)
 *CONFIG_PROss="sref">msq)->q_perm)
i687e      ctime\n"L127" class="li 6 class="line" name="L89"6>  8968e="L9143" class="line" nam64"L60">  6/a>        int   74static void );
putode=sg.c#L138" id=" clrcu>putode"+code=q_perm" class="sref">q_perm)
(&6 g.c#L104" id="L104"q_perm)
  74static void   74staticer               EIDRM70#define totalram - nr6_ipc_69n" 116"s_del       69ss="l =   74staticer               ERESTARTNOHAND  6MNI" class="sref">MSGMNI6;69me      ctime\n"<<<<<<<       ou/a href=afrea 70>);
 103        if7(totalram - ) {
703           < 126       m8qref">q_perm)
  74static vlsp   116task_tg  _vn d="L126" class=task_tg  _vn "+code=q_perm" classude/asm/msg.c#L65" id=ude/asme_ipeL143" class="line" nam704" name=7L    q_perm)
  74static vs cla 116get_f="oname="L127"> 127nr707"> 70n&quo143" class="line" nam7ne" name=7L108"> 108        q_perm)
        = msg707e      ctime\n"Lt"> */
atomic_set  74static vmessage;MSGMNI7=msg_70me      ctime\n"5" id="L115" clm8qref">q_perm)
  74static vc& 116(s7ruct  116m8qref">q_perm)
  74static vqnu href="+code=ipcq(qnu lass++L143" class="line" nam7_e" name=7 href="+code=ns" class="7ref">711de=IPC_MSG_I="L63"> >  74staticatomic_ad "  href="+code=atomic_ad "+cod href="+code=id="ysz       atomic_set(&ms71            <<<<<<<<<>  74staticatomic_inc"  href="+code=atomic_inc"+codref="L127" class="li atomic_set(hd sMSGMAX;
<7 href713           <
MSGMNB;
<7 href716" id="L66" class="line" n7_7" id="L7msgmni(       er         116NUL 70#define "sysvip7_8ef="+co7es" class="sref">msg_byt7s718     126       ou/a href=afreamsg_hdrs7/a>, 71me      ctimeref">CONFIG_PROss="sref">msq)->q_perm)
ids[<7 href72>);
< 126       ou/afrea =  723#ifdef #define 
;syd="L126" class=frea>;sy"+cod href="+code=id="yd="L126" class=m/a" naeL143" class="line" nam7"3" name=7/a>void  *<7 href="+code=ns" class="7ref">7272n&quo143" class="line" nam7"e" name=7ss="sref">msg_ids(,9 href="+code=idm8q  CONFIG_PROCONFIG_PRO__us"                      size_/a>         116 = ids[,9 href="+code=idm8gflyd="L126" class=m/afly" nac);
 130
  371"> 131void         mmypaipc_namesp7 "L123"> 7 id="L132" class="line" 7ame="731de=IPC_MSG_Ig.c#L104" id="L104"get_us"        atomic_set(&);
atomic_set         116        *<7+code=KERN_INFO" class="7ref">73iipc/msg.c#L119"inline"  href="+code=inlinee    g">  92        convert>;o38href="+code=ipcconvert>;o38"+codlong > 126       9 href="+code=idm8gflyd="L126" class=m/afly" nac);
7 =  */
  37  cuid  cgid      stime 7    r73me   Lt"> */
sysvipc_msg_proc7show<74>);
 */
 743/*741de=ILt"> */
 1742 hreLt"> */
 */
  47 126        = msg_receive7r747e      ctime\n"> 126        126       #define   37c/msg.c#L50" id="L50" cl7ass="74me      ctime
#define  7r_mode;
 arch_re href="+code=idSEARCH_NOTEQUA 70#define   53        long 7     75            );
  54       7 long753    
  55
(<7     *volatile   92        m8q          __us"                mmex/a>         =  116        msymypd="L126" class=m/amyp   < cg">9 href="+code=idm8gflyd="L126" class=m/afly" nac);
/*7 one 757e   sg_ctlmni =   51
 126       CONFIG_PRO;syd="L126" class=m/a>;sy"> 126            7   struct   92        =o38href="+code=ipc/138    L143" class="line" nam7<"L143"> 7g.c#L62" id="L62" class=7"line761de=IPC_MSG_I1">  51
  76#ifdef         );
 116       EINVA 70#define (<7>  66#define  116uonvert>;o38href="+code=ipcconvert>;o38"+codref="L127" class="li        116ude/asm/msg.c#L65" id=ude/asme_ip"L74">  74staticnsproxia>          74statici"ipc/msg.c#L138" id=" class="lL143" class="line" nam7fode=ids"7"L68">  68#define "sysvip7f8ef="+co7="L69">  69
        116a>  ="sr_chesref">msq)->ns<7/a>) 769            141}
q_perm)
ns)->q_perm)
(m771de=I143" class="line" nam7/f="ipc/m7lock" class="sref">ipc_u7nlock77             = );
CONFIG_PROr_list" d="L126" class=m/a>r_list" "ref">CONFIG_PROCONFIG_PROlist_hea static int  116ERR_PTR> 141}
       EACCES70#define  *  74static void  7/*<778           <<<<<<<<       ou/a href=70#define   87177pan class="comment"> * Sca7le msgmni7 with the available lowm7em si78>);
 116ERR_PTR> 141}
       EAGAIN70#define  781de=IPC_MSG_I="L63">  126       tmpd="L126" class=tmpname =="L116"> 116m8qref">q_perm)
  74static vmessage;          83  74static vmessage;  84CONFIG_PRO;syd="L126" class=m/a>;sy"> 126       walk>;syd="L126" class=walk>;synameL143" class="line" nam7lline" na7L85" class="line" name="7L85">786" id="L66" class="line" n74me="L66"7" class="sref">recompute7_msgm78n"  126       walk>;syd="L126" class=walk>;syname =="L116"> 116list_entria>        CONFIG_PRO;syd="L126" class=m/a>;sy&quo,9 href="+code=idm_listd="L126" class=m_lista hreL143" class="line" nam78_ids" cl7e *       walk>;syd="L126" class=walk>;syname c 126               = i787e      ctime\n";;;;;;;;;;;;!L104" id="L104""="ipc/m_"+cocount_m8"rcv       q_perm)
       walk>;syd="L126" class=walk>;syname c 126       ude/asm/msg.c#L65" id=ude/asme_ip g_ctlmni =  7 class="line" name="L89"7>  89788           <<<<<<<<<,,,,,,,,,;  126               =  * Sca7a href="i7pc/msg.c#L92" id="L92" c7lass=79>);
  126        116walk>;syd="L126" class=walk>;synameL143" class="line" nam7/a>(&7                 g.c#L104" id="L104" 116SEARCH_LESSEQUA 70#define  =   126       walk>;syd="L126" class=walk>;synames="sref">atomic_set = totalram -   126        116walk>;syd="L126" class=walk>;synameL143" class="line" nam7/line" na7       126              walk>;syd="L126" class=walk>;synames="sref">atomic_setnr7_ipc_79n" = 79class="line" name="L1<<<<<<<<<<<<<<<<="L63">  126        116walk>;syd="L126" class=walk>;synameL143" class="line" nam7/ode=ids"7 href="+code=MSGMNI" cla7ss="s797e      ctime\n";;;;;;;;;;;;;;;;;;;;;;;;breakL143" class="line" nam7aid="L89"7#L99" id="L99" class="li7ne" n798           <<<<<<<<MSGMNI7;79me      ctime\n"<<<<<<<<}143" class="line" nam802" id="L802" class="line" name="L802"> 80>);
  126       tmpd="L126" class=tmpname =="L116"> 116tmpd="L126" class=tmpname"L74">  74staticnex/a>         103        if8( }143" class="line" nam802" name=8LL93" class="line" name=8class80            <<<<<<<< 141}
 = totalram - ) {
803           <<<<<<<<<<<<<<<< */
 */
nr807"> 80n&quoLt"> */
 */
msg807e      ctime\n"<<<<<<<       atomic_set 141}
 =  116ERR_PTR> 141}
       E2BIG70#define MSGMNI8=msg_80me      ctime\n";;;;;;;;;;;;;;;;goto< 126       ou/a href=70#define (s8ruct 811de=IPC_MSG_I="L63"> <<<<<<<       list_del       atomic_setms81            <<<<<<<<<<<<<<<<       q_perm)
  74static vqnu href="+code=ipcq(qnu lass--L143" class="line" nam8_3" name=8ass="sref">MSGMAX;
<8 href813           <<<<<<<<<<<<<<<<       q_perm)
  74static vr cla 116get_f="oname="L127"> 127MSGMNB;
<8 href81       q_perm)
  74static vlrp   116task_tg  _vn d="L126" class=task_tg  _vn "+code=q_perm" classude/asm/msg.c#L65" id=ude/asme_ipeL143" class="line" nam8_7" id="L8msgmni(  126       m8qref">q_perm)
  74static vc& 116atomic_setatomic_setatomic_setatomic_set(&atomic_setatomic_set(hd smsg_byt8s818           <<<<<<<<  74staticss_wakeupd="L126" class=ss_wakeup"+codref="L127" class="liq_perm)
  74static vst" " ;msg_hdrs8/a>, 81me      ctime\n";;;;;;;;ef">atomic_set(ss="sref">msq)->q_perm)
ids[<8 href82>);
 823#ifdef  }143" class="line" nam8=href="+c8/a>
 */
void #define  =  *<8 href="+code=ns" class="8ref">82        116ERR_PTR> 141}
       ENOMSG> 141}
82n" goto< 126       ou/a href=70#define msg_ids(ids[  74static vr_list" ; 130
#define  116ude/asm/msg.c#L65" id=ude/asme_ipL143" class="line" nam8"9ef="+co81"> 131void  116        116=o38href="+code=ipc/138    L143" class="line" nam8 "L123"> 8 id="L132" class="line" 8ame="831de=IPC_MSG_I="L63"> g.c#L104" id="L104" 141}
        116INT_MAX70#define  *<8+code=KERN_INFO" class="8ref">83        116m8ysz        116m8r_  116ERR_PTR> 141}
       EAGAIN70#define   74staticsrefehref="+code=ipcsrefe" na =="L116"> 116TASK_INTERRUPTIBLEhref="+code=ipcTASK_INTERRUPTIBLE" naL143" class="line" nam8 ref="+co8_init_proc_interface8       /a>(ss="sref">msq)->q_perm)
  38  cuid  cgid      stime 8    r83me      ctime\n"5" id="L115" clsysvipc_msg_proc8show<84e" class="sref">ipc_namesp8h"L123"> 843/*841de=IPC_MSG_I="L63">  t"> */
 1842 hreLt"> */
 */
 */
 */
  47 */
msg_receive8r847e   Lt"> */
 */
readaref=() prev hrs preemption between  38c/msg.c#L50" id="L50" cl8ass="84me   Lt"> */
);
 */
 8r_mode;
 ne" name="L138"rcu>readaref=  53        long 8     852 hre  54       8 long853           <<<<<<<<< t"> */
  55
 */
 */
 */
/*8 one 857e   Lt"> */

CONFIG_PRO;syd="L126" class=m/a>;sy&quo*)"L116"> 116m8r_   3860struct #define  =      8   struct   126       cpu>relax/msg.c#L65" id=upu>relax"+codeL143" class="line" nam8<"L143"> 8g.c#L62" id="L62" class=8"line861de=IPC_MSG_I="L63"> <<<<<<<       CONFIG_PRO;syd="L126" class=m/a>;sy&quo *)"L116"> 116m8r_ );
 */
 */
 */
  68#define  */
  69
 141}
       EAGAIN70#define  =   38ode=ns" class="sref">ns<8/a>) 86me      ctime\n";;;;;;;;ef">atomic_setreadass="sref">msq)-&grcu>readass="sr"+codeL143" class="line" nam8ss="sref"8>ns)->(m871de=IPC_MSG_I="L63"> }143" class="line" nam8/f="ipc/m8lock" class="sref">ipc_u8nlock872 hre */
 */
 */
static int   74static void  *atomic_setreadass="sref">msq)-&grcu>readass="sr"+codeL143" class="line" nam8s8ef="+co8/*<87e="L9143" class="line" nam8Lhref="ip8ss="line" name="L81">  88187me      ctime\n"5t"> */
 */
 881de=ILt"> */
  83       CONFIG_PRO;syd="L126" class=m/a>;sy&quo*)"L116"> 116m8r_   84 141}
       EAGAIN70#define 88       ou/a href=70#define recompute8_msgm88n&quo143" class="line" nam88_ids" cl8e *i887e      ctime\n"g.c#L104" id="L104"signalreendiny =  8 class="line" name="L89"8>  89888           <<<<<<<<<, 126        141}
       ERESTARTNOHAND> 141}
       ou/a href=70#define  = );
       /a>(ss="sref">msq)->q_perm)
(&8         breakL143" class="line" nam8/="line" 8"L93" class="line" name=8"L93"89            <<<<<<<<<}143" class="line" nam8/" class=8f">totalram -  141}
nr8_ipc_89n"89class143" class="line" nam8/ode=ids"8 href="+code=MSGMNI" cla8ss="s897e      ctime"L116"> 116m8ysz        116m8ysz       atomic_setatomic_set 116m8ysz        126       p=mypa 116m8yd="L126" class=m/a" nas="sref">atomic_setMSGMNI8;899           ;syd="L126" class=stora>;sy    116 116 90>);
 116m8ysz              EFAULT70#define  103        if9(       frea>;syd="L126" class=frea>;sy"+cod href="+code=id="yd="L126" class=m/a" naeL143" class="line" nam9n3" name=9L">totalram - ) {
903    143" class="line" nam904" name=9L    nr907"> 90n&quo}143" class="line" nam9n6" name=9L97" class="line" name="9href=90class143" class="line" nam9href="+co9e=msg_ctlmni" class="sre9">msg907e    href="+code=idSYSCALL_DEFINE5       ,9 href="+code=idm8q  CONFIG_PROCONFIG_PRO__us"                      size_/a>         1ode=idm8ysz        = ,9 href="+code=idm8gflyd="L126" class=m/afly" nac);
MSGMNI9=msg_90me   sg_ctlmni = (s9ruct         er        911de=I143" class="line" nam9_2" name=9de=msg_ctlmax" class="sr9f">ms91            < 126       er               do>;syrcv       ;syrcv"+cod href="+code=idm8q  atomic_set         116              MSGMAX;
<9 href913           MSGMNB;
<9 href91       ou/70#define (       put_us"        atomic_setmsg_byt9s918     126       ou/70#define  = msg_hdrs9/a>, 91me      ctimearch_re href="+code=ider        ids[<9 href92>);
<}143" class="line" nam9="L123"> 923#ifdef 
void ig">  92        sysvi"ipt;        CONFIG_PROseq_filaCONFIG_PROsCONFIG_PROi/70#define 92 = 92n"  51
 126        116i/70#define msg_ids(ids[fd="L126" class=f    130
 */iny<>"%10d %10d  %4o  %10lu %10lu %5u %5u %5u %5u %5u %5u %10lu %10lu %10lu\n"inux/ca 143" class="line" nam9=9ef="+co91"> 131void          74static void                  74static void  9 id="L132" class="line" 9ame="931de=IPC_MSG_I="L63"> \n" 126         74static void        q_perm)
  74static vc&       q_perm)
  74static vqnu href="+code=ipcq(qnu lass,143" class="line" nam9 e *<9+code=KERN_INFO" class="9ref">93       q_perm)
  74static vlsp         q_perm)
  74static vlrp    74static void   74static void , 126         74static void   74static void sysvipc_msg_proc9show<94>);
  74static vs cla 943/*941de=IPC_MSG_I="L63"> \n" 126         74static vr cla 194            <<<<<<<<       q_perm)
  74static vc cla *<9

The original LXR software byLXR >
lxr@ureux.noe" ci
L/div>

lxr.ureux.no kindly hosted by 43" classhttp://www.redpill-urepro.no">Redpill Lrepro AS" na 
nsultiny