linux/security/device_cgroup.c
<<
>>
Prefs
   1/*
   2 * device_cgroup.c - device cgroup subsystem
   3 *
   4 * Copyright 2007 IBM Corp
   5 */
   6
   7#include <linux/device_cgroup.h>
   8#include <linux/cgroup.h>
   9#include <linux/ctype.h>
  10#include <linux/list.h>
  11#include <linux/uaccess.h>
  12#include <linux/seq_file.h>
  13#include <linux/slab.h>
  14#include <linux/rcupdate.h>
  15#include <linux/mutex.h>
  16
  17#define ACC_MKNOD 1
  18#define ACC_READ  2
  19#define ACC_WRITE 4
  20#define ACC_MASK (ACC_MKNOD | ACC_READ | ACC_WRITE)
  21
  22#define DEV_BLOCK 1
  23#define DEV_CHAR  2
  24#define DEV_ALL   4  /* this represents all device." class="line" nams="comme2y/device_cgroup.c#L15" i2="L1525class="line" name="L21">  21
  24A>  a>
linux/mutex.h>
  21
   1/*
   4
   4  a>

   4
   2his represents all device." class="line" nam3="securitty/device_cgroup.c#L3" i="L2333class="line" name="L21">  21
  2>  _white/lis_itemefine   21
  2u3/device_cghref="u3" clas=name="L24">  2majordevice_cghref="major cla,s=name="L24">  2minordevice_cghref="minor cla="fref">linux/mutex.h>
  2typedevice_cghref="type cla="fref">linux/mutex.h>
  2cess.hdevice_cghref="cess.h cla="fref">linux/mutex.h>
  2/lis_   2/lisdevice_cghref="/lis cla="fref">linux/mutex.h>
  2pda_   2pdadevice_cghref="pda cla="fref">linux/mutex.h>
linux/mutex.h>
  21
  2>  _a>
  21
  2a>
  2c.hdevice_cghref="c.h cla="fref">linux/mutex.h>
  2/lis_   2white/lisdevice_cghref="white/lis cla="fref">linux/mutex.h>
linux/mutex.h>
  16
  2inroup.cvice_cghref="inroup clasroruct" name="L24">  2>  _a>
  2c.h_to_>  a>
  2a>
  2hdevice_cghref="sRITE" class="sref">ACC_WRITE)
  21
  2aontaoupr_ofdevice_cghref="aontaoupr_ofclas" class="sref">Ahdevice_cghref="sRITE,sroruct" name="L24">  2>  _a>
  2c.hdevice_cghref="c.h cla"="fref">linux/mutex.h>
linux/mutex.h>
  21
  2aon22k valuf2gv7"L1" c24os04l"L24">  2aon22k valuf2gvde ACC_WRI5 _ce_cgr5roupe clas=name="L24"> 52c.hd54#L18" i4="L1848EV_A{s="line" name="ghref="inroup clasroruct" name="L24">  2>  _a>
  2c.h_to_>  a>
  _a>
Ahdevame="L2evice_cgia>>
  2>  _a>
   4linux/mutex.h>
linux/mutex.h5/a>>
5a href4"securit4/device5cgrou5.c#L16" i4="L164 class="line" name="L16">  16
  2inroup.cvice_task="inroup clasroruct" nametask="inroup ccurit5/device_cgroup.c#L22"task=5/devilasroruct" nametask=5/deviL24">  2inroup.cvice_tasklasroruct" nametask*" met name="L24">  2aon22k valuf2gv7"L1" 
  25device_cghref="sRITE" class="sref">ACC_WRI5E)
<5 href4"securit4/device_5group5c#L18" i4="L1848EV_A{s="line" name="ghref="inroup clasroruct" name="L24">  2>  _a>
  2c.h_to_>  atask=5=name="L24"
Ahdevame="L2evice_cgia>>
  2>  _a>
  6c.hde6ice_cghref="c.h cla"="fref">linux/mutex.h<6a>>
<6 href5"securit5/device_6group6c#L20" i5="L2050 cla}"fref">linux/mutex.h6/a>>
6a href5"securit5/device6cgrou6.c#L21" i4="L214 class="lin>
  2c.h_to_>  a>
  2/lis_   2aon22k valuf2gv6e    2his represents all device." 6 _ce_cgr6roupe clas=name="L24"> 62c.hd64c#L16" i4="init4/device_cgroup.c#>
>

   2his represents all device." 64" class6="line" name="L4">   4<6vice_6_white/lis_ittttttttttttttttttttttttt1" i4="L214 class="lin>

  a>
  2aon22k valuf2gv7"L1"6vice_cgrooup.c#L5" id="L5" class=roup.66evice_cghref="sRITE" class="sref">ACC_WRI6/a>>
6a href4"securit4/device6cgrou6ice_cghref="ty/device_cgroup.c#L22"task=5/devilasroruct" nametask=5/deviL24">  2inroup.cvice_tasklasroruct" nametask*" m ="L214 class="lin>

  2/lis_   268me="L2">   2his represents all device." 6E)
<6 href4"securit4/device_6group6c#L18" i4="L1ifrity/device_cgroureprice EV_ALL"classso>eprice#L18"!="L214 class="lintasklasroruct" nametask*" m && !ty/device_cgrourapabl">  2c.h_to_>  a>apabl"_cgroup.c#L19" i4="LCAP_SYS_ADMIN>  2c.h_to_>  aCAP_SYS_ADMIN*" me"e="L5">   5=">  _a>7  7c.hde70white/lis_ittttttttt848EV_A-up.c#L19" i4="LEPERM>  2c.h_to_>  aEPERMe="L24">  2/lis_ >
<7 href5"securit5/device_7group71#L18" i4="L1848EV_A024">  2/lis_ >
7a href5"securit5/device7cgrou72ce_cghref="c.h cla"="fref">linux/mutex.h<7c24os04l7L24">  2aon22k valuf2gv7e    2his represents all device." 7 _ce_cgr7roupe clas=name="L24"> 72c.hd7e" name="L3">   3  21
   4<7vice_7an class="comment"> * Copyrig called underubsystem
 name="L21">  21

>
  2aontaouutex.h>
  2aon22k valuf2gv7"L1"7
  27device_cghref="sRITE" class="sref">ACC_WRI7E)
<7 href4"securit4/device_7group7ice_cghref="/lis cla="fref">linux/me" name="L21">  21
>
  2/lis_   8c.hde80me="L2">   2his represents all device." 8a>>
<8 href5"securit5/device_8group81#L18" i4="L1L24">  2aontaouutex.for_each_icery
>
>
  2
GFP_KERNED"c.he24">  2/lis_   2aon22k valuf2gv8e   2aon22k valuf2gv7"L1"8 _ce_cgr8roupe clas=name="L24"> 82c.hd84white/lis_itttttttttttttttttgotot 2inroup.cvice_free_and_exi="L1838EV_ALL"clfree_and_exi=e="L24">  2/lis_    4<8vice_8_white/lis_itttttttttL24">  2aontaouutex.addetail
Ahdevam444EV_ALL"classsode44*" me24">  2/lis_ linux/mutex.h<8> */
linux/mutex.h8de <  28e_cghref="ces848EV_A024">  2/lis_ )
<8 href4"securit4/device_8group89  a>
linux/mutex.h9=">  _a>9  9c.hde9lockin2inroup.cvice_free_and_exi="L1838EV_ALL"clfree_and_exi=e="L:
linux/mutex.h9a>>
<9 href5"securit5/device_9group91#L18" i4="L1L24">  2aontaouutex.for_each_icery_saf">  2c.h_to_>  autex.for_each_icery_saf"_cgroup.c#L19" i4="Lwh>>

>
  2/lis_   2aon22k valuf2gv9e   2/lis_  92c.hd94e_cghref="mighref="c.h cla"="fref">linux/mutex.h<94" class9="line" name="L4">   4<9vice_95_cghref="ces848EV_A-up.c#L19" i4="LENOMEM>  2c.h_to_>  aENOMEMe="L24">  2/lis_ linux/mutex.h<9> */
linux/mutex.h9de <<9a href="include/linux/d9">  29.c#L17" i2="L1727class="line" Stupid protohref  24#define ##include <   1  21
 * Copyrig called underubsystem
 name="L21">  21
  10#include <  24#define #inc0lude <  2inroup.cvice_pr_ofdevice_cghref="aontaoupr_ofclas" cl>#define #inclu0de <linux/me" name="L21">  21
>
  2aon22k valuf2gv7"L1"103">  13#include <ACC_WRI10/a>#inclu0de <linux/me" name="L21">  21

  2/lis_   150#include <linux/mutex.h<0/a>>
<0a href="security/device_07.hdncice_cghref="t 2inroup.cvice_whcopy
>
  2
GFP_KERNED"c.he24">  2/lis_   17#define08.hdnce_cghref="cesifri!ty/device_cgrouwhcopy
  2aon22k valuf2gv7"L1"10="line" n0ame="L18">  18#defin09.hdnc9white/lis_ittttttttt848EV_A-up.c#L19" i4="LENOMEM>  2c.h_to_>  aENOMEMe="L24">  2/lis_    9>#include <   2his represents all device." 110">  10#include <  2aontaouutex.for_each_icery
>
>
  2aon22k valuf2gv7"L1"1#incluude <  2/lis_   13#include <>
  2aon22k valuf2gv7"L1"1#incluude <  2/lis_   15>#include <  2u3/device_cghref="u"!="L214 class="linwh>>
  2u3/device_cghref="uet name="L24">  2aon22k valuf2gv7"L1"1>
<  2/lis_   17#definee    2his represents all device." 1s="line" nname="L18">  18#definne >
>
  19#defin1e   10ACC_READ1 | 
DEV_CHAR  2
NU>Dcurit3/device_cgroup.c#L17" i3="L1737EV_A1=1#incllude <linux/mutex.h<1="line" n1ame="L22">  22#defin1e    2his represents all device." 1s="line" 1name="L23">  23#defi1ne 
DEV_CHAR  2
NU>Dcuriet name="L24">  2aon22k valuf2gv7"L1"1ss="sref"1>DEV_ALL   4    2aontaouutex.addetail_9" i3="L1939EV_ALLutex.addetail_9" _cgro&ty/device_cgrouwhcopy
  2/lis_ 1A>  a>
  a>ghref="c.h cla"="fref">linux/mutex.h<1="line" na   2his represents all device." 1ce_cgroup1.c#L18" i2="L1828 class=1"line1 name="L1">   1  21
   4
 name="L21">  21
   4  a>
  24#define    4linux/me" name="L21">r1
  2inroup.cvice_pr_ofdevice_cghref="aontaoupr_ofclas" cl>#define linux/me" name="L21">  21
>
  2aon22k valuf2gv7"L1"1class="li1ne" nam3="securitty/devi1ce_cg134evice_cghref="sRITE" class="sref">ACC_WRI1>  2>  _w1hite/lis_itemefine linux/me" name="L21">  21
  12  15r cla,s=name="L24">  2mi1norde13linux/mutex.h" class="fref">linux/mutex.h  21typed13ice_cghref="t 2inroup.cvice_utex.for_each_icery_saf">  2c.h_to_>  autex.for_each_icery_saf"_cgroup.c#L19" i4="Lwalklasroruct" namewalke="L,  2inroup.cvice_tmclasroruct" nametmp*" met&ty/device_cgroupr_ofdevice_cghref="aontaoupr_ofclas" c-p.c# 2inroup.cvice_" i="L2444EV_ALL"classsoruct" name="Let 2inroup.cvice_ i3="L1838EV_ALL"classsoruc)4/device_cgroup.c#L22" i4="L2242clasro1LL"classs1hort" name="L24">  2cess1.hdev1ce_cghref="cese/lis_itifrity/device_cgrouwalklasroruct" namewalke="L-p.c# 2inroup.cvice_mutex.h>
DEV_CHAR  2
  2aon22k valuf2gv7"L1"1ce_cgroup1   21/lisd139white/lis_itttttttttttttttttgotot 2inroup.cvice_removex.h>
  12 1 2pda140white/lis_itttttttttifrity/device_cgrouwalklasroruct" namewalke="L-p.c# 2inroup.cvice_mutex.h>
>
>
  2aon22k valuf2gv7"L1"1a>>
  2/lis_ >
1>
  2aon22k valuf2gv7"L1"1ruct" nam1e="L24">  2>  _a>
  2/lis_  1 2c.h144white/lis_itttttttttifrity/device_cgrouwalklasroruct" namewalke="L-p.c# 2inroup.cvice_e"L24">  2u3/device_cghref="u"!="~0 && ty/device_cgrouwalklasroruct" namewalke="L-p.c# 2inroup.cvice_e"L24">  2u3/device_cghref="u"!="L214 class="linwh>>
  2u3/device_cghref="uet name="L24">  2aon22k valuf2gv7"L1"1  2white/lisd1evice14_white/lis_ittttttttttttttttturitinue24">  2/lis_ >
linux/mutex.h1>
1>
linux/mutex.h1>
  14e_cghref="cese/lis_itty/device_cgrouwalklasroruct" namewalke="L-p.c# 2inroup.cvice_mutex.h>
>
>
  _a>1
  12c.hd150white/lis_ittttttttte/lis_itty/device_cgrouutex.del_9" i3="L1939EV_ALLutex.del_9" _cgro&ty/device_cgrouwalklasroruct" namewalke="L-p.c# 2inroup.cvice_ i3="L1838EV_ALL"classsoruce24">  2/lis_ >
<1a href5"securit5/device_1cgrou151white/lis_itttttttttttttttttL214 class="linkfree_9" i3="L1939EV_ALLkfree_9" _cgroup.c#L19" i4="Lwalklasroruct" namewalke="L,  2inroup.cvice_9" i3="L1939EV_ALL"classse24">  2/lis_ >
1linux/mutex.h<1 c24os04l1"L24">  2aon22k valuf2gv1de linux/mutex.h<1  _ce_cgr15roupe clas=name="L24"> 152c.h154#L18ghref="c.h cla"="fref">linux/mutex.h<1 /f clas=1=="line" name="L4">   4<1/vice15comment">/* this represents all device." 1/>>
  21

  15.c#L17" i2="L1727class="lingr>  24#define )
<15 href4"securit4/device_15grou15c#L181" i5="fine   2c.h_to_>  a>
  2c.h_to_>  absystem  2aon22k valuf2gv7"L1"16=">  _a>16  16c.hd16ice_c/device_cgroup.c#L22" i4="L2242clasro16a>>
<16 href5"securit5/device_16grou161white/lis_it5/device_cgroup.c#L22".c#L17" i4="L1747clasroup.c" name="L24">  2inroup.cvice_pr_ofdevice_cghref="aontaoupr_ofclas" cl>  2inroup.cvice_parice_pr_ofdevice_cghref="aontaparice_pr_ofdeviccurit3/device_cgroup.c#L17" i3="L1737EV_A16/a>>
16a href5"securit5/device16cgro162white/lis_it5/device_cgroup.c#L22" i5="L2252ef5"secud6device_cgroup.c#L20" i4="L20parice_fdevice_cghref="aontaparice_fdeviccurit3/device_cgroup.c#L17" i3="L1737EV_A16c24os04l16L24">  2aon22k valuf2gv16e   2/lis_  162c.h164c#L14">  2/lis_    4<16vice16_white/lis_ite_cgroup.c#L22".c#L17" i4="L1747clasroup.c" name="L24">="L214 class="linkzalloci3="L1939EV_ALLkzalloccurit5izeof(  2inroup.cvice_.c#L17" i4="L1747clasroup.c" name="L24")et 2inroup.cvice_GFP_KERNEDEV_CHAR  2
GFP_KERNED"c.he24">  2/lis_   15##include <  2/lis_ >
16a href4"securit4/device16cgro167white/lis_ittttttttt848EV_A{s="line" name=ERR_PTEV_BLOCK 1
  2/lis_   168white/lis_ite_cgroup.c#L22"INIT_LIST_H href="+code=ACC_MINIT_LIST_H hr_cgro&ty/device_cgroupr_ofdevice_cghref="aontaoupr_ofclas" c-p.c# 2inroup.cvice_" i="L2444EV_ALL"classsoruct" name="Let3/device_cgroup.c#L17" i3="L1737EV_A16E)
<16 href4"securit4/device_16grou16c#L18" i4="L1.c#L20" i4="L20parice_fdevice_cghref="aontaparice_fdeviccuri ="L214 class="lin>
  2/lis_ =">  _a>17  17c.hd170me="L2">   2his represents all device." 17a>>
<17 href5"securit5/device_17grou171#L18" i4="L1ifrity/device_cgrouparice_fdevice_cghref="aontaparice_fdeviccuri =="L214 class="linNU>DEV_CHAR  2
NU>Dcurie4/device_cgroup.c#L22" i4="L2242clasro17/a>>
17a href5"securit5/device17cgro172white/lis_itttttttttlis cla="fref">linux/me" name="L21">  21
>
  2/lis_ c24os04l17L24">  2aon22k valuf2gv17e   2
GFP_KERNED"c.he24">  2/lis_  172c.h174white/lis_itttttttttifri!ty/device_cgrouwh>>
   4<17vice17_white/lis_itttttttttttttttttL214 class="linkfreei3="L1939EV_ALLkfree_cgroup.c#L19" i4="L.c#L17" i4="L1747clasroup.c" name="L24")24">  2/lis_   157oup.c#L5" id="L5" class17roup176white/lis_ittttttttttttttttt848EV_A{s="line" name=ERR_PTEV_BLOCK 1
  2/lis_  */
linux/mutex.h<17
  17e_cghref="cese/lis_itty/device_cgrouwh>>
  2u3/device_cghref="u ="L214 class="linwh>>
  2/lis_ )
<17 href4"securit4/device_17grou179white/lis_itttttttttty/device_cgrouwh>>
>
DEV_CHAR  2
  2/lis_   18c.hd180white/lis_itttttttttL214 class="linwh>>
>
ACC_WRITE 4
  2/lis_ >
<18 href5"securit5/device_18grou181white/lis_itttttttttty/device_cgroueviceadd
>
  2aon22k valuf2gv18e  182c.h184white/lis_ittttttttt 2inroup.cvice_ean>
/span_cgroup.c#L15" ian>
/span_cgro&ty/device_cgroupr_stem
>  2c.h_to_>  absystem   4<18vice18_white/lis_itttttttttL24">  2aontaoureilasroruct" namere=e="L ="L214 class="linecurit3/devicecopy
  158oup.c#L5" id="L5" class18roup186white/lis_ittttttttttttttttttttttttt&ty/device_cgrouparice_pr_ofdevice_cghref="aontaparice_pr_ofdeviccuri-p.c# 2inroup.cvice_" i="L2444EV_ALL"classsoruct" name="Let3/device_cgroup.c#L17" i3="L1737EV_A18> */

/unspan_cgro&ty/device_cgroupr_stem
>  2c.h_to_>  absystem  17#define ">  18e_cghref="cese/lis_itifrity/device_cgroureilasroruct" namere=e="L)4/device_cgroup.c#L22" i4="L2242clasro18E)
<18 href4"securit4/device_18grou189white/lis_itttttttttttttttttL214 class="linkfreei3="L1939EV_ALLkfree_cgroup.c#L19" i4="L.c#L17" i4="L1747clasroup.c" name="L24")24">  2/lis_   19c.hd190white/lis_ittttttttte/lis_it848EV_A{s="line" name=ERR_PTEV_BLOCK 1
  2/lis_ >
<19 href5"securit5/device_19grou191white/lis_itttttttttghref="c.h cla"="fref">linux/mutex.h<19/a>>
19a href5"securit5/device19cgro192white/lis_itghref="c.h cla"="fref">linux/mutex.h<19c24os04l19L24">  2aon22k valuf2gv19e    2his represents all device." 19 _ce_cgr19roupe clas=name="L24"> 192c.h194e_cghref="mi848EV_A&ty/device_cgroupr_ofdevice_cghref="aontaoupr_ofclas" c-p.c# 2inroup.cvice_sssoruct" name="L24">  2a>
   4<19vice195ce_cghref="c.h cla"="fref">linux/mutex.h<19vice_cgr19oup.c#L5" id="L5" class19roup19#L15" i4="L1545 cla}="fref">linux/mutex.h19> */
linux/me" stem
  2aon22k valuf2gv7"L1"19de <<19a href="include/linux/d19">  19device_cghref="sRITE" class="sref">ACC_WRI19   81##include <linux/me" n17" i4="L1747clasroup.c" name="L24">  2inroup.cvice_pr_ofdevice_cghref="aontaoupr_ofclas" cefine    9linux/me" name="L21">  21
>
#include <ACC_WRI01#in20lude <="L214 class="lin>
  2c.h_to_>  autex.for_each_icery_saf"_cgroup.c#L19" i4="Lwh>>
  13<20a>#include <
>
  2/lis_ #incl20de <  2aontaoukfree2252ef5"secud6dkfree_cgroup.c#L19" i4="Lwh>>
  2/lis_   15linux/mutex.h<20/a>>
20a href="security/device207.hd2cice_cghref="t 2inroup.cvice_kfreei3="L1939EV_ALLkfree_cgroup.c#L19" i4="L.c#L17" i4="L1747clasroup.c" name="L24")24">  2/lis_   17#defin208.hd2ce_cghghref="c.h cla"="fref">linux/mutex.h<209line" n20#include <linux/mutex.h2">   9#include <linux/mutex.h2"_READ" claa>#include <linux/mutex.h2"1#in2clude <linux/mutex.h2""line" naude <   2his represents all device." 2"3">  13<2/a>#include <linux/mutex.h2"/a>#incl2ude <linux/mutex.h2">  15#include <linux/mutex.h2>
2linux/msei_mutex.h>
>
linux/mmutex.h>
linux/mutex.h2<"line" n2ame="L17">  17#defin2e ACC_WRI2s="line" 2name="L18">  18#defi2ne   2c.h_to_>  aid
L24">="024">  2/lis_   19#defin2e   2c.h_to_>  aACCLENce_c)24">  2/lis_   10<2lass="sref">ACC_READ2 | linux/mutex.h2=1#in2llude <  2c.h_to_>  aid
L24"++]>="L" i2="L1727clising">'r'  24  2/lis_   22#defin2e linux/mutex.h2=3">  13<2name="L23">  23#defi2ne >
="L" i2="L1727clising">'w'  24  2/lis_ #incl2>DEV_ALL   4  >
linux/mutex.h2=>  15  2c.h_to_>  aid
L24"++]>="L" i2="L1727clising">'m'  24  2/lis_ >
2A>  a>
  a>ghref="c.h cla"="fref">linux/mutex.h<2="line" n2   2his represents all device." 2ce_cgroup2.c#L18" i2="L1828 class=2"line22c#L181" i5="chart 2inroup.cvice_mute="L2charx.h>
linux/mmutex.h>
  2aon22k valuf2gv7"L1"29 class="2line" name="L4">   4   4  a>
DEV_CHAR  2
  2aon22k valuf2gv7"L1"2s="line" 2name="L1">   4'a'  24  2/lis_   2aon22k valuf2gv7"L1"2s3">  13<2ne" nam3="securitty/devi2ce_cg234white/lis_ittttttttt848EV_A{" i2="L1727clising">'c'  24  2/lis_ #incl2hite/lis_itemefine   2aon22k valuf2gv7"L1"2s>  15  2mi2norde236white/lis_ittttttttt848EV_A{" i2="L1727clising">'b'  24  2/lis_ >
2assshort" name="L24">  22typed23ice_cghref="t848EV_A{" i2="L1727clising">'X'  24  2/lis_   2cess2.hdev23e_cghghref="c.h cla"="fref">linux/mutex.h<2ce_cgroup2   22/lisd239  a>
linux/mutex.h2ghref="pd2a_  2 2pda240whit6" i4="voida="fref">linux/msei_majminh>
>
linux/m1
  2aon22k valuf2gv7"L1"2a>>

  2aon22k valuf2gv7"L1"2a_cgroup.2e="L24">  2>  _a>

"*"  24  2/lis_  2 2c.h244white/lis_itelse4">  2/lis_ #incl2name="L24">  2white/lisd2evice24_white/lis_itttttttttup.c#L19" i4="Llpsintfh>
"%u"  24
  2/lis_   15linux/mutex.h<2>
2  a>
linux/mutex.h2>
  24e_cgh1" i5="init4/device_cgroup.c#22" i5=seq_r>
  2aontaoucfmutex.h>
fme="Lefine )
<2a href4"securit4/device_2cgrou249white/lis_ittttttttttttttttttttttttt name="L24">  2aontaouseq_fil">  2c.h_to_>  aseq_fil"cgroup.c#L20" i4="L201
  2aon22k valuf2gv7"L1"2f=">  _a>2
  22c.hd25ice_c/device_cgroup.c#L22" i4="L2242clasro2/a>>
<2a href5"securit5/device_2cgrou251white/lis_it5/device_cgroup.c#L22".c#L17" i4="L1747clasroup.c" name="L24">  2inroup.cvice_pr_17" i4="L1747clasroup.c"name="L24">="L214 class="lin>
>
2  21
>
  2/lis_   2aon22k valuf2gv2de 
  2c.h_to_>  aACCLENce_c]24">  2/lis_  252c.h254c#L14">  2/lis_    4<2/vice25_white/lis_ite_cgroup.c#L22"rcu_r  15>
>
>
  25e_cghref="cese/lis_itty/device_cgrousei_majminh>

)
<25 href4"securit4/device_25grou259white/lis_itttttttttty/device_cgrousei_majminh>
>
>
  2u3/device_cghref="ueefine   26c.hd260white/lis_itttttttttL214 class="linseq_psintfh>

"%c %s:%s %s\n"  24>
>
>
<26 href5"securit5/device_26grou261white/lis_ittttttttttttttttttttL214 class="linmaj
>
26a href5"securit5/device26cgro262white/lis_itghref="c.h cla"="fref">linux/mutex.h<26c24os04l26L24">  2aon22k valuf2gv26e  262c.h264c#L14">  2/lis_    4<26vice26_white/lis_it848EV_A024">  2/lis_   15linux/mutex.h<26/a>>
26a href4"securit4/device26cgro26>  a>
linux/mutex.h26
  26.c#L17" i2="L1727class="line"  24#define )
<26 href4"securit4/device_26grou26name="L1">   1#define =">  _a>27  27c.hd27locking rules:.c - device cgrodoes the mutex. granted to .c" name=" cturitain the mutex.  24#define a>>
<27 href5"securit5/device_27grou27r ate.h"/read..c - device cgrt84quested in it3/devic _cgrt84fwhsecurit3/device_cgroup.c#L21" i3="L213" clas27/a>>
27a href5"securit5/device27cgro272whit.h"/read..c - device cgrt848EV_A1tifryes, 0tifrnosecurit3/device_cgroup.c#L21" i3="L213" clas27c24os04l27L24">  2aon22k valuf2gv27e  272c.h274whit7" i2="L1727class="lingr>  24#define    4<27vice27_whit1" i5="init4/device_cgroupmay_mutex.rit3/devic
  2inroup.cvice_th>
  15  21
  2aon22k valuf2gv7"L1"27> */
  27e_cghref="ces5/device_cgroup.c#L22"e" name="L21">  21

  2/lis_ )
<27 href4"securit4/device_27grou279  a>
linux/mutex.h28=">  _a>28  28c.hd280white/lis_it 2inroup.cvice_utex.for_each_icery
>

>
DEV_CHAR  2
  2aon22k valuf2gv7"L1"28/a>>
28a href5"securit5/device28cgro282white/lis_ittttttttte/lis_it848EV_A124">  2/lis_   2aon22k valuf2gv28e 
>
  2aon22k valuf2gv7"L1"28 _ce_cgr28roupe clas=name="L24"> 282c.h284white/lis_ittttttttttttttttturitinue24">  2/lis_    4<28vice28_white/lis_itttttttttifritty/device_cgrourefwh_cgroup.c#L15" r4fwh="se-p.c# 2inroup.cvice_mutex.h>

>
  2aon22k valuf2gv7"L1"28>  15  2/lis_  */
  2aon22k valuf2gv7"L1"28"line" n2mme="L17">  17#defin2 ">  28e_cghref="cese/lis_ittttttttturitinue24">  2/lis_ )
<28 href4"securit4/device_28grou289white/lis_itttttttttifrity/device_cgrouwh  21
  2u3/device_cghref="u"!="~0 && ty/device_cgrouwh  21
  2u3/device_cghref="u"!="ty/device_cgrourefwh_cgroup.c#L15" r4fwh="se-p.c# 2inroup.cvice_e"L24">  2u3/device_cghref="uet name="L24">  2aon22k valuf2gv7"L1"29=">  _a>29  29c.hd290white/lis_ittttttttte/lis_ituritinue24">  2/lis_ >
<29 href5"securit5/device_29grou291white/lis_itttttttttifrity/device_cgrourefwh_cgroup.c#L15" r4fwh="se-p.c# 2inroup.cvice_mutex.h>
>
  2aon22k valuf2gv7"L1"29/a>>
29a href5"securit5/device29cgro292white/lis_ittttttttte/lis_ituritinue24">  2/lis_   2aon22k valuf2gv29e   2/lis_  292c.h294e_cghref="mighref="c.h cla"="fref">linux/mutex.h<294" class29="line" name="L4">   4<29vice29_white/lis_it848EV_A024">  2/lis_ linux/mutex.h<29> */
linux/mutex.h29de <<29a href="include/linux/d29">  29.c#L17" i2="L1727class="line"  24#define 2##include <   1#define    9#define   24#define   2inroup.cvice_thildcgh>
  13<30a>#include <linux/me" name="L21">  21
>
  2aon22k valuf2gv7"L1"30/a>#incl30de <="L214 class="lin>hildcgh>
>linelasro}t;
#dghref="c.h cla"="fref">3_cgro30lis_ 2=/a>>
2A>  a>
  2/lis_   2
GFP2clasro30>  15linux/m8.hd2ce_c3hghref="c.h cla"="fref">3inux/31="se-p.c# 2inroup.cvie/lis_ittttttttte/lis_ituritinue24">  2/lis_ 3de <  29c.h"init4/device_c>
  2aon22k valuf2gv18e   15  2/lis_ 3dcurit5/de;  24#define   2/lis_ 3dde=DEV_ALef="inclu2de/li212whit#d3ft;<"3214 clne" name="L4">   4<29vice29_white/lis3GhLISTce_3g3
 */
>3ACCLENce_3g4
>3A8 24#cvice_muth>
 c>3Ame="L24"3) i4="L1545 cla}="fref">3inux/31*=name="L226">  26.c#L17" i2="Lodify 24>3 2name="L38">  18#defi2ne    1>3 e <>3 curit5/deex.h>
>3 de=DEV_AL4/device_cgroupid
>  2c.3_to_>32/read..c - device cgrt848EV_Adevice_cgroup.c#L21" i3="L213" clas27/a>>3 hLISTce_3.h>
>3 nclude &34/device_cgroupid
>  2c.3_to_>32214 c<29> */

<, or yourdevice_cgroup.c#L21" i3="L213" clas27/a>>3 l2ude &l3.h>
#defie >3 CCLENce_34/device_cgroupid
>  2c.3_to_>324/device_c15roup156k() for re the parice code=D  24#define   2/lis_ >
2  3>ghref="c.h cla"="fref">3inux/32 cfmutecgroup.c#L20" i4="L20 fe EV_AL e" n2ame="L17">  17linux/mutex.h2ghbuffe"swh  21*" m-p.cbuffe"ncluttttttttttttttttlis cla="fref">linux/mce_mute="32charx.h>
linux/mmutex.h>
3a href3"s3et name="L24">  2aon22k 3aluf23v7"L1"29 class="+DEe=ef">linux/mutex.h2ghbswh  21*" m-p.cb2inroup.cvice_wh>>linelasro}t;
>
linux/mutex.h2ghendtex.for_each_iceendt2inroup.cvice_wh>>linelasro}t;
  17  13<30a>#include <device_25grou259white/lis_ittttttttttyoup.cvice_wh>>linelasro}t;
>linelasro}t;
>
>
  2mi2norde236white3lis_i33y/device_cgrou.c#L17" i4="L1lis_ 17>  157PERc#L5" id="L5" claPERctttyoup.cvice_wh>>linelasro}t;
  22typed33ice_33lis_ 2=/a>>
2A>  a>
  2/lis_ ="024">  22" i4="L2242clasro203">  13<20a>#include &l2ame=on22k vdevice_25grou259white/lis_ittttttttttytttttttttte/lis_ituritinue24">  2/lis_ 3hdev23e_c3hghref="c.h cla"="fref">3inux/34/lis_ 27E)
<27 href4"secbswh  21*" m-p.cb2inro18c24os04l18L24">buffe"swh  21*" m-p.cbuffe"nclutttttttte/lis_ituritinue24">  2/lis_ 3h href3"s3inroup.cvice_lish>3
  2aon22k 3aluf23v7"L1"2a>>
ses,ch valuf2gv17e >
  2
:ce_cgrouth>
)
<17 href4"securit4/device_17grou179white/lis_itttttttttty/device_cgrouwh>>
  2/li3_  2 2c.h29white/lis_ittttttttttyL20" i4="L20pcghref="/lis_ 18=">  _a>18  18c.hd180white/lis_itttttttttL214 class="linwh>>
&qu3t;Ŏ"L214 class="linsrefMKNOref="+code=A9white/lis_ittttttttttyL20" i4="L20pcghwh>>
  2u3/device_cghref="3f3"sm="se324">  2/lis_   2u3/device_cghref="3f9;  243inux/34="se-p.c# 2inroup.cvigotoice_ i3="L1838EVhandf="+cFINE_MUTEXclhandf=class="linwh>>
  2aontaoucfmutex.h  2
:ce_cgrouth>
  2aontaouseq_fil">  23.h_to35se ="L214 class="linsref">DEV_CHAR  2
  L20" i4="L20pcghref="/lis_ 17E)
<17 href4"securit4/device_17g && !ity/device_cgrouwh  s="linwh>>
  2aon22k 3aluf235"L24">  29c.hd290whitbreaks="linwh>>
:ce_cgrouth>
  21

  2
  L20" i4="L20pcghref="/lis_ 17E)
<17 href4"securit4/device_17g && !ity/device_cgrouwhs="linwh>>
>3>
  2/li3]24">  2/lis_ >
>
   4<29vice29_white/lis3="Letty/d3vice_cgrouwh>>
>
  2
GFPisL24c="/lis_ 17E)isL24c=">  2aluf2gv17e >
3624">  2/lis_ 3de <>
  2
GFPisL24c="/lis_ 1tttt8m="s3ice_cgroup.c#L22" i5*"L2352ef53seL1"2a>>
ses,ch valuf2gv17e 36rce="L-p.c# 23 ;
2  21
linux/mutex.h<26c243s04l236rce="L-p.c# 23thLISTce_3oup.c#L19" i_cgrouwh>>
  2
GFPisL24c="/lis_ 17E1"2a>>
ses,ch valuf2gv17e  2636h*" m-p.c# 2i3rstre="Le3{" i2="L1727clising">&qu3t;Ŏ"L214 class="linsrefMKNOref="+code=A9white/lis_ittt4 class="linsresimple_ouptouclasssoruct" namsimple_ouptouc.cvice_GFP_KERNEDEV_ 2
GFPisL24c="/lis_ 1>linux/mutex.h28=">  _x.h>
  34<26v36vice_cghref="3f3"sm="se324">  2/lis_ef="c.h cla"="fref">3inux/34/lis_ 27E>
linux/mutex.h2ghendtex.fovice_cghr3f="/lis_ 26>  15>
ses,ch valuf2gv17e  3a>
Le34<2/vice25_white/lis_ite3cgrou35"L214 class="linsrefBLOCCC_Wlis_ 17>  157INVAu179whits="line" 324#define =">  _a>27>
  2
GFPisL24c="/lis_ 1t!tt8m="s3ice_cgroup.c#L22" i5:"L2352ef53seLe3"sm="se3e_" i="L2444EV_ALL"class3orelis_ittt3 37L18" i4="L1ifrity/device_cgrvice25_white/lis_ite3cgrou35"L214 class="linsrefBLOCCC_Wlis_ 17>  157INVAu179whits;
>
  au_r  2c.3_to_>324/device_c15roup15x.rit3/de3ic
  2
GFPisL24c="/lis_ 1tttt8m="s3ice_cgroup.c#L22" i5*"L2352ef53seL1"2a>>
ses,ch valuf2gv17e   2/lis_ >
  2
GFPisL24c="/lis_ 17E1"2a>>
ses,ch valuf2gv17e   2aontaouseq_fil">  23.h_to35se ="L214 class="livice_ i3="L1838EV9white/lis_ittt4 class="linsresimple_ouptouclasssoruct" namsimple_ouptouc.cvice_GFP_KERNEDEV_ 2
GFPisL24c="/lis_ 1>linux/mutex.h28=">  _x.h>
&3t;
  2/lis_ef="c.h cla"="fref">3inux/34/lis_ 27E>
linux/mutex.h2ghendtex.fofrity/dev3ce_cgrouwh  21
>
ses,ch valuf2gv17e DE3_CHAR  2
  2aon22k valufice_cgrvice25_white/lis_ite3cgrou35"L214 class="linsrefBLOCCC_Wlis_ 17>  157INVAu179whit/device_c3rouwh  21
  2/lis_  4
  2aon23e9;  24>
  2
GFPisL24c="/lis_ 17E)isL24c=">  2aluf2gv17e 
  2aon2ice ce_GFP_KERNEDEV_ 2
GFPisL24c="/lis_ 1++_ALL" cla2"init4/a_2read_232white3lis_i3ttttttex.h2ALL" cla2"init4/a_2read_232white3lis_i3tttttte< 32ALL" cla2"init4/a_2read_232white3lis_i3tttttt++_ALL" cla2"init4/ 2
GFPisL24c="/lis_ 1++E1"2a>>
ses,ch valuf2gv17e   2aon22k 3aluf23v7"L1"2a>>
ses,ch valuf2gv17e   2aon22k valuf3ef3"sm="s3ice_cgroup.c#L22" i5r"L2352ef53securitty/devicaseEV_CHAR  2
  3u3/de3ice_cghref="u"!="ty/device_cgrli3_  2 2c.h29white/lis_ittt|tttttttyL20" i4="L20ph_to_>  aACCLENce_c)24">  2/lisfBLOCCC_Wlis_ 17>  157INVAu179whitvice_e"L23">  2u3/device_cghref="u3t nam3="L24">  2aon22k valufffffffffe_3nroup.cvice_muth>3>
  2
DE3/a>>
  2aon22k valufvice_cgrli3_  2 2c.h29white/lis_ittt|tttttttyL20" i4="L20p">'r'  24  2/lis_ oup.cvice_muth>3>3  2/3ef3"sm="s3ice_cgroup.c#L22" i5m"L2352ef53securitty/devicaseEV_CHAR  2
 292c.3294e_39*" m-p.c# 2inroup.cvice_mutexli3_  2 2c.h29white/lis_ittt|tttttttyL20" i4="L20p">'w'  24  2/lis_ oup.cvice_muth>3  34<29v39vice_cghref="3f3"sm="c#L17" ie_3nroup.cvice_muth>3  2
  2aon22k valuf3ef3"sm="s3ice_cgroup.c#L22" i5\0"L2352ef53securitty/devicaseEV_CHAR  2
#define    9  2aon22k valufffffffffe_3nroup.cvice_muth>3#define 4a href="+code=DEV_ALL" c4a301 40ri &"(~L214 class3e">  2/li3]24">  2/lis_ #de40"L24">  2aon22k valufvice_cgrice_cgrvice25_white/lis_ite3cgrou35"L214 class="linsrefBLOCCC_Wlis_ 17>  157INVAu179whi4_permh 292c.4p.cvi4e_wh>&/fdevice_cghref="/lis_ 29c24os04l29L4e7lis_itt4ts29="line" name="L4">  4linel4sro}t;href="c.h cla"="fref">3inux/34="se-p.c# 2inrou/li3]24">  2/lis_ >
ses,ch valuf2gv17e 3_c4ro30lis_ 2=/a>>
2A>  4>
  L20" i4=CGOWcghref="/lis_ 17EOWnrou/li3]24">  2/lis_   15linux/m8.hd2ce3ame="L24"324">  2/li2   9  2/le <  13<20a>#includli3]24">  2/lis_   2aon22k valufffffffffe=3L24">  2mi2norde236white3lis_i33y/device_cgrou.c#L17" i4="L1lis_ 17>  157PERc#L5" 40>  15  2/le &rchildcge="adlinux/mutex.h<2rchildcge="adlit.h""L24"324">  2/le <  13<20a>#incluL17" i4="L1lis_ 17>  157PERc#L5" 40allowed 4ttttttyttttttttte/lis_it4ritin41rce="L-p.c# 23t;
2<"se24">  L20" i4=CG  2/lis_   44<29v41rce="L-p.c# 23thLISTce_3oup.c#L19" i/a>rchildcge="href5"securit5/de/a>rchildcge="hrit.h""L24"324">  2/le <  13<20a>#incluL17" i4="L1lis_ 17>  157PERc#L5" 40/lis_itt4ux31ourcu_r  2/e_3nroup.cvice_muth>3
  2/li3]24">  2/lis_   2mi2norde236white3cgrou35"L214 class="linsrefBLOCCC_Wlis_ 17>  157INVAu179whi4vicCAP_  44    2/lis_   2/lis_ 3h href3"s3inroup.cvice_lish4has_4h>
  2/lis_7clasrouh htecgroup.c#L20" ">  2/lis_7clasrouh hte="hrsecurit4/device2_cgro24>  a>
linux/mutex.h2>

  24e_cgh1" i5="init4/device_cgroup.c#22" i5=seq_r>
  2aon22k valufvicccccccccccAL e" n2ame="L17">  17linux/mutex.h2ghbuffe"s4evice cgr4848EV_Adevice_cgroup.c#L41" i34"L213"AL L1"2a>>
ses,ch valuf2gv17e   2ef="+c39;  24  157INVAu17l1
<,4or yourdevice_cgroup.c#L41" i342cvi4e_wh>&/fdevice_cghref="/lis_ 29c24os04222welask4as_dor/device_cgroup.c#L41" i342L2141ri &5se ="L214 class272w2/lis_   15  2/lis_o272w20a>#incluL17" i4="L1lis_ 17>  157PERc#oup156k()4for re the parice code=D4 243inux/34/lis_ ">  2/lis_ >
2  a>/a>>
<2a href5"securit5/device_2cgrou251white/lis_it5/device_cgroup>
  3>ghref="c.h9_white/lis3="Letty/d#22" i5=seq_r"L17">  17  2/lis_ 3hdev23e_cs272w2cFINE_MUTEXclas" class272w2cFINE_e="hrE_MUTEXclas" class/>  15  2/lis_o272w20a>#incluL17" i4="L1lis_ 17>  157PERc#t;
lin4x/mmutex.hy/device_cgr"L24"324">c# vauptouclasssoructc# vaus="linsrefBLOCCC_Wlis_ 17>  157INVAu17ghbswh  24*" m-p.cb2inroup.cvice_w4>>4inelas clasr/fdevice_cghref="/lis_ 29c24os04ex.for_ea4h_iceendt2inroup.cvice_w4>>4inelasclasr/fdevice_cghref="/lis_ 29c24os04evice cgr4e="Lcou
<2inroup.cvice_w4>>4inelasne LISTce_3oup.c#L19"  2/lis_i4="3href=32tex.h<2  2/lis_i4="3r>
ses,ch valuf2gv17e >43nam3="L24">  AL L1"2a>>
ses,ch valuf2gv17e 
<,4e3lis_i3ttttttup.cvice_w4>>434e_39*" m-p.c# 2inrou3e_cgr2_roupe clcvichref=32tex.h<2fine L L1"2a>>
ses,ch valuf2gv17e >
4a hre43"securi &"(~L23a,3e_cgr2_roupe cluh ht_="+cFIN _asro203">  13h ht_="+cFIsecurif">3inux/34/lis_ ">  2/lis_7clasrouh htecgroup.c#L20" ">  2/lis_7clasrouh hte="h>L L1"2a>>
ses,ch valuf2gv17e >43L5"395" i3="L1535"!="3e_cgr2_roupe cl4rivahtecgroup.c#L20" 4rivahtL224
  L20" i4=CGOWcghref="/lis_ 17EO>L L1"2a>>
ses,ch valuf2gv17e >
4A>  a4
L L1"2a>>
ses,ch valuf2gv17e   2/AL L1"2a>>
ses,ch valuf2gv17e   2aon22k 3e_cgr2_roupe clcvichref=32tex.h<2fine L L1"2a>>
ses,ch valuf2gv17e &4t3
  13h ht_="+cFIsecurf">3inux/34/lis_ ">  2/lis_7clasrouh htecgroup.c#L20" ">  2/lis_7clasrouh hte="h>L L1"2a>>
ses,ch valuf2gv17e &g44#de40"L24">  2aon22k 3e_cgr2_roupe cl4rivahtecgroup.c#L20" 4rivahtL224
  L20" i4=CGL L1"2a>>
ses,ch valuf2gv17e :ce_cgrouth4/a>&g4;
>
ses,ch valuf2gv17e &g44nam3="L24">  AL L1"2a>>
ses,ch valuf2gv17e fine L L1"2a>>
ses,ch valuf2gv17e  42u3/device_cghref="3f33e_cgr2_roupe cl>>" m-="+cFIN _asro203">  1>>" m-="+cFIsecurf">3inux/34/lis_ ">  2/lis_" m->>ecgroup.c#L20" ">  2/lis_" m->>L L1"2a>>
ses,ch valuf2gv17e  42u3/device_cghref="3f93e_cgr2_roupe cl4rivahtecgroup.c#L20" 4rivahtL224
  L20" iLISTL L1"2a>>
ses,ch valuf2gv17e &g4;
L L1"2a>>
ses,ch valuf2gv17e :ce_cgrouth4/a>&g4;
  au_r  2c.3_to_>324/device_c154; !ity/de4ice_cgrouwh  s="linwh>&g4;
  157INVAu174">  29c.4d290whitbreaks="linwh>&g4;
  157INVAu174swh  21*4c name="L24">:ce_cgrouth4/a>&g45#definecurit4/device2_cgro24>  a>_subsyef="i306.hd30ce_c>  a>_subsyerLISTce_3oup.c#L19" 15s_subsyef="i306.hd30ce_19" 15s_subsyeL224
>
ses,ch valuf2gv17e fine L L1"2a>>
ses,ch valuf2gv17e &g4;
  _asro203">  1uan_attac>securf">3inux/34/lis_ ">  2/lis_uan_attac>  _asro203">  1">  2/lis_uan_attac>L L1"2a>>
ses,ch valuf2gv17e &g4;
  1ut2/desecurf">3inux/34/lis_ ">  2/lis_ut2/de  _asro203">  1">  2/lis_ut2/deL L1"2a>>
ses,ch valuf2gv17e &g4;
3inux/34/lis_ ">  2/lis_de="+odevice_cghref="/de  2/lis_de="+odL L1"2a>>
ses,ch valuf2gv17e    4<29vice29_whit"mi5/device_cgrosubsye_itecgroup.c#L20" subsye_itsecurf">3inux/34/lis_ ">  15s_subsye_itecgroup.c#L20" ">  15s_subsye_itL L1"2a>>
ses,ch valuf2gv17e 3inux/34/lis_ ">   2/lis_i4="3href=32tex.h<2  2/lis_i4="3rL L1"2a>>
ses,ch valuf2gv17e   157INVAu179whit4  2/lis_ 3h href3"s3inroup.cvice_bswh /lis4ittt3ttttttttttttttttL214 cla34="li3m2ef="+c39;  24>
linux/mutex.h2ghbuffe"s4bswh t;
<4 hrm3n_cgretty/device_cg4oumu3436AL L1"2a>>
ses,ch valuf2gv17e linux/mutex.h<46c24346nelasro}t;
linux/mutex.h2>
liinsrefBLOCCC_Wlis_ 17>  157INVAu1794 class=4linsr_cgrourcu_r  2inroup.cvice_thildcgh>
insrefBLOCCC_Wlis_ 17>  157INVAu1793"/lis_ 4  _cecgr26roupe clas=nam4="L2346cvi4e_wh>&/fdevice_cghref="/lis_ 29c24os04hite/_ 264f cl3s=26="line" name="L4">  346L2141ri &5se ="L214 clasrcu->>2/lis_ >2/lise="hr#incluL17" i4="L1lis_ 17>  157PERc#ex.fovice4cghr3f="/lis_ 26>  15linf">3inux/34/lis_ tls_>
<2a href5"securit5/dtls_>
<2a he/lis_it5/device_cgrour  24#define #incluL17" i4="L1lis_ 17>  157PERc#9whits="l4ne" 324#define   _a>273624">  2/lis_ 3de <)
<27 h_rcu#define )
<27 h_rcue/lis_it5/device_cgr"L2444EV_  2c.h_to_>  aidE_MUTEXclas" class/>  1./le <lime="L24">  28c.hd280white/lis_it 2inroup.cvice_utex.for_each_icery
37L18" i4="L1ifritvaluf2gv7"L1"28"line"2444EV_  2c.h_to_>  a2inroup.cvice_ i3="L1838EV_ALL"classsoruc)4/device_cgroup.c#L22" i4="L2242clasro28a>>
<28 href5"securit5/device_28grou281white/lis_itttt49whits;
<4 hrm33/device_cgroup.c#L41" i347#de40"L24">  2aon22k valufvic;  24insrefBLOCCC_Wlis_ 17>  157INVAu17bswh curi43/de3ice_cgroup.c#L21" i4="L234729v41rce="L-p.c# 23thvaluf2gv7"L1"28 _ce_e"2444EV_  2c.h_to_>  a2inroup.cvice_ i3="L1838EV_ALL"classsoruc)4/device_cgroup.c#L22" i4="L224="/lis_ 28c24os04l28L24">  2aon22k valuf2gv28e oup.c#L22" i4="S_ISBLis_ 28c24os04l28S_ISBLie/lis_it5/device_cgrin/32href=32tex.h<2

  a2inroup.cvice_ i3="L1838EV_ALL"classsoruc)4/device_cgroup.c#L22" i4="L224="/lis_ 284" class28="line" name="L4">   4<28oup.c#L22" i4="S_ISCHlis_ 284" class2S_ISCHle/lis_it5/device_cgrin/32href=32tex.h<2
  a2inroup.cvice_ i3="Lttttttttttttttturitinue24">  2/lis_  2444EV_  2c.h_to_>  a2inroup.cvice_ i3="Lttttttttttttttturitinue24">  2/liup.cvice_ i3="Littttttttttttttturitiinue24">  s_it5/device_cgrin/32href=32tex.h<2  3inwh  21
  a2inroup.cvice_ i3="Ltlis_ittttttttturitinue24">  2/lis_   a2inroup.cvice_ i3="Ltlis_ittttttttturitinue24">  2/liup.cvice_ i3="Litlis_ittttttttturitiinue24">  s_it5/device_cgrin/32href=32tex.h<2&34;
  3inwh  21

4a hr348ef4=wnsrefBLOCCC_Wlis_ 17>  157INVAu17bswh nsre4">DE3_CHAR  2
  2aon22k valuf2gv7"L1"28 _ce_cls_MUTEXclas" classls_22inice_cgroup.c#L22" i4="MAY="L20p">'r'  MAY="L20p name="L4">   4<28uf2gv7"L1"28"line"2444EV_  2c.h_to_>  a2inroup.cvice_ i3="Lttttttttte/lis_ituritinue24">  2/lis_ up.cvice_ i3="L i4="L20p">'r'  24  2/kurit5/device_28grou281white/lis_itttt4hswh curi4ce_c3rouwh  21

 4
  aACCLEMAY="L20 name="L4">   4<28uf2gv7"L1"28"line"2444EV_  2c.h_to_>  a2inroup.cvice_ i3="Lttttttttte/lis_ituritinue24">  2/lis_ up.cvice_ i3="L i4="L20ph_to_>  aACCLENce_c)24">  kurit5/device_28grou281white/lis_itttt4hup15x.ri4vice3cgrouwh  21

 1
">  2/li3]24">  2/lis_ >2cFINE_MUTEXclas" clasrcu->>2cFINE_e="hr#incluL17" i4="L1lis_ 17>  157PERc#bswh vice4evic3_cgroup.c#L15" i3="4153534 nam3="L24">  2aon22k c# 2i_A124">  2/lis_   349e=D370*" m-p.c# 2i3e3"sm="se3e_" i="L2444EV_ALL"cl49whitvice4e"L23">  2u3/device_cghr4f="u349L214224">  2/lis_ 3h href3"s3inroup.cvice_14 clinro4p.cv3ce_mutex.h>
4a hr343"se3uri &5se ="L214 clasrcu->>2cFINE_MUTEXclas" clasrcu->>2cFINE_e="hr#incluL17" i4="L1lis_ 17>  157PERc# href1sre4">DE3/a>>
  2mi2norde236white3lis_i33y/device_cgrou.c#L17" i4="L1lis_ 17>  157PERc#14 cliLOC4C_WR32k valuf2gv29e  492c.349cvi4e_wh>&/fdevice_cghref="/lis_ 29c24os0414 clittt4tttt3ss29="line" name="L4">  34<29v39ref="+c39;  24  2/lis_in/320mkn/3evice_cghref="/de  2/lis_in/320mkn/3e="hrp.c#L21" i3="L213" c/32href=32tex.h<2
LISTce_3oup.c#L19"3"sutex.for_eacude"securit5/device_28grou281white/lis_itttt414 clirit4/dev3f="/lis_ 29vice_cgr49oup34#L5"39roup.c#L19" i4="Lwh  21
   h1Ie=ihLISTce_3groumutex./le <linux/mutex.h2>
liinsrefBLOCCC_Wlis_ 17>  157INVAu15 hre47cla5s="l4ne"  24#define 5a hr45="+c40ce_cghre747clasroup.c" name="L24">  2inroup.cvice_thildcgh>
insrefBLOCCC_Wlis_ 17>  157INVAu1514 c4DEV_5LL" 4la30>   9  2/lis_ 3h href3"s3inroup.cvice514 c4>#de5ine 4a href="+code=DEV_A5L" c45301 40ri &hd2ce3ame="L24"324">S_ISBLis_ 28c24os04l28S_ISBLie/lis_it5/device_cgrc/32href=32tex.h<2   4<28oup.c#L22" i4="S_ISCHlis_ 284" class2S_ISCHle/lis_it5/device_cgrc/32href=32tex.h<2#de40"L24">  2aon22k c# 2i_A124">  2/lis_  592c.45.cvi4e_wh>&/fdevice_cghref="/lis_ 29c24os05l29L4e7li5_itt4ts29="line" name="L5">  450L2141ri &5se ="L214 clastex./le <linf">3inux/34/lis_ tls_>
<2a href5"securit5/dtls_>
<2a he/lis_it5/device_cgrour  24#define #incluL17" i4="L1lis_ 17>  157PERc5f3"/4 8li5_itt4t="/lis_ 29vice_cgr59oup450nelasro}t;
  aidE_MUTEXclas" class/>  1./le <lime="L24">  28c.hd280white/lis_it 2inroup.cvice_utex.for_each_icery
 515linux/m8.hd2cf2gv7"L1"28"line"2444EV_  2c.h_to_>  a2inroup.cvice_ i3="L1838EV_ALL"classsoruc)4/device_cgroup.c#L22" i4="L2242clasro28a>>
<28 href5"securit5/device_28grou281white/lis_itttt5f3"/43EV_5LL" 4e/lis_ittttttttte/l5s_it45itin41"L24">  2aon22k valuffff;  24insrefBLOCCC_Wlis_ 17>  157INVAu15L5" 40>  55  a2inroup.cvice_ i3="L1838EV_ALL"classsoruc)4/device_cgroup.c#L22" i4="L224="/lis_ 28c24os04l28L24">  2aon22k valuf2gv28e oup.c#L22" i4="S_ISBLis_ 28c24os04l28S_ISBLie/lis_it5/device_cgrc/32href=32tex.h<2  2aon22k valufvicinwh  21
  45<29v41rce="L-p.c# 23thvaluf2gv7"L1"28 _ce_e"2444EV_  2c.h_to_>  a2inroup.cvice_ i3="L1838EV_ALL"classsoruc)4/device_cgroup.c#L22" i4="L224="/lis_ 284" class28="line" name="L4">   4<28oup.c#L22" i4="S_ISCHlis_ 284" class2S_ISCHle/lis_it5/device_cgrc/32href=32tex.h<2
  a2inroup.cvice_ i3="Lttttttttttttttturitinue24">  2/lis_  2444EV_  2c.h_to_>  a2inroup.cvice_ i3="Lttttttttttttttturitinue24">  2/liup.cvice_ i3="LMAJOlis_ 284" class2MAJOle/lis_it5/device_cgr19"3"sutex.for_eacude"secuurit5/device_28grou281white/lis_itttt5L29L4e7li5" cl4s/device_cgroup.c#L51" i45"L2141ri &"(~L23a,valufvicinwh  21
  a2inroup.cvice_ i3="Ltlis_ittttttttturitinue24">  2/lis_   a2inroup.cvice_ i3="Ltlis_ittttttttturitinue24">  2/liup.cvice_ i3="LMINOlis_ 284" class2MINOle/lis_it5/device_cgr19"3"sutex.for_eacude"secuurit5/device_28grou281white/lis_itttt5Lswh4fref5but 4ot   3inwh  21
  2aon22k hd2ceuf2gv7"L1"28"line"2444EV_  2c.h_to_>  a2inroup.cvice_ i3="Lttttttttte/lis_ituritinue24">  2/lis_ up.cvice_ i3="L i4="L20p">'w'  24  2/uurit5/device_28grou281white/lis_itttt5lish4has_5h>
  3inwh  21
">  2/li3]24">  2/lis_ >2cFINE_e="hr#incluL17" i4="L1lis_ 17>  157PERc5ADMIN).  5  24hasdevice_cgroup.c#L51" i352p.c41ref4=wh*" m-p34"c# 2i_A124">  2/lis_ 
<,5or yourdevice_cgroup.c#L51" i352ef4=wh*" m-p.c# 2i3e3"sm="se3e_" i="L2444EV_ALL"cl5222welask5as_dor/device_cgroup.c#L51" i352L2141# 2i3e3"sm="se3e_" i="L2444EV_ALL"cl523"/4 8li5for re the parice code=D5 24>2cFINE_MUTEXclas" clasrcu->>2cFINE_e="hr#incluL17" i4="L1lis_ 17>  157PERc5Aswh4fref5ry_9" i3="L19hrparice_ha5_perm5urit5/ncluL17" i4="L1lis_ 17>  157PERc5h  21*" m5p.cbuffe"ncluttttttttttt5ttttl53tinue24">  2/fffffe=3L24">  2mi2norde236white3lis_i33y/device_cgrou.c#L17" i4="L1lis_ 17>  157PERc5t;
lin5x/mmutc# 2i3e3"sm="se3e_" i="L2444EV_ALL"cl5ghbswh  25*" m-p.cb2inroup.cvice_w5>>5inelas


The original LXR software by th 23t; 2<"sehttp://sourceforge.net/projects/lxr">LXR 3incune_"or_eacthis expericludal version by 3t; 2<"semailto:lxr@nroux.no">lxr@nroux.noor_e.
lxr.nroux.no kindly hosted by 3t; 2<"sehttp://www.redpill-nropro.no">Redpill Lropro ASor_eacprovider of LrouxcAL eulh g and operations ser 15s since 1995.