linux/drivers/parisc/pdc_stable.c
<<
8" /spa" /form a 8" href="../linux+v3.7.9/drivers/parisc/pdc_stable.c">8" img src="../.static/gfx/right.png" alt=">>">8" /spa" 8" spa" class="lxr_search">8" 8" input typtiohidden" namtionavtarget" 8" input typtiotext" namtiosearch" idiosearch">8" butt4.5typtiosubmit">Search8" Prefs /a>8" /spa" /div form ac4.5"="ajax+*" method="post" onsubmit="return false;">8" input typtiohidden" namtioajax_lookup" idioajax_lookup" 8 /form 8 div class="headingbott4m">
div idiofile_contents"
/*  /spa"
	 *
   Interfaces to retrieve and set PDC Stable .14.5"s (firmware) /spa"
	 * /spa"
	 *
   Copyright (C) 2005-2006 Thibaut VARENE <varenet@parisc-linux.org> /spa"
	 * /spa"
	 *
   This program is free software; you ca" redistribute it and/or modify /spa"
	 *
   it under the terms of the GNU General Public License, vers14.52, as /spa"
	 *
   published by the Free Software Founda4.5". /spa"
	 * /spa"
	 *
   This program is distributed in the hope that it will be useful, /spa"
	 *
   but WITHOUT ANY WARRANTY; without even the implied warranty of /spa"
	 *
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the /spa"
	 *
   GNU General Public License for more details. /spa"
	 * /spa"
	 *
   You should have received a copy of the GNU General Public License /spa"
	 *
   along with this program; if not, write to the Free Software /spa"
	 *
   Founda4.5", Inc., 59 Temple Place, Suite 330, Bost5", MA  02111-1307  USA /spa"
	 * /spa"
	 * /spa"
	 *
   DEV NOTE: the PDC Procedures reference states that: /spa"
	 *
   "A minimum of 96 bytes of Stable Storage is required. Providing more than /spa"
	 *
   96 bytes of Stable Storage is .14.5"al [...]. Failure to provide the /spa"
	 *
   .14.5"al loca4.5"s from 96 to 192 results in the loss of certain /spa"
	 *
   func4.5"ality during boot." /spa"
	 * /spa"
	 *
   Since loca4.5"s between 96 and 192 are the various paths, most (if not /spa"
	 *
   all) PA-RISC machines should have them. Anyway, for safety reas5"s, the /spa"
	 *
   following code ca" deal with just 96 bytes of Stable Storage, and all /spa"
	 *
   sizes between 96 and 192 bytes (provided they are multiple of struct /spa"
	 *
   device_path size, eg: 128, 160 and 192) to provide full informa4.5". /spa"
	 *
   One last word: there's one path we ca" always count on: the primary path. /spa"
	 *
   Anything above 224 bytes is used for 'osdep2' OS-dependent storage area. /spa"
	 * /spa"
	 *
   The first OS-dependent area should always be available. Obviously, this is /spa"
	 *
   not true for the other one. Also bear in mind that reading/writing from/to /spa"
	 *
   osdep2 is much more expensive than from/to osdep1. /spa"
	 *
   NOTE: We do not handle the 2 bytes OS-dep area at 0x5D, nor the first /spa"
	 *
   2 bytes of storage available right after OSID. That's a total of 4 bytes /spa"
	 *
   sacrificed: -ETOOLAZY :P /spa"
	 * /spa"
	 *
   The current policy wrt file permiss.5"s is: /spa"
	 *
     - write: root only /spa"
	 *
     - read: (reading triggers PDC calls) ? root only : everyone /spa"
	 *
   The ra4.5"ale is that PDC calls could hog (DoS) the machine. /spa"
	 * /spa"
	 *
     TODO: /spa"
	 *
     - timer/fastsize write calls /spa"
	 */ /spa"
	PDCS_DEBUG /a>	PDCS_DEBUG /a>	DPRINTK /a>( a href="+code=fmt" class="sref">fmt /a>,  a href="+code=args" class="sref">args /a>...)    a href="+code=printk" class="sref">printk /a>( a href="+code=KERN_DEBUG" class="sref">KERN_DEBUG /a>  a href="+code=fmt" class="sref">fmt /a>, ##  a href="+code=args" class="sref">args /a>)	DPRINTK /a>( a href="+code=fmt" class="sref">fmt /a>,  a href="+code=args" class="sref">args /a>...)	linux/module.h /a>>	linux/init.h /a>>	linux/kernel.h /a>>	linux/string.h /a>>	linux/capability.h /a>>	linux/ctypt.h /a>>	linux/sysfs.h /a>>	linux/kobject.h /a>>	linux/device.h /a>>	linux/errno.h /a>>	linux/spinlock.h /a>>	asm/pdc.h /a>>	asm/page.h /a>>	asm/uaccess.h /a>>	asm/hardware.h /a>>	PDCS_VERSION /a>     spa" class="string">"0.30" /spa"
	PDCS_PREFIX /a>      spa" class="string">"PDC Stable Storage" /spa"
	PDCS_ADDR_PPRI /a>  0x00	PDCS_ADDR_OSID /a>  0x40	PDCS_ADDR_OSD1 /a>  0x48	PDCS_ADDR_DIAG /a>  0x58	PDCS_ADDR_FSIZ /a>  0x5C	PDCS_ADDR_PCON /a>  0x60	PDCS_ADDR_PALT /a>  0x80	PDCS_ADDR_PKBD /a>  0xA0	PDCS_ADDR_OSD2 /a>  0xE0	MODULE_AUTHOR /a>( spa" class="string">"Thibaut VARENE <varenet@parisc-linux.org>" /spa"
);	MODULE_DESCRIPTION /a>( spa" class="string">"sysfs interface to HP PDC Stable Storage data" /spa"
);	MODULE_LICENSE /a>( spa" class="string">"GPL" /spa"
);	MODULE_VERSION /a>( a href="+code=PDCS_VERSION" class="sref">PDCS_VERSION /a>);	/* holds Stable Storage size. Initialized once and for all, no lock needed */ /spa"
	pdcs_size /a>  a href="+code=__read_mostly" class="sref">__read_mostly /a>;	/* holds OS ID. Initialized once and for all, hopefully to 0x0006 */ /spa"
	u16 /a>  a href="+code=pdcs_osid" class="sref">pdcs_osid /a>  a href="+code=__read_mostly" class="sref">__read_mostly /a>;	/* This struct defines what we need to deal with a parisc pdc path entry */ /spa"
	pdcspath_entry /a> {	rwlock_t /a>  a href="+code=rw_lock" class="sref">rw_lock /a>;                spa" class="comment">/* to protect path entry access */ /spa"
	ready /a>;                     spa" class="comment">/* entry record is valid if != 0 */ /spa"
	addr /a>;              spa" class="comment">/* entry address in stable storage */ /spa"
	href /a>;                      spa" class="comment">/* entry href */ /spa"
	device_path /a>  a href="+code=devpath" class="sref">devpath /a>;      spa" class="comment">/* device path in parisc representa4.5" */ /spa"
	device /a> * a href="+code=dev" class="sref">dev /a>;              spa" class="comment">/* corresponding device */ /spa"
	kobject /a>  a href="+code=kobj" class="sref">kobj /a>;	pdcspath_attribute /a> {	attribute /a>  a href="+code=attr" class="sref">attr /a>;	ssize_t /a> (* a href="+code=show" class="sref">show /a>)(struct  a href="+code=pdcspath_entry" class="sref">pdcspath_entry /a> * a href="+code=entry" class="sref">entry /a>, char * a href="+code=buf" class="sref">buf /a>);	ssize_t /a> (* a href="+code=store" class="sref">store /a>)(struct  a href="+code=pdcspath_entry" class="sref">pdcspath_entry /a> * a href="+code=entry" class="sref">entry /a>, const char * a href="+code=buf" class="sref">buf /a>,  a href="+code=size_t" class="sref">size_t /a>  a href="+code=count" class="sref">count /a>);	PDCSPATH_ENTRY /a>( a href="+code=_addr" class="sref">_addr /a>,  a href="+code=_href" class="sref">_href /a>) \	pdcspath_entry /a>  a href="+code=pdcspath_entry_" class="sref">pdcspath_entry_ /a>##_href = { \	ready /a> = 0, \	addr /a> =  a href="+code=_addr" class="sref">_addr /a>, \	href /a> =  a href="+code=__stringify" class="sref">__stringify /a>( a href="+code=_href" class="sref">_href /a>), \	PDCS_ATTR /a>( a href="+code=_href" class="sref">_href /a>,  a href="+code=_mode" class="sref">_mode /a>,  a href="+code=_show" class="sref">_show /a>,  a href="+code=_store" class="sref">_store /a>) \	kobj_attribute /a>  a href="+code=pdcs_attr_" class="sref">pdcs_attr_ /a>##_href = { \	attr /a> = {. a href="+code=href" class="sref">href /a> =  a href="+code=__stringify" class="sref">__stringify /a>( a href="+code=_href" class="sref">_href /a>), . a href="+code=mode" class="sref">mode /a> =  a href="+code=_mode" class="sref">_mode /a>}, \	show /a> =  a href="+code=_show" class="sref">_show /a>, \	store /a> =  a href="+code=_store" class="sref">_store /a>, \	PATHS_ATTR /a>( a href="+code=_href" class="sref">_href /a>,  a href="+code=_mode" class="sref">_mode /a>,  a href="+code=_show" class="sref">_show /a>,  a href="+code=_store" class="sref">_store /a>) \	pdcspath_attribute /a>  a href="+code=paths_attr_" class="sref">paths_attr_ /a>##_href = { \	attr /a> = {. a href="+code=href" class="sref">href /a> =  a href="+code=__stringify" class="sref">__stringify /a>( a href="+code=_href" class="sref">_href /a>), . a href="+code=mode" class="sref">mode /a> =  a href="+code=_mode" class="sref">_mode /a>}, \	show /a> =  a href="+code=_show" class="sref">_show /a>, \	store /a> =  a href="+code=_store" class="sref">_store /a>, \	to_pdcspath_attribute /a>( a href="+code=_attr" class="sref">_attr /a>)  a href="+code=container_of" class="sref">container_of /a>( a href="+code=_attr" class="sref">_attr /a>, struct  a href="+code=pdcspath_attribute" class="sref">pdcspath_attribute /a>,  a href="+code=attr" class="sref">attr /a>)	to_pdcspath_entry /a>( a href="+code=obj" class="sref">obj /a>)   a href="+code=container_of" class="sref">container_of /a>( a href="+code=obj" class="sref">obj /a>, struct  a href="+code=pdcspath_entry" class="sref">pdcspath_entry /a>,  a href="+code=kobj" class="sref">kobj /a>)	/** /spa"
	 * pdcspath_fetch - This func4.5" populates the path entry structs. /spa"
	 *
@entry: A pointer to a" alloca4ed pdcspath_entry. /spa"
	 *
 /spa"
	 *
The general idea is that you don't read from the Stable Storage every time /spa"
	 *
you access the files provided by the facilities. We store a copy of the /spa"
	 * content of the stable storage WRT various paths in these structs. We read /spa"
	 *
these structs when reading the files, and we will write to these structs when /spa"
	 *
writing to the files, and only then write them back to the Stable Storage. /spa"
	 * /spa"
	 *
This func4.5" expects to be called with @entry->rw_lock write-hold. /spa"
	 */ /spa"
	pdcspath_fetch /a>(struct  a href="+code=pdcspath_entry" class="sref">pdcspath_entry /a> * a href="+code=entry" class="sref">entry /a>)	device_path /a> * a href="+code=devpath" class="sref">devpath /a>;	entry /a>)	EINVAL /a>;	devpath /a> = & a href="+code=entry" class="sref">entry /a>-> a href="+code=devpath" class="sref">devpath /a>;	DPRINTK /a>( spa" class="string">"%s: fetch: 0x%p, 0x%p, addr: 0x%lx\n" /spa"
,  a href="+code=__func__" class="sref">__func__ /a>,	entry /a>,  a href="+code=devpath" class="sref">devpath /a>,  a href="+code=entry" class="sref">entry /a>-> a href="+code=addr" class="sref">addr /a>);	/* addr, devpath and count must be word aligned */ /spa"
	pdc_stable_read /a>( a href="+code=entry" class="sref">entry /a>-> a href="+code=addr" class="sref">addr /a>,  a href="+code=devpath" class="sref">devpath /a>, sizeof(* a href="+code=devpath" class="sref">devpath /a>)) !=  a href="+code=PDC_OK" class="sref">PDC_OK /a>)	EIO /a>;	/* Find the matching device. /spa"
	           NOTE: hardware_path overlays with device_path, so the nice cast can /spa"
	           be used */ /spa"
	entry /a>-> a href="+code=dev" class="sref">dev /a> =  a href="+code=hwpath_to_device" class="sref">hwpath_to_device /a>((struct  a href="+code=hardware_path" class="sref">hardware_path /a> *) a href="+code=devpath" class="sref">devpath /a>);	entry /a>-> a href="+code=ready" class="sref">ready /a> = 1;	DPRINTK /a>( spa" class="string">"%s: device: 0x%p\n" /spa"
,  a href="+code=__func__" class="sref">__func__ /a>,  a href="+code=entry" class="sref">entry /a>-> a href="+code=dev" class="sref">dev /a>);	/** /spa"
	 *
pdcspath_store - This func4.5" writes a path to stable storage. /spa"
	 *
@entry: A pointer to a" alloca4ed pdcspath_entry. /spa"
	 *
 /spa"
	 *
It can be used in two ways: either by passing it a preset devpath struct /spa"
	 * containing a" already compu4ed hardware path, or by passing it a device /spa"
	 *
pointer, from which it'll find out the corresponding hardware path. /spa"
	 *
For now we do not handle the case where there's a" error in
writing to the /spa"
	 *
Stable Storage area, so you'd better not mess up the data :P /spa"
	 * /spa"
	 * This func4.5" expects to be called with @entry->rw_lock write-hold. /spa"
	 */ /spa"
	pdcspath_store /a>(struct  a href="+code=pdcspath_entry" class="sref">pdcspath_entry /a> * a href="+code=entry" class="sref">entry /a>)	device_path /a> * a href="+code=devpath" class="sref">devpath /a>;	BUG_ON /a>(! a href="+code=entry" class="sref">entry /a>);	devpath /a> = & a href="+code=entry" class="sref">entry /a>-> a href="+code=devpath" class="sref">devpath /a>;	/* We expect the caller to set the ready flag to 0 if the hardware /spa"
	           path struct provided is invalid, so that we know we have to fill it. /spa"
	           First case, we don't have a preset hwpath... */ /spa"
	entry /a>-> a href="+code=ready" class="sref">ready /a>) {	/* ...but we have a device, map it */ /spa"
	BUG_ON /a>(! a href="+code=entry" class="sref">entry /a>-> a href="+code=dev" class="sref">dev /a>);	device_to_hwpath /a>( a href="+code=entry" class="sref">entry /a>-> a href="+code=dev" class="sref">dev /a>, (struct  a href="+code=hardware_path" class="sref">hardware_path /a> *) a href="+code=devpath" class="sref">devpath /a>);	/* else, we expect the provided hwpath to be valid. */ /spa"
	DPRINTK /a>( spa" class="string">"%s: store: 0x%p, 0x%p, addr: 0x%lx\n" /spa"
,  a href="+code=__func__" class="sref">__func__ /a>,	entry /a>,  a href="+code=devpath" class="sref">devpath /a>,  a href="+code=entry" class="sref">entry /a>-> a href="+code=addr" class="sref">addr /a>);	/* addr, devpath and count must be word aligned */ /spa"
	pdc_stable_write /a>( a href="+code=entry" class="sref">entry /a>-> a href="+code=addr" class="sref">addr /a>,  a href="+code=devpath" class="sref">devpath /a>, sizeof(* a href="+code=devpath" class="sref">devpath /a>)) !=  a href="+code=PDC_OK" class="sref">PDC_OK /a>) {	printk /a>( a href="+code=KERN_ERR" class="sref">KERN_ERR /a>  spa" class="string">"%s: a" error occurred when writing to PDC.\n" /spa"
	"It is likely that the Stable Storage data has been corrupted.\n" /spa"
	"Please check it carefully upon next reboot.\n" /spa"
,  a href="+code=__func__" class="sref">__func__ /a>);	WARN_ON /a>(1);	/* kobject is already registered */ /spa"
	entry /a>-> a href="+code=ready" class="sref">ready /a> = 2;	DPRINTK /a>( spa" class="string">"%s: device: 0x%p\n" /spa"
,  a href="+code=__func__" class="sref">__func__ /a>,  a href="+code=entry" class="sref">entry /a>-> a href="+code=dev" class="sref">dev /a>);	/** /spa"
	 *
pdcspath_hwpath_read - This func4.5" handles hardware path pretty printing. /spa"
	 * @entry: A" alloca4ed and populated pdscpath_entry struct. /spa"
	 *
@buf:
The output buffer to write to. /spa"
	 *
 /spa"
	 *
We will call th.5" handles to for6P6h.5" hand4; /sp31ommea0a 22ivers/parisc/pd    ers/pari363" " class=ine" href="r163f> 163 /a>	)  a href="+coda cla8_path" attribute" class="sref">t.2; a href="+code=entr spa" 3e5};	pdcspath_store /a>(struct  a href="+code=pdcspath_entry" class="sref"/a>)  a href="+coda cla8_path" attribute"rs/pariscspath_attribute /a>,  a 2ref="2code=aa>, sizeof(* a href="+code=devpath" classass="sref2>pdcspath_entry /a>,  a 2ref="23s been corrupuct  a href="+code=pd233ath_entry" clas233 href="r17ef> 171 /a> cspath_entry" class="srefss="sref">__func__ /a>,  a href="+code=envers/pari2c/pdc_stable.c#L138" idi2L138"23c__" class="sef="r194f> 194 /a>{	pdcspay access */ /spa"
	 195i     struct  a href="+code=device_path" clas2dment"> * h_fetch - This func4.5" 2opula24lass=ine" href="r120f> 12 vaa>};	 *
@entry: A pointe2 to a24="r22ef> 221 hwpath... */ /spa"
	)  a href="+coda cla8_path" attributedioL142" 2 class=ine" href="r142f>2142 /24 is already rrrrrrrrr>entry /a>)	__func__ /a>,  a href="+code=ent of the 2table storage WRT variou2 path246e" href="r224f> 224 /a>     /a>	devpath /a> = & a href="+code=entry" clcts when 2eading the files, and we2will 24 class=ine" href="r196f> 196iref="r195f> 195i    f="r17ef> 171 /a> pa"
	__func__ /a>,  a href="+code=enters/pari2" class=ine" href="r148f2 148 24class=ine" href="r178f> 178 /a>}	 221 hwpath... */ /spa"
	iref="r195f> 195i    )03" " class=ine" href="r103f> e0ver188"arisc/  ers/pari363" " class=ine" href="r163f> 163 /a>	dioL150" 2 class=ine" href="r150f>215 va25e" href="r220f> 220 />entry /a>)	 = & a href="+code=entry" clc/pdc_sta2le.c#L151" idioL151" " c2ass=i25="r22ef> 221 path /a> = & a href="+code=entry" clcioL142" 2dcspath_entry /a> * a hr2f="+c25 is already rstab.c#L216" idioL21iref="r195f> 195i    f="0;href="r196f> 196iref="r195f> 195i    f7f>  6;href="r196f> 196iref="r195f> 195i    ++" " class=ine" href="r213f> 213 /a>	 222ass=ine" href="r148f2 140" " for6P6href="driu_6 A"f hreI pretty printin;hrefpdc_s || th... */ /spa"
	cspath_entry" cla>       2struct  a href="+code=de2ice_p25=entry" class="sref">assass="so/parue /a>)	devpath /2>;	devpath /a>)) !=  a /a>,  a 2ref="23s been cor+ class=ine" href=sers/pa href="drivers/sers/pasref">PDC_OK /a>) {	/a>,  a 2ref="23s been co,c#L216" idioL216" " class=ine" hru/le.c#L225" idio(      spasrefa>( a href="+code=entry" class="sref">entry /a>-&n250"r22ef> 222ass=ine" href="r148f2 140" " for6P6href="driu_6 A"f hreI pretty pr/a>         a hreoL100" " class=ine" href=isc/pdc_s2able.c#L156" idioL156" "2class2ine" href="r15=entry" class="sref">entry /a>-> a hree.c#L157"2idioL157" " class=ine" h2ef="r25ntry" clcss="sref2les, and o/a>,  a 2ref="23s been cor+ class=ine" href=sers/pa href="drivers/sers/pasref">PDC_OK /a>) {	/a>,  a 2ref="23s been co,c#L216" idioL216" " class=ine" hruable.c#L225" idio(      spasrefa>( a href="+code=entry" class="sref">entry /a>-&n250"r22ef> 222ass=imode=entr spa" 3e5mod199 /a>         a hreoL100" " class=ine" href=code=EINV2L" class="sref">EINVAL /2>;	         a hreoL100" " class=ine" href="sref">de2path /a> = & a href=2+code2entry" class="ass=inesref2les, and o/a>,  a 2ref="23s been cor-upuct  a href="+code=pd233ath_entry" clas233 href="r17ef> 171 /a> cspath_entry" clth" class2"sref">devpath /a>;	entry /a>-> a hre" s: fetch: 0x%p, 0x&237;p,26lass="sref">hardware_path /a> *) a href="+co2ath" clas2="sref">devpath /a>,  a 2ref="26#L232" idioL232" " class=inble.c#L227" idioL227" " class=ine" href="r227f> 22="+code=a2dr" class="sref">addr /a2);	/** /spa"
	devpath2/a>, sizeof(* a href="+c2de=de26> * containing a" already complloca4ed ainpopulated pdsct"> *
 /shref="drivers/parisc/pdc_stable.c#L230" idioL230"sc/pdc_s2L166" idioL166" " class=2ne" h26> *
pointer, from which it'@=ine"a4ed anumbd pof byent">     t"> href="drivers/parisc/pdc_stable.c#L230" idioL230".c#L157"2f">EIO /a>;	 nthref="drivers/parisc/pdc_stable.c#L186" idioL186" " class=ine2f="r169f>2169 /a> spa" class="comm2nt"> 2         NOTE: hardware_path * Hef="drivers/s39;s">     gL18n we ha/we ha-delimth_d,commet a bracke"drivers/parisc/pdc_stable.c#L140" idioL140" " cl2vers/pari2c/pdc_stable.c#L170" idi2L170"27lass="comment"> * @entry: A" aW hreke sure paa href="r208f> 2ref="dctuahrefmapses a paexispariivers/parisc/pdc_stable.c#L140" idioL140" " cl2vquot;   a href="+code=hardware2path"27r23ef> 231 /a> spa" class="com"sref">rBUTr195"r167wouldef="v nthsome142olish3f> f="r200f> 200">/** /spo/pdc_stable.c#L143" idioL143" " class=ine" href=2e=devpath2 class="sref">devpath /a2);	         a href=2+code27#L183" idioL183" " class=ine" Aiting towork39;ined7wouldebs">  reke sure w#39;s a href=eg itfss="sref" trepdc_stable.c#L143" idioL143" " class=ine" href=2e4" " cla2ref">ready /a> = 1;	r=reait7wouldebs"IMHOebsyo=ine" hsimp	devpath2s="sref">__func__ /a>,  2 href27> * containing a" already comped aaim /a> o="r208f>ss=ery timy. Driscce /sctnc#L10s left> o=f> flre rivers/parisc/pdc_stable.c#L140" idioL140" " cl2vsc/pdc_s2ss="sref">dev /a>);	 176 2a>        	t.2; a href="nd count must be word at.2; a href="nd coffer to write to. /spae3ref="+codeidc_st5%s: sable.c#L193" idioL193" " class=ine" href="r193f> 193 /a> a href="+code=pd a href="+code=store" class="sref">store /a>)(struct  a href="+code=pdcspath_entry" class="sref">pdcspath_entry /a> * a href="+code=entry" class=148" idioL148" " for6P6h.5" handdrivers/8" " clas2=ine" href="r178f> 178 /2>}	  6;href="r196f> 196iref="r195f> 1959 /a>	device_to_hwpath  href="+code=dev="+code=dev" class="/a>);	pdcspay access */ /spa"
	idioL182"2" class=ine" href="r182f2 182 28ntry" clcioL1ef="+class=ine" href=n"r139f>2139 /24=n0" " for6P6href="dri * a href="+code=entry" class+1],+code=store" clastemphref="+code=enttemp"sref">pdcspay access */ /spa"
	i"+code=a2ref="drivers/parisc/pdc_2table28ef="drivers/parisc/pdc_stable.c#L153" idi8"23c__" class="sef="> 194 /a>{	pdcspay access */ /spa"
	i4" " cla2f> 184 /a> spa" class="c2mment28    spa" classn/pdc_stable.c#L15re href="+code=entre : 0xf">pdcspay access */ /spa"
	i>devpath25f> 185 /a> spa" class="2ommen28h" class="sref">device_path /a> * a href="+c2 href="r126f> 186 /a> spa" class="2ommen28ne" href="r15"com2ent"> *
@entry: A pointe2 to a24="r22ef> 221 hwpath... */ /spa"
	 176 2 /a> spa" class="comment2> *
F28"It is likely thass=ine" href="r142f>2142 /24 is already rrrrrrrrr>entry /a>)	 ss=s half="driverpar#3   )03" " class=ine" href="r103f> e0ver188"arisc" href="r290f> 19 vaa> spa" class=2comme29vers/parisc/pdc_stable.c#L21memse href="+code=entmemse sref">PDC_OK /a>) {	=n"r139f>2139 /24=n0" ",ntryfor6P6href="dri * a href="+code=entry" class+1/a>         a hreoL100" " class=ine" href=spa"
	PDC_OK /a>) {	=n"r139f>2139 /24=n0" ",node=store" class="sref">store /a>)(struct  a href="+code= * a href="+code=entry" class="sref">entry /a>, const char * a href="+2class="co2ment"> */ /spa"
	entry /a>, const char * a href="+2c"+code=a2ruct  a href="+code=pdcs2ath_e29ref="drivers/parisc/pdc_stable.c#L213"Let /spa"
cleisc"
	/g tn#3   )03" " class=ine" href="r103f> e0ver188"arisc"4" " cla2y" class="sref">entry /a2)	    sssreun00" "v="+code=dev" class="/a>);	pdc_sta   sssreun00" "v="+code=dev" class="/a>);	entry /a>, const char * a href="+2c>devpath2struct  a href="+code=de2ice_p29+code=entry" class="sref">entry /a>-> a href="+co2de=devpat2" class="sref">devpath /2>;	 176 297f> 197 /a>         a h2ef="+298e" href="r15"com2a   sssreun00" "temphref="+code=enttemp"sre4 class=ine" href=16"rchef="r215f> 215 /16"rchesref">PDC_OK /a>) {	=n"r139f>2139 /24=n0" ",noL216" idioL216" " clae ha/we ha  )03" ))=148" idioL148" " for6P6h.5" handdrivers/+code=ent2y" class="sref">entry /a2);	de3path /a> = & a href=3+code3entry" class="""""""""""""""""y /a>)	de3p0f> 19 vaa> spa" class=3ef="d30vers/parisc/pdc_stable.c#L21v="+code=dev" class="/a>);	attr /a> = {. a he=entr spa" 3e5mod199 4 class=ine" href=1imp	PDC_OK /a>) {	temphref="+code=enttemp"sre+1t  a href="+code=NUL4 is already rrrNUL40" ",n10="sref">entry /a>, const char * a href="+3 href="r231f> 201 /a>         spa"3class302ers/parisc/pdc_stable.c#L21=n"r139f>2139 /24=n0" " for6P6href="dritemphref="+code=enttemp"sre" href="r142f>21=n"r139f>2139 /24=n0" "]4 clL216" idioL216" " clae ha\0we ha  )03" ;vers/p.c#L167" idioL167" " clarisnhard> 200 /mher by 16" " . jref=precaupa" c3   )03" " class=ine" href="r103f> e0ver188"aris3="r202f> 302 /a> spa" class="comme3t">  30f> 222 /a>         spa" clas4" idioL224" " class=ine" href="r224f> 224 /a>        	attr /a> = {. a he=entr spa" 3e5mod199 ="sref">entry /a>, const char * a href="+3 4r202f> 30uct  a href="+code=pdcs3pa" c30ntry" class="sref">entry /a>-> a href="+code=read3"r204f> 234 /a>        if (! a hre3="+co3e=entry" classp.c#L167" idioL167" " claThen,=s op:fef=eacvicelimth_r>reak by 1ure w#3ow we have to fto  renspa"
	devpath /3 href30> *
pointer, from which it&###########bef> 18         " hls/pafield. If path.39;s">   rens field/sensway,a"
	 197 /a>         a h3path"30 now we do not handle the caaaaaaaaaaae str " hf> f=href mor" cre por by pass" claughtc"
	pretr       " by pasa"
	entry /a3f="dr30f="r168f> 168 /a>         spa" class="uot; /devicens21 /ncrivers/p gL18n spa"
	 * a hr2f="+c25 is =5; (a   sssreun00" "temphref="+code=enttemp"sre4 class=ine" href=16"rchef="r215f> 215 /16"rchesref">PDC_OK /a>) {	=n"r139f>2139 /24=n0" ",noL216" idioL216" " clae ha/we ha  )03" ))=4f> 22f> 22 2dcspath_entry /temphref="+code=enttemp"sre" href="r142f>21=n"r139f>2139 /24=n0" "intin 0=4f> 22f> 22 2dcspath_entry /quot; "r139f>2139 /24quot; sref">PDC_OK /a>) {	=> * a hr2f="+c25 is )=" class=ine" href="r139f>2139 /24="sre--   f7f>  6;href="r196f> 196iref="r195f> 193hwpath to3be valid. */ /spa"
	attr /a> = {. ne" href="r148f2 140" " for6P6href="driu_6 A"f hreI pretty pri class=ine" href=1imp	PDC_OK /a>) {	temphref="+code=enttemp"sre+1t  a href="+code=NUL4 is already rrrNUL40" ",n10="sref">entry /a>, const char * a href="+3"!s: store: 0x%p, 0x&337;p,3addr: 0x%lx\n"dc_stable.c#L21=n"r139f>2139 /24=n0" " for6P6href="dritemphref="+code=enttemp"sre" href="r142f>21=n"r139f>2139 /24=n0" "]4 clL216" idioL216" " clae ha\0we ha  )03" ;sref">entry /a>, const char * a href="+3&"r202f> 3="sref">devpath /a>,  a 3ref="31ttributedioL142" 2 cl      spa" clas4" idioL224" " class=ine" href="r224f> 224 /a>        	attr /a> = {. ne" href="r148f2 140" " for6P6href="driu_6 A"f hreI pretty pr/a>         a hreoL100" " class=ine" href3="+code=a3dr" class="sref">addr /a3);	entry /a>-> a hr314" " cla3s=ine" href="r214f> 214 3a>   3     spa" clasentry" class="sref">entry /a>-> a hr31ioL205" 3>, sizeof(* a href="+cod3=devp3th" class="srep.c#L167" idioL167" " claSf> 18e willnal fielde3   )03" dioL142" 2 clentry" class="sref">entry /a>-> a hr317oL205" 3class="sref">KERN_ERR /a3  spa31ntry" clcts when 2eading thev="+code=dev" class="/a>);	attr /a> = {. ne" href="r148f2 140" " for6P6href="driu_6 A"f hreI pretty pri class=ine" href=1imp	PDC_OK /a>) {	=n"r139f>2139 /24=n0" ",node=store" clasNUL4 is already rrrNUL40" ",n10="sref">entry /a>, const char * a href="+3&8oL205" 3            spa" class="3tring31ntry" clcss="sref2les, and o4" idioL224" " class=ine" href="r224f> 224 /a>        	attr /a> = {. ne" href="r148f2 140" " for6P6href="driu_6 A"f hreI pretty pr/a>         a hreoL100" " class=ine" href3=9oL205" 3t;Please check it carefu3ly up31ref="drivers/>         a hreoL100" " class=ine" href3able.c#L239" idioL219" " class=ine3 href32ntry" class="dc_stable.c#L200" idioL20Na hrefuot; /dea href=f> f=hr we havetry     a lure usc3   )03" " class=ine" href="r103f> e0ver188"aris3class="sr3f">WARN_ON /a>(1);	entry /a>-> a href="+code=de /a>    sssreun00" "v="+code=dev" class="/a>);	  6;href="r196f> 196iref="r195f> 19320f> 220 3a>        }	PDC_OK /a>) {	 the ha \ass=ine" hre\ass=in dioL217" " class=ine" href="r217f> 217 /a>          3.c#L222" 3dioL222" " class=ine" hr3f="r232ttributedioL142" 2 cl class="dc_stable.c#L16" " class=inref="drivers/: f="drsable.c#L225" idioL225" " class=ine" href="r225f> 225 /a>         a href="+code=DPRINTK" class="sref">DPRINTK /a>( spa" class="string"ine"lass="sref">DPRine"0" ",node=store" class="sref">store /a>)(struc/a>         a hreoL100" " class=ine" href3ef="r223f3 223 /a>         a href=3+code32	ready /a> = 2;	entry /a>-> a hr3nc__" cla3s="sref">__func__ /a>,  3 href32+code=entry" class="sref">entry /a>-> a href="+co3f="+code=3ev" class="sref">dev /a>3;	 t deepc3   )03" " class=ine" href="r103f> e0ver188"aris3c8oL205" 3=ine" href="r226f> 226 /3>}	    sssreun00" " class=ine" hressreun00" able.ble.c#L199" idioL199" " class=ine" href="r199f> 199 /a>         a hreoL100" " class=ine" href37 /a>	/* kobject is already registered */ /spa"
	3229 /a> spa" class="comm3nt"> 330ef="drivers/parisc/pdc_stabs="comment">/* kobject is already registered */ /spa"
	pdcspay access */ /spa"
	entry /a>-> a href="+co3able.c#L231" idioL231" " class=ine3 href33isc/pdc_stable.c#L221" idioL221" " claNa , d>en> t. Wcts wba; /doef="drivers/pc3   )03" " class=ine" href="r103f> e0ver188"aris3spa"
	/* kobject is alr/a>         a hreoL100" " class=ine" href3"r233f> 233 /a> spa" class="commen3"> *
33ntry" class="sref">entry /a>-> a href="+code=read3   ers/pa3i363" " class=ine" href=3r163f33=entry" classp.c#L167" idioL167" " claUpdard> 200symss= /doef="drs/l="sref" 3   )03" " class=ine" href="r103f> e0ver188"aris3sc__" cla3/a>)  a href="+coda cla83path"33+code=ent of the 2table storsysfs_remov  "s= th_entry" class=ysfs_remov  "s= sref" /a>    sssreun00" " class=ine" hressreun00" able.ble.c#L199" idioL19ss=is=ine" hressreuss=i0" ",noL216" idioL216" " clae.c#L"sref"le.c#L225" id/a>         a hreoL100" " class=ine" href3"="+code=3/a>)  a href="+coda cla83path"33ntry" clcts when 2eading there href="+code=entre : 0xi class=ine" href=1ysfs_crs/t  "s= th_entry" class=ysfs_crs/t  "s= sref" /a>    sssreun00" " class=ine" hressreun00" able.ble.c#L199" idioL19ss=is=ine" hressreuss=i0" ",nf> 224 /a>     /a>	         a hreoL100" " class=ine" href3"8oL205" 3>, sizeof(* a href="+cod3=devp33ntry" clcss="sref2les, and of="+code=__func__" class="sref">__hen 2eading there href="+code=entre : 0x/a>         a hreoL100" " class=ine" href3" /a>	__func__ /a>,  3 href33+code=enters/pari2" class=ine" href="r148f2 3a>       3struct  a href="+code=de3ice_p340ef="drivers/parisc/pdc_stab cts  hen write2them 248e"  cts  hen wrsref" /a>    sssreun00" " class=ine" hressreun00" able.ble.c#L199" idioL199" " class=ine" href="r199f> 199 /a>         a hreoL100" " class=ine" href3 195i    3struct  a href="+code=de3ice_p341code=entry" class="sref">entry /a>-> a href="+co3ula24lass3ine" href="r120f> 12 vaa3};	PDC_OK /a>) {	) {	PDCS_PREFIX+code=PDC_OK" cPDCS_PREFIXpath  L216" idioL216" " class=in:ssrengpa \ass=ine" hre\ass=in ">/** /s\ass=ine" hre\ass=inable.c#L225" idiclass="sref">entry /a>-> a href="+co3upa"
	)  a href="+coda cla83path"3attributedioL142" 2 clef="+code=DPRINTK" class="sref">DPRINTK /a>( spa" class="string"ine"lass="sref">DPRine"0" ",node=store" class="sref">store /a>)(struc/a>         a hreoL100" " class=ine" href3e.c#L157"3idioL157" " class=ine" h3ef="r34ntry" class="sref">entry /a>-> a href="+code=read3 th24lass3ine" href="r113f> 113 /a3};	         a hreoL100" " class=ine" href3ec__" cla3s="sref">__func__ /a>,  3 href34+code=entry" class="sref">entry /a>-> a hr3"sref">de3path /a> = & a href=3+code34ef="drivers/parisc/pdc_stable.c#L226" idioL23" href="r3path /a> = & a href=3+code34ref="drivers/parisc/pdc_stable.c#L227" idioL227" " class=ine" href="r227f> 23"re00f> a3s="sref">__func__ /a>,  3 href34#L228" idioL228" " class=ine" href="r22layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef="drivers/parisc/pdc_stable.c#L229" idioL229" " class=ine" hr348 24clas3=ine" href="r178f> 178 /3>}	 * @entry: A" alloca4ed and populated pdscpath_entry struct. /spa"
	 = & a href=3+code35r23ef> 231 /a> spa" class="comment"> *
@buf:
The output buffer to write to. 322ef> 2213path /a> = & a href=3+code35#L232" idioL232" " class=ine" href="r232f> 232 /a> spa" class="comment"> *
 /spa"
	       3struct  a href="+code=de3ice_p35163 /a>	 a3" class="sref">devpath /3>;	t.2; alayer8 /a>92" " class=ine" href="rlayer8 /a>sref"to write to. /spae3ref="+codeidc_st5%s: sable.c#L193" idioL193" " class=ine" href="r193f> 193 /a> a href="+code=pdcspath_store" class="sref">pdcspath_store /a>(struct  a href="+code=pdcspath_entry" c3isc/pdc_s3able.c#L156" idioL156" "3class35ttribute"rs/pariscspath_attribute /a>,  a 2re3e.c#L157"3idioL157" " class=ine" h3ef="r35h" classass="sref2>pdcspath_entry /a>,  a 2ref="23s been corrupuct  a href="+code=pd233ath_entry" clas233 href="r17ef> 171 /a> cspath_entry" c3code=EINV3L" class="sref">EINVAL /3>;	 194 /a>{	de3path /a> = & a href=3+code36h" clas2dioL139" 2 class=ine" href="r139f>2139 /24="sref">pdcspay access */ /spa"
	devpath /a>;	 * h_fetch - This func4.5" 2o3"!s: fetch: 0x%p, 0x&337;p,36ref="dr2lass="com2ent"> *
@entry: A pointe2 to a24="r22ef> 221 hwpath... */ /spa"
	devpath /a>,  a 3ref="36ttributedioL142" 2 class=ine" href="r142f>2142 /24 is already rrrrrrrrr>entry /a>)	addr /a3);	entry /a>-> a href="+code=read364" " cla3s=ine" href="r164f> 164 3a>   36ref="dr2access th2 files provided by the f2cilit24ne" href="r224f> 224 /a>    sssre00" " class=ine" hressre00" able.ble.c#L199" idioL199" " class=ine" href="r199f> 199 /a>         a hreoL100" " class=ine" href3">devpath3/a>, sizeof(* a href="+c3de=de36+code=ent of the 2table storage WRT variou2 path246e" href="r224f> 224 /a>     /a>	 195i    f="r17ef> 171 /a> pa"
	EIO /a>;	3169 /a> spa" class="comm3nt"> 37ref="dr2s func4.52 expects to be called wi2h @en250"r22ef> 221 hwpath... */ /spa"
	iref="r195f> 195i    )03" " class=ine" href="r103f> e0ver188"aris3vers/pari3c/pdc_stable.c#L170" idi3L170"37163 /a>	dioL150" 2 class=ine" href="r150f>215 va25e" href="r220f> 220 />entry /a>)	devpath /a3);	 * a hr2f="+c25 is already rstab.c#L216" idioL21iref="r195f> 195i   4f> 22f> 22 c#L199" idioL199" " class=ine" href="r199f> 199 .ble.c#L199" idioL19layersass=ine" href="layers199  for6P6href="driu_6 A"f hreI pretty pr f="0;href="r196f> 196iref="r195f> 195i  _sta2le.c#L151" idioL151" " c2ass=i25="3e"+code=a3 173 /a>         a href=3+code37	PDC_OK /a>) {	/a>,  a 2ref="23s been co,c#L216" idioL216" " class=ine" hru le.c#L225" idioL225" " class=i9" " class=ine" href="r199f> 199 .ble.c#L199" idioL19layersass=ine" href="layers199  for6P6href="driu_6 A"f hreI pretty pr/a>         a hreoL100" " class=ine" href3e4" " cla3ref">ready /a> = 1;	devpath3s="sref">__func__ /a>,  3 href37+code=ent of the 2table stor/a>,  a 2ref="23s been cor+ class=ine" href=sers/pa href="drivers/sers/pasref">PDC_OK /a>) {	/a>,  a 2ref="23s been co,c#L216" idioL216" " class=inable.c#L225" id/a>         a hreoL100" " class=ine" href3esc/pdc_s3ss="sref">dev /a>);	        	entry /a>-> a hr38" " clas3=ine" href="r178f> 178 /3>}	entry /a>-> a hr38ers/pari3ref="drivers/parisc/pdc_3table38lass="comment"> * @entry: Able.c#L227" idioL227" " class=ine" href="r227f> 23ass=ine" 3ref="r18ef> 181 /a> spa"3class38r23ef> 231 /a> spa" class="com" href="rlayer8path_espa" class="comment">/**extenf> 2layer modifyarisc/pdc_stable.c#L229" idioL229" " class=ine" hr3idioL182"3" class=ine" href="r182f3 182 38#L232" idioL232" " class=ine" nc4.5" handles hardware path pretty printing. /spa"
	 *
 /shref="drivers/parisc/pdc_stable.c#L230" idioL233i4" " cla3f> 184 /a> spa" class="c3mment38 *
It can be used in two ways:n=ine"a4ed anumbd pof byent">     t"> href="drivers/parisc/pdc_stable.c#L230" idioL233i>devpath35f> 185 /a> spa" class="3ommen38> * containing a" already compref="drivers/parisc/pdc_stable.c#L230" idioL233isc/pdc_s36f> 186 /a> spa" class="3ommen38> *
pointer, from which it'href="r232f> 232 /a> spa" classrengponding/a> nthlayer valuc/pdc_stable.c#L233" idioL233" " class=ine" href386f> 176 3 /a> spa" class="comment3> *
F38 now we do not handle the caseLayers39;s">     gL18n we ha.we ha-delimth_d,commet a bracke"drivers/parisc/pdc_stable.c#L140" idioL140" " cl3ss=ine" h3ef="r188f> 188 /a> spa" 3lass=38#L228" idioL228" " class=ine" XXX   rs/pcw#39;s fardlc#L1uot; y WRTainpopuarisc"r208f> 2tren142" spa"
	pdnce path. /spa"
no:wayclassrt; /devihe haitriveivers/parisc/pdc_stable.c#L140" idioL140" " cl3/ers/pari390f> 19 vaa> spa" class=3comme39lass="comment"> * @entry: A" a
	 */ /spa"
		t.2; alayer8nd count must be word at.2; alayer8nd cosref"to write to. /spae3ref="+codeidc_st5%s: sable.c#L193" idioL193" " class=ine" href="r193f> 193 /a> a href="+code=pd a href="+code=store" class="sref">store /a>)(struct  a href="+code=pdcspath_entry" class="sref">pdcspath_entry /a> * a href="+code=entry" class=148" idioL148" " for6P6h.5" handdrivers3"4" " cla3y" class="sref">entry /a3)	,  a 2re3c>devpath3struct  a href="+code=de3ice_p39+code=entry"       spasn/pdc_stable.c#L15layersass=ine" href="layers199  6r f=> 221 hwpath... */ /spa""sef="-specifa cinfo (ctlr#,   it#, ...)#3   )03" " class=ine" href="r103f> e0ver188"aris3de=devpat3" class="sref">devpath /3>;	pdcspay access */ /spa"
	 176 397f> 197 /a>         a h3ef="+39h" classass="sref2class=ine" href=n"r139f>2139 /24=n0" " for6P6href="dri * a href="+code=entry" class+1],+code=store" clastemphref="+code=enttemp"sref">pdcspay access */ /spa"
	entry /a3);	de4path /a> = & a href=4+code40ref="dr2s func4.52 expects to be  A pointe2 to a24="r22ef> 221 hwpath... */ /spa"
	de4p0f> 19 vaa> spa" class=4ef="d40163 /a>	dioL150" 2 class=ine" href="r150f>2152 /24 is already rrrrrrrrr>entry /a>)	 201 /a>         spa"4class40lass="sref">hardware_path /a> *) a href="+co4="r202f> 402 /a> spa" class="comme4t">  40f> 222 /a>    c_stable.c#L200" idioL200" by passf> ss=s half="driverpar#3   )03" " class=ine" href="r103f> e0ver188"aris4 4r202f> 40uct  a href="+code=pdcs4pa" c40ntry" class=" href="r150f>21memse href="+code=entmemse sref">PDC_OK /a>) {	=n"r139f>2139 /24=n0" ",ntryfor6P6href="dri * a href="+code=entry" class+1/a>         a hreoL100" " class=ine" href4"r204f> 244 /a>        if (! a hre4="+co40ref="dr2access th2 files proarincpointe2 to a24="rarincposref">PDC_OK /a>) {	=n"r139f>2139 /24=n0" ",node=store" class="sref">store /a>)(struct  a href="+code= * a href="+code=entry" class="sref">entry /a>, const char * a href="+4dioL205" 4 class=ine" href="r205f>4205 /40+code=entry" class="sref">entry /a>-> a href="+co4d7oL205" 4  class="sref">devpath /4 href40ref="drivers/p.c#L167" idioL167" " claLet /spa"
cleisc"
	/g tn#3   )03" " class=ine" href="r103f> e0ver188"aris4d8oL205" 4 7f> 197 /a>         a h4path"40ntry" clcss="sref2les, and omemse href="+code=entmemse sref" /a>    sssreun00" "layersass=ine" href="layers199 ,ntrypdc_sta   sssreun00" "layersass=ine" href="layers199 )="sref">entry /a>, const char * a href="+4d9oL205" 4 " class="sref">entry /a4f="dr40ref="drivers/>         a hreoL100" " class=ine" href4" class=i4e" href="r209f> 209 /a> 4     41ntry" class="dc_stable.c#L200" idioL20ssrst, pia"
	" hfsrstalayer 3   )03" " class=ine" href="r103f> e0ver188"aris4hwpath to4be valid. */ /spa"
	2139 /24unquot; sref"2 expects to be csdigi href="+code=entcsdigi sref"code=store" clas=n"r139f>2139 /24=n0" "))=148" idioL148" " for6P6h.5" handdrivers4""s: store: 0x%p, 0x&437;p,4addr: 0x%lx\n"ass=ine" href="r150f>2152 /24 is already rrrrrrrrr>entry /a>)	 4="sref">devpath /a>,  a 4ref="41f> 222 /a>         spa" claslayersass=ine" href="layers199  0ri class=ine" href=1imp	PDC_OK /a>) {	=n"r139f>2139 /24=n0" ",node=store" clasNUL4 is already rrrNUL40" ",n10="sref">entry /a>, const char * a href="+4="+code=a4dr" class="sref">addr /a4);	214" idioL224" " class=ine" href="r224f> 224 /a>        	entry /a>, const char * a href="+4=r204f> 24s=ine" href="r214f> 214 4a>   4     spa" clasentry" class="sref">entry /a>-> a hr41ioL205" 4>, sizeof(* a href="+cod4=devp41+code=ent of the 2table stortemphref="+code=enttemp"sre4 class=ine" href==n"r139f>2139 /24=n0" ""sref">entry /a>, const char * a href="+4=7oL205" 4class="sref">KERN_ERR /a4  spa41ntry" clcts w42" 2dcspath_entry /a> * a hr2f="+c25 is =1; (a   sssreun00" "temphref="+code=enttemp"sre4 class=ine" href=16"chef="r215f> 215 /16"chesref">PDC_OK /a>) {	temphref="+code=enttemp"sre,noL216" idioL216" " clae ha.we ha  )03" ))=4f> 22f> 22 2dcspath_entry /quot; "r139f>2139 /24quot; sref">PDC_OK /a>) {	=> * a hr2f="+c25 is 95i 6)=" class=ine" href="r139f>2139 /24="srei    f7f>  6;href="r196f> 196iref="r195f> 194&8oL205" 4            spa" class="4tring41"It is likely th"com   sssreun00" "unquot; "r139f>2139 /24unquot; sref"2 expects to be csdigi href="+code=entcsdigi sref"c(++>PDC_OK /a>) {	temphref="+code=enttemp"sre)))=148" idioL148" " for6P6h.5" handdrivers4&9oL205" 4t;Please check it carefu4ly up41ref="drivers/0x%lx\n"ass=ine" href="r150f>2152 /24 is already rrrrrrrrr>entry /a>)	PDC_OK /a>) {	temphref="+code=enttemp"sre,node=store" clasNUL4 is already rrrNUL40" ",n10="sref">entry /a>, const char * a href="+4class="sr4f">WARN_ON /a>(1);	         a hreoL100" " class=ine" href420f> 220 4a>        }	entry /a>-> a hr4.c#L222" 4dioL222" " class=ine" hr4f="r242ttributedioL142" 2 clentry" class="sref">entry /a>-> a hr4."+code=a4 223 /a>         a href=4+code42	 t deepc3   )03" " class=ine" href="r103f> e0ver188"aris4" class="4ref">ready /a> = 2;	    sssreun00" " class=ine" hressreun00" able.ble.c#L199" idioL199" " class=ine" href="r199f> 199 /a>         a hreoL100" " class=ine" href4nc__" cla4s="sref">__func__ /a>,  4 href42+code=entry" class="sref">entry /a>-> a href="+co4f="+code=4ev" class="sref">dev /a>4;	 nthlayerscommewhen newaones,r195ftouchariivers/parisc/pdc_stable.c#L140" idioL140" " cl4c8oL205" 4=ine" href="r226f> 226 /4>}	    sssreun00" " class=ine" hressreun00" able.ble.c#L199" idioL199" " class=ine" href="r199f> 199 ">attr /a> = {. layersass=ine" href="layers199 ,n /a>    sssreun00" "layersass=ine" href="layers199 ,npdc_sta   sssreun00" "layersass=ine" href="layers199 )="sref">entry /a>, const char * a href="+4f="r229f>4229 /a> spa" class="comm4nt"> 430ef="drivers/sref">entry /a>, const char * a href="+4flass="sr4ine" href="r230f> 23 vaa4 spa"431code=entry" e.c#L221" idioL221" " claNa , d>en> t. Wcts wba; /doef="drivers/pc3   )03" " class=ine" href="r103f> e0ver188"aris4able.c#L241" idioL231" " class=ine4 href432ers/parisc/pdc_stable.c#L21h#L192" idioL192" " class=ine" href="r192f> 192 parisc/pdc_stabs="comment">/* kobject is alr/a>         a hreoL100" " class=ine" href4spa"
	    sssreun00" " class=ine" hressreun00" able.ble.c#L199" idioL199" " class=ine" href="r199f> 199 /a>         a hreoL100" " class=ine" href4"r233f> 243 /a> spa" class="commen4"> *
43ntry" class="sref">entry /a>-> a href="+code=read4   ers/pa4i363" " class=ine" href=4r163f43ref="dr2access th2 files prohref="+code=PDC_OK" class="sref">PDC_OK /a>) {	) {	PDCS_PREFIX+code=PDC_OK" cPDCS_PREFIXpath  L216" idioL216" " class=in:ssrengpa \ass=ine" hre\ass=in layersc /s\ass=ine" hre\ass=inable.c#L225" idiclass="sref">entry /a>-> a href="+co4sc__" cla4/a>)  a href="+coda cla84path"43+code=ent of dr2access th2 files proTK" class="sref">DPRINTK /a>( spa" class="string"ine"lass="sref">DPRine"0" ",node=store" class="sref">store /a>)(struc/a>         a hreoL100" " class=ine" href4"="+code=4/a>)  a href="+coda cla84path"437try" clc/pdc_sta2le.c#L151" idioL151" " c2ass=i25="4"8oL205" 4>, sizeof(* a href="+cod4=devp43ntry" clcss="ass=inesref2les, and o * a href="+code=entry" classa>         a hreoL100" " class=ine" href4" /a>	__func__ /a>,  4 href43ef="d=entry" class="sref">entry /a>-> a hr4a>       4struct  a href="+code=de4ice_p44ref="entry" class="sref">entry /a>-> a hr4 195i    4struct  a href="+code=de4ice_p44lass="comment"> * @entry: Able.c#L227" idioL227" " class=ine" href="r227f> 24ula24lass4ine" href="r120f> 12 vaa4};	 231 /a> spa" class="com" href="rdriv_show - Genericct"> *
> spa" c32f> wrapper)  a href="+coda cla84path"44#L232" idioL232" " class=ine" nss=ia4ed ass=iect="r2g0f> tfo*
 /shref="drivers/parisc/pdc_stable.c#L230" idioL234e.c#L157"4idioL157" " class=ine" h4ef="r44#L183" idioL183" " class=ine" ldriva4ed adrivers/palookpa uponhref="drivers/parisc/pdc_stable.c#L230" idioL234e  ers/pa4ine" href="r113f> 113 /a4};	__func__ /a>,  4 href44> * containing a" already com   )03" " class=ine" href="r103f> e0ver188"aris4"sref">de4path /a> = & a href=4+code44ef="da>	pdcspath_store /a>(struct  a href="+code=pdcspath_entry" c4"re00f> a4s="sref">__func__ /a>,  4 href44#L228 f7f>  6;href="r196f> 196iref="r195f> 19448 24clas4=ine" href="r178f> 178 /4>}	PDC_OK /a>) {	ss=is=ine" hressreuss=i0" "/a>         a hreoL100" " class=ine" href4/  ers/pa4i363" " class=ine" href=4r163f451" clas2dioL13o write to. /spae3ref="+codeiddrivers/ps=ine" hressreu="+codeiddrivers/p3" " class=ine" href=="+c_drivs=ine" hressreu="+c_drivcodei class=ine" href=to_="+codeiddrivers/ps=ine" hressreuto_="+codeiddrivers/psref">PDC_OK /a>) {	drivs=ine" hressreudriv0" "/a>         a hreoL100" " class=ine" href4/la24lass4path /a> = & a href=4+code452ers/parisc/pdc_stable.c#L21aidioL148" " class=ine" h4ule.c#Lwhen 2eading there href="+code=entre : 0xi cle.c#L176" idioL176" " class=ine" href="r422ef> 2214path /a> = & a href=4+code45#L232.c#L176" idioL176" " class=ine" href="r42.c#L157"4 class=ine" href="r213f>4213 /45ntry" class=""com   sssreun00" "="+c_drivs=ine" hressreu="+c_drivcode spa" class="string"show92" " class=ineshowsref(struct  a href="+code=pdcspath_entry" c4a>       4struct  a href="+code=de4ice_p45ref="dr2accesparisc/pdc_stable.c#L21re href="+code=entre : 0xi class=ine" href=="+c_drivs=ine" hressreu="+c_drivcode spa" class="string"show92" " class=ineshowsref parisc/pdc_stabs="comment">/* kobject is alr,node=store" class="sref">store /a>)(struc/a>         a hreoL100" " class=ine" href4Ore00f> a4" class="sref">devpath /4>;	         a hreoL100" " class=ine" href4Osref">de4able.c#L156" idioL156" "4class457try" clc/pdcass=inesref2les, and ore href="+code=entre : 0xa>         a hreoL100" " class=ine" href4O href="r4idioL157" " class=ine" h4ef="r45h" cl=entry" class="sref">entry /a>-> a hr4code=EINV4L" class="sref">EINVAL /4>;	de4path /a> = & a href=4+code46pdcspath_hwpath_read - Thisble.c#L227" idioL227" " class=ine" href="r227f> 24th" class4"sref">devpath /a>;	 * @entry: A" a" href="rdriv_sf> 18- Genericc cts w
> spa" c32f> wrapper 231 /a> spa" class="comnss=ia4ed ass=iect="r2 cts w tfo*ntry struct. /spa"
	devpath /a>,  a 4ref="46#L232" idioL232" " class=ine" ndriva4ed adrivers/pa>     modifie href="drivers/parisc/pdc_stable.c#L230" idioL234="+code=a4dr" class="sref">addr /a4);	       4s=ine" href="r164f> 164 4a>   46 *
It can be used in two ways:n=ine"a4ed a h4uspa"
	 a4/a>, sizeof(* a href="+c4de=de46> * containing a" already com   )03" " class=ine" href="r103f> e0ver188"aris4"sc/pdc_s4L166" idioL166" " class=4ne" h46ef="da>	EIO /a>;	store /a>)(struct  a href="+code=pdcspath_entry" class="sref">pdcspath_entry /a> * a href="+code=entry" class=148" idioL148" " for6P6h.5" handdrivers4f="r169f>4169 /a> spa" class="comm4nt"> 47ref=" f7f>  6;href="r196f> 196iref="r195f> 194vers/pari4c/pdc_stable.c#L170" idi4L170"471" clas2dioL13o write to. /spae3ref="+codeidc_st5%s: sable.c#L193" idioL193" " class=ine" href="r193f> 193 /a> a href="+codei class=ine" href=to_="+codeidc_st5%s: sable.cto_="+codeidc_st5sref">PDC_OK /a>) {	ss=is=ine" hressreuss=i0" "/a>         a hreoL100" " class=ine" href4h /a> = &4  a href="+code=hardware4th"37459ref"le.c#L225" id/a>     =3+t4class="se0ver188"aris3vers/pari34/pdc_47=ine" href="r103f> e0ver188"e" href=="+c_drivs=ine" hressreu="+c_drivcodei class=ine" href=to_="+codeiddrivers/ps=ine" hressreuto_="+codeiddrivers/already r4tab.c#L216" idioL21iref=4r195f4 195i ers/ps=ine" hressreuto_="+codeiddrivers/aevpath /aPDC_OK /a>) {	/a>,  a 2r4f="2347#L176" idioL1" " for6P6href="dri capddriy" code=store" capddri" class=ine" href4h CAP_SYS_ADMIdrivers/parisc/pCAP_SYS_ADMIdinte2 ers/ps=ine" hressreuto_="+codeiddrivers/aclass="srdioL225" " class=i9" " c4ass=i47 hrINFO+code=PDC_OK"  is likely th"com   sssrACCESrivers/parisc/prACCESect is alr,node=store" class="sref">store /a>href3e>de4path3s="sref">__func__ /4>,  347d3 th24lass3ine" href="r113f> 113 /a3};	dev /a>);	       4str ",ntryfor6P6href="dri * a href="+code=entry" class+1/a>         a hreoL100" " class=ine25="3e.c#4157"3a>        	/* kobject is alr,node=store" class="sref">store /a> /a>     4  return 3;	devpath /4>;	 * @en4ry: A48iv0" "/a>         a hreoL100" " class=ine" hr8path_esp4" class="comment">/**ext4nf> 24ayer m   46 *ass=inle.c#L193" idioL193" "e.c#L1op/parisc/pdc_stabe.c#L1op/reu="+c_drivcodei cl " class=ine" op/parisc/pdc_stab " class=ine" op/e" href " class=4ne" h46ref="drivers/0x%lx\noL232" " 4lass=ine" nc4.5" handles4hardw48#L176" idioL1aaaaaaae shref="="+c_drivcode spa" class="sref="r213f>4213 /45ntrntaining a" already com   )03" " class=ine" href="r="dc_stable.c#L21h#L192" idriv_sioL192" "3table38#4183" idioL183" " class=i4e" ll486L176" idioL1aaaaaaae shref="= already com   )03"href="r10ref="r213f>4213 /45ntrntaining a" already com   )03" " class=ine" href="r10="dc_stable.c#L21h#L192" idriv_sioL192" "3ref3e>de4a3f> 184 /a> spa" class=4c3mme4t38 *
}is alr,node=store" class="sref">store /a> n cor+ c4ss="3ommen38> * containi4g a" 4lreadys alr,node=store" class="sref">store /a> class=inespa" classrengponding/a>4nthla4er valuc/pdc_stable.c#L233" /*  mosss=inea hrewo/parisc/pds hreany PDCe=4ev" class="sref">dev /a>4;	 243 /ATHS_ATTR"r10tring"show92" " f> e0ver188"aris3class="sr3f">W, 0644 ",ntryfor6P6href " class=dc_stabhandles to for6P6h.5" hand4;dc_stabhand4str ",ntryfor6P6href5" hand4;dc_staba" class="co   )03" " class=idc_staba" clry" class+1/a>         a hreoL100" " class=ineinpopuari4c"r208f> 2tren142" spa"
4 243 /ATHS_ATTR"r10tring"show92" " ode=ref4"r233f> 243 ode=rf">W, 0644 ",ntryfor6P6href " class=th.5" handles to for6P6h.5" hand4; /sp31ommea0a  ",ntryfor6P6href " class=th.5" a" class="co   )03" " class=ine" href="r103fclass+1/a>         a hreoL100" " class=inei/a>     4- This fuPotentialdrivm242n   49*/ /spa"
 * a href="+code=entry" class=148" i.c#L140" 4dioL140" " cl3/ers/pari340f> 14 vaa> spa" class=ine" h4ule.c#L148" idioL148" " for6P6h.5" handdrivers4".c#L157"4f">EIO /ass=s_sube.c=ine"/parisc/pdc_stab ss=s_sube.c=ine"/rs4"[]ref " class=4ne" h46ref="drivers/0x%lx\n0" idioL140" " cl3/ss=ine" 3ref="d4ivers49e452ers/parisf432ers/parisc/pdc_s ss=s_ine" f> e0ver188"aris3clas ss=s_ine" f> e0v452eaaaaaaae shref="a>;	 243  ss=s_ine" ode=r452eaaaaaaae shref="a>;	de4/pariscspath_attribute /4>,  a4938 *
}is alr,node=store" class="sref">store /a>="layers149  6r f=> 221 hwpath... 4/ /sp49readys alr,node=store" class="sref">store /a>4="sref">4dcspay access */ /spa"
	4iref=49r valuc/pdc_stable.c#L233" /* S48" idione" href=ype" claour PDCe=4evs class="sref">dev /a>4;	 spa" class=ine" h4ule.c#L148"ne" _=ype96iref="r195f> 194v_=ypereu="+c_drivcodei clk=ype       a 96iref="r195f> 1=ype       a e" href " class=4ne" h46ref="drivers/0x%lx\5=enters/p5ri2" class=ine" href="r158f2 45sref">de4path aaaaaaae shref="=.c#L1op/parisc/pdc_stabe.c#L1op/reu="y the f2cilit24ne" hre " class=ine" op/parisc/pdc_stab " class=ine" op/e" h9"dc_stable.c#L21h#L192" idriv_sioL192" 5/spa"
	de4path aaaaaaae shref="default=ine"/parisc/pdc_stabdefault=ine"/"r10ref="r213f>4213 /45ss=s_sube.c=ine"/parisc/pdc_stab ss=s_sube.c=ine"/rs4"9"dc_stable.c#L21h#L192" idriv_sioL192" 5/3pa"
	store /a5ref="driv5rs/parisc/pdc_stab4 href5"r24150195i ers/ps=ine" hressreuto_="+codeiddrivers5 )03" " c5ass=ine" href="r103f> e05er18850 class=ine" ndriva4ed adriv63 /aayers deff="ea hr4f=ypes hreref="we exphref="rff=d class="sref">dev /a>4;	 243 /DCS/ATH_ENTRY"r10tring"show92" " /a> sADDR_PPRIef4"r233f> 243 /DCSsADDR_PPRIa0a  ",ntryfor6P6href rima class="sref">pdcsrima c103fclass+1/a>         a hreoL100" " class=in5sref">ent5osref">PDC_OK /a>) {	=n"5class22e,148/a> sADDref="r195f> 1=ypwef=" 1 347d3 thPone" hressreuto_="+thPoner10tring"show92" " /a> sADDR_PPRIef4"r233f> 2438/DCSsADDRv_sioL192" "+ref3e>de4/5f="+c5de= * s="sref">pdcsrima c103fclass+1/a>         a hreoL100" " class=in5sref">ent5osref">PDC_OK /a>) {	ALT5class22e,148/a> sADDref="ALT5f> 1=ypwef=" 1 347d3al">PD"srvf="+code=entry" cl">PD"srvfr10tring"show92" " /a> sADDR_PPRIef4"r233f> 2439/DCSsADDRref">store /a>="layers15aLet 5spa"
cs="sref">pdcsrima c103fclass+1/a>         a hreoL100" " class=in5sref">ent5osref">PDC_OK /a>) {	KBD5class22e,148/a> sADDref="KBD5f> 1=ypwef=" 1 347d3keybops=hre5=n"r1500aa> eybops=r10tring"show92" " /a> sADDR_PPRIef4"r233f> 24" " class5ine" href="r103f> e0ver158"ari51"dri * a href="+code=entry" class+1/a>      5un00" "la5ersass=ine" href="layers599 ,n511" idioL151" " c2ass=i25="4"8 hr38rray * @taining38er">store /a>wrivers/deals  " c=ine" href="r103f> e05er18850 class=ine" ndriva4ei4e" href5"r209f> 209 /a> 4     415try" 5lass="laour PDCe=4evs class="sref">ss=4ne" h46ref="drivers/0x%lx\n"d a href="+code=store" c7;lx\n"d ie8f2 45sref">de4path aaaaaotd ie8c#L148" idioL148" " for6P6h.5" handdrivers4".c#L154be valid5 */ /spa"
	 243 /DCS/ATH_=ine" hrotd a_f4"r233fault=ine"/parisc/pdc_stabdefault=ine"/"r10res=ine" hr5f="r150f>2152 /24 is alr5ady r51ab ss=s_sube.c=ine"/rs4"[]ref " cl=ine" hrotd a_al">PD"srvf="+code=entry" l=ine" hrotd a_al">PD"srvffault=ine"/parisc/pdc_stabdefault=ine"/"r10res" class=" already rrrNUL40" ",n105"sref51="a>;	_=ine" hrotd a_keybops=fault=ine"/parisc/pdc_stabdefault=ine"/"r10res /DCSsADD/a>         a href="+cod5=DPRI51 able.ble.c#L199" idioL199" f="dc_stable.c#L21h#L192" idriv_sioL192" "+table38#4ref="+code=stor5a> * a hr5f="+c25 is =1; (a   sssr5un00"5"temphab ss=s_sube.c=ine"/rs4"9"dc_stable.c#L21h; sref">P5C_OK /a>) {	=> * a hr2f=5+c25 51 a hreoL100" " class=ine" href4Ore00f> a4" c5"4tring415quot;It is likely th"com5  sss52"dri * a href="+code=entry" class+1/a>      5r>entry /5>)	stoProcedur"+cdoc,ne" href="r103f> e05er18850 class=ine" ndriva4ef">WARN_O5 /a>(1);	st_STABLEc=ine" href="r103f> e05er18850 class=ine" ndriva4eef="r224f5 224 /a>        	 255 /a>         a href="+c5de=DP52risc/pdc_stable.c#L140" idiref4Osref">de4able.c#L156" idioL156" "4class457tr5oL100" " 5lass=ine" href420f> 220 5a>   52o*ntry struct. /spa"
	devpath /a>,  a 4ref="46#L232" idioL25ref=4+cod542	 *
 /shref=ine" href="r103f> e05er18850 class=ine" ndriva4ee> * a hr5e.c#L199" idioL199" " cl5ss=in52e= * s="sref">pdcsrima c103dware4th"37459ref"le.c#L225" id/a>     =3+t4classe4="dL225"ine"dev /a>);	 a4/a>, sizeof(* a href="+c4de=de46> * containing a" already com   )03" " class=inef="r103f> e05er18850 class=ine" ndriva4ee sref">P5lass="sref">entry /a>-&g5; a h52 /a>;	dev / * a href="+code=entry" dev / * a href6> * containing a" al93" 4dioL1495452ers/parisf432ers/parisc/pdc_s ss=s_ine" ode=ref4"r25ef="drive5s/parisc/pdc_4table42ref5"driv53un00" "unquot; "r139fffffffffffffff148" " class=ine" h4ule.c#L148" idioL148" " for6P6h.5" handdrivers4" href="r4path /a> 5    sssre5n00" " class=ine" hressr5un00"5able.bdioL148" " for6P6h.5" handdrivers4".c#L15ersass=in5" href="layers199 ,npdc_5ta   5ssreun00" "lay8 /a>92" " class=ine" href="rlayer8 /a>sref"to write to. /spae3ref="+codeidc_st5%s: sable.c#L193" idioL193" " class=ine" href5char * a 5ref="+4flass="sr4ine" hr5f="r253 3;	de3path /a> = &a5        a5hreoL100" " class=ine" h5ef4sp53="+code=entre : 0xi c39f>2139 /24="srei    f7f>  6;href="r196f> 196iref="r195f> 194&8oL205" 4            spa" class5>entry /a5-> a href="+code=read5   er53spath_entry" c4a>       4struct  a href="+co5EFIXpath 5L216" idioL216" " class=5n:ssr53" class="4ref">ready /a> = 2;	ent5y /a>53e= * a href="+code=entry" cln co,c#L216" idioL216" " class=ine" hru le.c#L225" idioL225" " class=i9" " class=ine" href="r199f> 199 .ble.c#L199" idioL19layersass=ine" href="layne" hl"driu_6 A"f hreI pretty pri classe4="dL225dev /a>);	 sADDR_PPRIef4"r233f> 24sref">DPR5NTK /a>( spa" class="str5ng"in53 a hreoL100" " class=ine" href4Ore00f> a4" c5f">store 5a>)(struc/a>         a h5eoL1054un00" "unquot 3 href37+code=ent of the 2table stor/a>,  a 2ref="23s been cor+ class=ine" href=sers/pa href="drivers/sers/pasref">PDC_OK /a>) {	5oda cla845ath"437try" clc/pdc_sta25e.c#L551" idbs="comment">/* kobject is alr,node=stor5css="ass=5nesref2les, and o * a hr5f="+c5403" " class=ine" href="r103fclass+1/a>      5> a hr5a>       4struct  a href5"+cod5=de4ice_p44ref="entry" classref4Osref">de4able.c#L156" idioL156" "4class457tr5* @entry:5Able.c#L227" idioL227" "5class5ine" href="r227f> 24ula24lass4ie4="d3uto"ine" hrSlass4rSloragar3utoboot/search flagpd4upa"s4="sref">devpath /a>,  a 4ref="46#L232" idioL25- Generic5t"> *
> spa" c32f> wrapp5r 5fo*
 /shref="drivers/parisc/pd @knob0" " cPF_AUTOBOOT o 3PF_AUTOSEARCH flag2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=5"FIXpath 5h4ef="r44#L183" idioL1835 " cl54npopulated pdsct"> *
 /shref=ine" href="r103f> e05er18850 class=ine" ndriva4e" href="r513f> 113 /a4};	pdcsrima c103dware4th"37459ref"le.c#L225" id/a>     =3+t4classe4="d3uto"ine"dev /a>);	 a4/a>, sizeof(* a href="+c4de=de46> * containing a" already com   )03" " class=inef="r103f> e05er18850 class=ine" ndriva4e & a 5ref=4+code44ref="dc_stab5e.c#L54 /a>;	dev / * a href="+code=entry" dev / * a href6> * containing a" al93" 4dioL1495452ers/parisf432ers/parisc/pdc_s ss=s_ine" ode=ref4"r25_showsref5to write to. /spae3refss5iect955un00" "unquot; "r139fffffffffffffff148" " class=ine" h4ule.c#L148" idioL148" " fo,193" " class=ine" hrknob="+code=entry" dnobe" href="r195f> 195 3"sref">de3path /a> = &a5nc__ /a>,5 4 href44#L228 f7f>  6;h5ef="r55ble.bdioL148" " for6P6h.5" handdrivers4".c#L15a>       5 a hreoL100" " class=ine5 href55sreun00" "lay8 /a>92" " class=ine" href="rlayer8 /a>sref"to write to. /spae3ref="+codeidc_st5%s: sable.c#L193" idioL193" " class=ine" href5=="+c_dri5s=ine" hressreu="+c_driv5odei 55c/pd"com   ssDCe=4evs class="sref">ss=4ne" h46ref="drivers/0x%lx\n"d a href="+code=store" c7n&q46ref="drivers/0x%n&q46refs: sable.c#L193" idioL193" " class=ine" href5= @entry:5+codeiddrivers/psref">PD5_OK /55" cl3/ers/pari351ref"5de4p0f}is alr,node=storlass=ine"5h4ule.c#Lwhen 2eading th5re hr55216" idioL21iref=4r195f4 195i ers idioL195" " class=ine" href="r195f> 195 3"sref">de3path /a> = &a5lass=ines5owsref(struct  a href="+5ode=p55rs/parisc/pCAP_SYS_ADMIdinte2 ers/ps=ine" href>  6;href="r196f> 196iref="r195f> 194&8oL205" 4            spa" class5e=de4ice_545ref="dr2accesparisc/pd5_stab55CCESrivers/parisc/prACCESect is alr,node=sto5ring"show52" " class=ineshowsref p5risc/55e= * a href="+>ready /a> = 2;	store /a>)(struc/a>5     55f="+co4f="+code=4ev" class="7n&q46ref="drivers/0x%n&q46refs: slx\5=enters/p5ri2" class=ine" hrotd a_f4"r233f> 243 /DCS/ATH_=ine" hrotd a_f4"r233faul95f> 194&8oL205" 4            spa" class5ass="sref5>devpath /4>;	5     56"dri * a href="+code=entry" class+1/a>      5" clc/pdc5ss=inesref2les, and ore 5ref="561="+co4f="+code=4ev" class="ine"s4able.c#L241" idioL2ne"s4ablsref"="dri4ers/p46ref="dc_sta46ref="drivers/0x%n&q46refs: sf="r103f> e0ver188"aris4able.c#L241" idioL231" " class=ine4 href432ers/parisc/pdc_stable.c#L215t; a hr4c5de=EINV4L" class="sref">5INVAL56  ers/pa4i363" " class=ine" n co,c#L216" idioL216" " class=ine" hru le.c#L225" idioL225" " class=i9" " class=ine" href="r199f> 199 .ble.c#L199" idioL19layersass=ine" href="layne" hsdriu_6 A"f hreI p/4>,  347d3 th24lsta46ref="drivers/0x%n&q46refs: sf="r103f> e0ver188"aen newaones,r195ftouchariivers/parisc/pdc_stable.flag#ones,r195ftouchflag#" " chref="" class=ine" hrknob="+code=entry" dnobe" hr ?ine4 href432ers/parisc/pdc_stable.c#L215t="+c_dri5le.c#L227" idioL227" " c5ass=i56ayer f="drd]: f="drdaaaaaaaaaaaaaaaaaaaaaaaaaL19layersass=ine" href="layOriu_6 A"f hreI :aL19layersass=ine" href="layOffiu_6 A"f hreIs=ine4 href432ers/parisc/pdc_stable.c#L215t @entry:5 w
> spa" c32f> wrapper<5vers/56rrrrrr>entry /a>)	 e0ver188"aris4able.c#L241" idioL231" " class=ine4 href432ers/parisc/pdc_stable.c#L215tass=ine"5mnss=ia4ed ass=iect="r2 5ts w 5fo*ntrine4 href432ers/parisc/pdc_stable.c#L215tass=ines5=ine" ndriva4ed adrivers5pa>  56rs/parisc/pCA 3 href37+code=ent of the 2table stor/a>,  a 2ref="23s been cor+ class=ine" href=sers/pa href="drivers/sers/pasref">PDC_OK /a>) {	5"sref">ad5r /a4);	/* kobject is alr,node=stor5f="r164f>5164 4a>   46 *
It can be5used 56ath_attribute /4>,  a4938 *
}is alr,node=sto5 " for6P65.5" handdrivers4".c#L15754f">E56=> 221 hwpath... 4/ /sp49readf4Osref">de4able.c#L156" idioL156" "4class457tr5o. /spae35efdrivers/ps=ine" hressr5udriv57"comment3> *
F38 now we do note4="d3utoboot"ine" hrSlass4rSloragar3utoboot flagpd4upa"s4="sref">devpath /a>,  a 4ref="46#L232" idioL25v0" ",1485 idioL148" " for6P6h.5" 5anddr57ode=entre : 0xa>         a hreoL140" " cl4upa"
	 47ref=" f7f>  6;h5ef="r57" idioL140" " cl3/spa"
	       5 a hreoL100" " class=ine5 href57nce path. /spa"
no:wayclassrt; /devihe haitriveivers/parisc/>     =3+t4classe4="d3utoboot"ine"dev /a>);	 a4/a>, sizeof(* a href="+c4de=de46> * containing a" already com   )03" " class=inef="r103f> e05er18850 class=ine" ndriva4e=="+c_dri5s=ine" hressreu="+c_driv5odei 574yer f="drd]: f="drdaaaaaaaaaaaaaaaaaaaDCe=4evs class="sref">dev / * a href="+code=entry" dev / * a href6> * containing a" al93" 4dioL1495452ers/parisf43f148" " class=ine" h4ule.c#L148" idioL148" " for6P6h.5" handdrivers4" href="r4path /a> 5ssreuto_=5+codeiddrivers/already r5tab.c578nd count must be word at.2; alayer8nd cosref5pddri" cl5ss=ine" href4h CAP_SYS_A5MIdri57rs/parisc/pCA 3 href37+code=ent of e4="d3uto"ine"dev /a>);	/* kobject is alr,node=stor5e" class=5sref">store /a>href3e>de5path357ath_attribute /4>,  a4938 *
}is alr,node=sto5ss=ine" h5ule.c#Lwhen 2eading ther5 href57=> 221 hwpath... 4/ /sp49readf4Osref">de4able.c#L156" idioL156" "4class457tr5h_entry" 54a>       4str ",ntryfor5P6hre58"comment3> *
F38 now we do note4="d3utosearch"ine" hrSlass4rSloragar3utoboot flagpd4upa"s4="sref">devpath /a>,  a 4ref="46#L232" idioL25  a hreoL500" " class=ine25="3e.c#5157"358ode=entre : 0xa>         a hreoL140" " cl4upa"
	)(strshowsref p5risc/58" idioL140" " cl3/spa"
	store /a> /a>     45 retu58nce path. /spa"
no:wayclassrt; /devihe haitriveivers/parisc/>     =3+t4classe4="d3utosearch"ine"dev /a>);	 a4/a>, sizeof(* a href="+c4de=de46> * containing a" already com   )03" " class=inef="r103f> e05er18850 class=ine" ndriva4eass="sref5>devpath /4>;	dev / * a href="+code=entry" dev / * a href6> * containing a" al93" 4dioL1495452ers/parisf43f148" " class=ine" h4ule.c#L148" idioL148" " for6P6h.5" handdrivers4" href="r4path /a> 5+c_drivco5ei cl " class=ine" op/pa5isc/p588nd count must be word at.2; alayer8nd cosref5f="r213f>5213 /45ntrntaining a" al5eady 58rs/parisc/pCA 3 href37+code=ent of e4="d3uto"ine"dev /a>);	4253 /45ntrntaining a" alre5dy co58lass=bs="comment">/* kobject is alr,node=stor5#L192" id5iv_sioL192" "3ref3e>de4a5f> 185 /a> spa" class=4c3mme4t38 *
}is alr,node=sto5e" class=5sref">store /a> n cor+ c5ss="35mmen38> * containi4g a" 4lreadf4Osref">de4able.c#L156" idioL156" "4class457tr5table.c#L533" /*  mosss=inea hrewo5paris59"comment3> *
F38 now we do note4="dtiming"sho hrSlass4rSloragartimin " " ccl4upa"
(in seconds)22layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=5or6P6href5" hand4;dc_staba" class=5co   59ode=entre : 0xa>         a hreoL140" " cl4upa"
	 spExtenf> 2layer (eg. SCSI00fs)ef=5y class="500" " class=inei/a>     5- Thi59" href="r227f> 24th" class4"sr " cvalu/pdc_s4attimin field " rrepondsine"a numbin dc_seconds193 fow 2l dc_222layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=5yss="sref5/ass=s_sube.c=ine"/paris5/pdc_59ne" href="r227f> 24ula24lass4ef="drivers/parisc/pdc3stabl39pdcspath_hwpath_r5is3clas s5=s_ine" f> e0v452eaaaaaa5e shr5f="a>;ath. /spa"
no:wayclassrt; /devihe haitriveivers/parisc/>     =3+t4classe4="dtiming"shodev /a>);	 a4/a>, sizeof(* a href="+c4de=de46> * containing a" already com   )03" " class=inef="r103f> e05er18850 class=ine" ndriva4e3f> 243  5s=s_ine" ode=r452eaaaaaa5e shr59rs/parisc/pCAP_SYS_ADaaaaaaaaaaaaaaaDCe=4evs class="sref">dev / * a href="+code=entry" dev / * a href6> * containing a" al93" 4dioL1495452ers/parisf43f148" " class=ine" h4ule.c#L148" idioL148" " for6P6h.5" handdrivers4" href="r4path /a> 5" class=45ref"49225" " class=ine" 5ref="5225c_sount must be word at.2; alayer8nd cosref5#L192" id5iv_sioL192" "+ref3e>de4/5arisc59e= * a href="8 /a>92" " class=ine" href="rlayer8 /a>sref"to write to. /spae3ref="+codeidc_st5%s: sable.c#L193" idioL193" " class=ine" href5e" class=5sref">store /a>="layers159  6r59f="+co4f="+coDCe=4evs class="sref">ss=4ne" h46ref="drivers/0x%lx\n"d a href="+code=store" c7n&q46ref="drivers/0x%n&q46refs: sable.c#L193" idioL193" " class=ine" href6/pdc_stab6e.c#L233" /* S48" idione6 href60"dri * a href="+code=entry" class+1/a>      6ereu="+c_6rivcodei clk=ype       a696ire6="r195f> 1=yperef=4r195f4 195i ers idioL195" " class=ine" href="r195f> 195 3"sref">de3path /a> = &a6e f2cilit64ne" hre " class=ine" op6paris6/pdc_stab " clrisc/pCA 3 href2 ers/ps=ine" href>  6;href="r196f> 196iref="r195f> 194&8oL205" 4            spa" class6f="r213f>6213 /45ss=s_sube.c=ine"/6arisc60 3;	store /a5ref="driv6rs/pa60
	 243 /DCS/ATH_=ine" hrotd a_f4"r233faul95f> 194&8oL205" 4            spa" class6d adriv636/aayers deff="ea hr4f=yp6s hre60spath_entry" c4a>       4struct  a href="+co63 /DCSsAD6R_PPRIa0a  ",ntryfor6P6h6ef ri60" class="4ref">ready /a> = 2;	de4/6f="+c60e= * a href="+code=entry" cline"s4able.c#L241" idioL2ne"s4ablsref"="dri4ers/p46ref="dc_sta46ref="drivers/0x%n&q46refs: sf="r103f> e0ver188"aris4able.c#L241" idioL231" " class=ine4 href432ers/parisc/pdc_stable.c#L21639/DCSsAD6Rref">store /a>="layers16aLet 60f="+co4f="+code=4ev" class="n co,c#L216" idioL216" " class=ine" hru le.c#L225" idioL225" " class=i9" " class=ine" href="r199f> 199 .ble.c#L199" idioL19layersass=ine" href="layne" hudriu_6 A"f hreI p/4>,  347d3 th24lsta46ref="drivers/0x%n&q46refs: sf="r103f> e0ver188"aen newaones,r195ftouchariivers/parisc/pdc_stable.flag#ones,r195ftouchflag#" " chref="" class=ine" hrPF_TIMEa>         a hreoF_TIMEae" hr ?ine4 href432ers/parisc/pdc_stable.c#L216" " class6ine" href="r103f> e0ver168"ari61un00" "unquot; "r139fffffffffffffff  (1 &laynlayp/4>,  347d3 th24lsta46ref="drivers/0x%n&q46refs: sf="r103f> e0ver188"aen newaones,r195ftouchariivers/parisc/pdc_stable.flag#ones,r195ftouchflag#" " chref="" class=ine" hrPF_TIMEa>         a hreoF_TIMEae" hr) : 0s=ine4 href432ers/parisc/pdc_stable.c#L216un00" "la6ersass=ine" href="layers699 ,n611="+co4f="+code=4ev" class="ine"sL221" idioL221" " cla2ne"sL221" sref"="dri4ers/p46ref="dc_sta46ref="drivers/0x%n&q46refs: sf="r103f> e0ver188"aris4able.c#L241" idioL231" " class=ine4 href432ers/parisc/pdc_stable.c#L216i4e" href6"r209f> 209 /a> 4     416try" 6103" " class=ine" href="r103fclass+1/a>      64be valid6 */ /spa"
	,  a 2ref="23s been cor+ class=ine" href=sers/pa href="drivers/sers/pasref">PDC_OK /a>) {	6s=ine" hr6f="r150f>2152 /24 is alr6ady r61ab ssbs="comment">/* kobject is alr,node=stor6s" class=6 already rrrNUL40" ",n106"sref61o*ntrine4 href432ers/parisc/pdc_stable.c#L216s adriv636dr /a4);	de4able.c#L156" idioL156" "4class457tr6s /DCSsAD6/a>         a href="+cod6=DPRI61npopulated pdsct"> *
 /shref=te4="dosidg"sho hrSlass4rSloragarOS IDs 3gistin d4upa"s4="sref">devpath /a>,  a 4ref="46#L232" idioL26a> * a hr6f="+c25 is =1; (a   sssr6un00"6"temphntre : 0xa>         a hreoL140" " cl4upa"
	P6C_OK /a>) {	=> * a hr2f=6+c25 61men38> * containi4g a" 4lrel=ine" href="r103f> e05er18850 class=ine" ndriva46"4tring416quot;It is likely th"com6  sss62pds hreany PDCe=4ev" class=rt; /devihe haitriveivers/parisc/>     =3+t4classe4="dosidg"shodev /a>);	 a4/a>, sizeof(* a href="+c4de=de46> * containing a" already com   )03" " class=inef="r103f> e05er18850 class=ine" ndriva46r>entry /6>)	dev / * a href="+code=entry" dev / * a href6> * containing a" al93" 4dioL1495452ers/parisf43f148" " class=ine" h4ule.c#L148" idioL148" " for6P6h.5" handdrivers4" href="r4path /a> 6f">WARN_O6 /a>(1);	        	92" " class=ine" href="rlayer8 /a>sref"to write to. /spae3ref="+codeidc_st5%s: sable.c#L193" idioL193" " class=ine" href6"r225f> 265 /a>         a href="+c6de=DP62" cl3/ers/pari351ref"5de4p0f}is alr,node=sto6oL100" " 6lass=ine" href420f> 220 6a>   62216" idioL21iref=4r195f4 195i ers idioL195" " class=ine" href="r195f> 195 3"sref">de3path /a> = &a6ref=4+cod642	  6;href="r196f> 196iref="r195f> 194&8oL205" 4            spa" class6" " class6ine" href="r103f> e0ver168"ari62CCESrivers/parisc/prACCESect is alr,node=sto6e> * a hr6e.c#L199" idioL199" " cl6ss=in62e= * a href="+code=entry" cln co,c#L216" idioL216" " class=ine" hru le.c#L225" idioL225" " class=i9" " class=ine" href="r199f> 199 .ble.c#L199" idioL19layersass=ine" href="layne" hs dependles data (0xne" h.4x)driu_6 A"f hreI ivers/parisc/prACCESect is alr,node=sto6e sref">P6lass="sref">entry /a>-&g6; a h62 /a>;	 199 .ble.c#L1s_idgto_ine" h" class=ine" href="re4="dosiddev /a>);	 194&8oL205" 4            spa" class6ef="drive6s/parisc/pdc_4table42ref6"driv63"dri * a href="+code=entry" class+1/a>      6    sssre6n00" " class=ine" hressr6un00"63        	,  a 2ref="23s been cor+ class=ine" href=sers/pa href="drivers/sers/pasref">PDC_OK /a>) {	6ersass=in6" href="layers199 ,npdc_6ta   63c_stabs="comment">/* kobject is alr,node=stor6char * a 6ref="+4flass="sr4ine" hr6f="r263 3;	de4able.c#L156" idioL156" "4class457tr6        a6hreoL100" " class=ine" h6ef4sp63o*ntry struct. /spa"
	devpath /a>,  a 4ref="46#L232" idioL26>entry /a6-> a href="+code=read6   er63s/parisc/pdc_stable.c#L230" id228" idioL228" " class=ine" href="r22layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=6EFIXpath 6L216" idioL216" " class=6n:ssr63npopulated pdsct"> *
 /shref=2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=6E> * a hr6225" idiclass="sref">ent6y /a>63temphntre : 0xa>         a hreThis ce :hold 16 bysref">sOS-Dependles data22layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=6E sref">P6NTK /a>( spa" class="str6ng"in63men38> * containi4g a" 4lrel=ine" href="r103f> e05er18850 class=ine" ndriva46f">store 6a>)(struc/a>         a h6eoL1064pds hreany PDCe=4ev" class=rt; /devihe haitriveivers/parisc/>     =3+t4classe4="dosdep1g"shodev /a>);	 a4/a>, sizeof(* a href="+c4de=de46> * containing a" already com   )03" " class=inef="r103f> e05er18850 class=ine" ndriva46oda cla846ath"437try" clc/pdc_sta26e.c#L641n00" "unquot; "r139fffffffffffffffffDCe=4evs class="sref">dev / * a href="+code=entry" dev / * a href6> * containing a" al93" 4dioL1495452ers/parisf43f148" " class=ine" h4ule.c#L148" idioL148" " for6P6h.5" handdrivers4" href="r4path /a> 6css="ass=6nesref2les, and o * a hr6f="+c644>;	       4struct  a href6"+cod64c/pd"com   ss8 /a>92" " class=ine" href="rlayer8 /a>sref"to write to. /spae3ref="+codeidc_st5%s: sable.c#L193" idioL193" " class=ine" href6* @entry:6Able.c#L227" idioL227" "6class64rrrrrr>entry /a>)	 *
> spa" c32f> wrapp6r 64rs/parisc/pCAref=4r195f4 195i ers idioL195" " class=ine" href="r195f> 195 3"sref">de3path /a> = &a6"FIXpath 6h4ef="r44#L183" idioL1836 " cl647n00" "unquot; "r139fMIdinte2 ers/ps=ine" href>  6;href="r196f> 196iref="r195f> 194&8oL205" 4            spa" class6" href="r613f> 113 /a4};	 spa" class=4c3mme4t38 *
}is alr,node=sto6 & a 6ref=4+code44ref="dc_stab6e.c#L64 /a>;	,  347d3 th24laslr,nodeg"shodev /a>);	st_OKdev /a>);	 s_OKe" href="r195f> 195 3"sref">de3path /a> = &a6_showsref6to write to. /spae3refss6iect965un00" "unquot; "r139fMIdinte2 ers/ps=ine" hrefO;href="r196f> 196O="r195f> 194&8oL205" 4            spa" class6nc__ /a>,6 4 href44#L228 f7f>  6;h6ef="r65ble.b5f> 194&8oL205" 4            spa" class6nss="ass=6 a hreoL100" " class=ine6 href65  ers/pa4i363" " class=ine" n co,c#L216" idioL216" " class=ine" hru le.c#L225" idioL225" " class=i9" " class=ine" href="r199f> 199 .ble.c#L199" idioL19layersass=ine" href="lay0xne" h.8xdriu_6 A"f hreI pretty pri classinsullcss="ass=inesref2sullreun[0]r95f> 194&8oL205" 4            spa" class6=="+c_dri6s=ine" hressreu="+c_driv6odei 65 /a> = &4  a href="+code=harn co,c#L216" idioL216" " class=ine" hru le.c#L225" idioL225" " class=i9" " class=ine" href="r199f> 199 .ble.c#L199" idioL19layersass=ine" href="lay0xne" h.8xdriu_6 A"f hreI pretty pri classinsullcss="ass=inesref2sullreun[1]r95f> 194&8oL205" 4            spa" class6= @entry:6+codeiddrivers/psref">PD6_OK /65rrrrrr>entry /a>)	       4struct  a href="+co6e=de4ice_645ref="dr2accesparisc/pd6_stab657n00" "unquotref=4driv34s/pa37ntry"the 2table stor/a>,  a 2ref="23s been cor+ class=ine" href=sers/pa href="drivers/sers/pasref">PDC_OK /a>) {	6ring"show62" " class=ineshowsref p6risc/65e= * bs="comment">/* kobject is alr,node=stor6" class="6ref">store /a>)(struc/a>6     65 a hreoL100" " class=ine" href4Ore00f> a4" c6ass="sref6>devpath /4>;	6     66"comment3> *
F38 now we do ref4Osref">de4able.c#L156" idioL156" "4class457tr6" clc/pdc6ss=inesref2les, and ore 6ref="66ode=entre : 0xa>         a hree4="ddiagnosny g"sho hrSlass4rSloragarDiagnosny s 3gistin d4upa"s4="sref">devpath /a>,  a 4ref="46#L232" idioL26t; a hr4c6de=EINV4L" class="sref">6INVAL664>;	 spExtenf> 2layer (eg. SCSI00fs)ef=6t @entry:6 w
> spa" c32f> wrapper<6vers/66ne" href="r227f> 24ula24lass4iI have NFC ine"to193"erpref_s4at* @tles dc_s4ats 3gistin ;-)22layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=6tass=ine"6mnss=ia4ed ass=iect="r2 6ts w 66o*ntry struct. /spa"
	  66f="we exphref="rff=d class=rt; /devihe haitriveivers/parisc/>     =3+t4classe4="ddiagnosny g"shodev /a>);	 a4/a>, sizeof(* a href="+c4de=de46> * containing a" already com   )03" " class=inef="r103f> e05er18850 class=ine" ndriva46"sref">ad6r /a4);	dev / * a href="+code=entry" dev / * a href6> * containing a" al93" 4dioL1495452ers/parisf43f148" " class=ine" h4ule.c#L148" idioL148" " for6P6h.5" handdrivers4" href="r4path /a> 6f="r164f>6164 4a>   46 *
It can be6used 66ath_aount must be word at.2; alayer8nd cosref6 " for6P66.5" handdrivers4".c#L15764f">E66 /a>;	92" " class=ine" href="rlayer8 /a>sref"to write to. /spae3ref="+codeidc_st5%s: sable.c#L193" idioL193" " class=ine" href6o. /spae36efdrivers/ps=ine" hressr6udriv670	 194&8oL205" 4            spa" class6class="co6m4nt"> 47ref=" f7f>  6;h6ef="r67  ers/pa4i363ref=4r195f4 195i ers idioL195" " class=ine" href="r195f> 195 3"sref">de3path /a> = &a6a>       6 a hreoL100" " class=ine6 href67ayer f="drd]: f="drdaMIdinte2 ers/ps=ine" href>  6;href="r196f> 196iref="r195f> 194&8oL205" 4            spa" class6=="+c_dri6s=ine" hressreu="+c_driv6odei 67" cl3/ers/pari351ref"5de4p0f}is alr,node=sto6ssreuto_=6+codeiddrivers/already r6tab.c67
	,  347d3 th24laslr,nodeg"shodev /a>);	st_OKdev /a>);	 s_OKe" href="r195f> 195 3"sref">de3path /a> = &a6NFO+code=6DC_OK"  is likely th"com6  sss677n00" "unquot; "r139fMIdinte2 ers/ps=ine" hrefO;href="r196f> 196O="r195f> 194&8oL205" 4            spa" class6e" class=6sref">store /a>href3e>de6path367ath_attribute /4>,  a4938 *
}is alr,node=sto6ss=ine" h6ule.c#Lwhen 2eading ther6 href67f="+co4f="+code=4ev" class="n co,c#L216" idioL216" " class=ine" hru le.c#L225" idioL225" " class=i9" " class=ine" href="r199f> 199 .ble.c#L199" idioL19layersass=ine" href="lay0xne" h.4xdriu_6 A"f hreI p/4>,  347d3 th24insullcss="ass=inesref2sullreun ="r1="r1 16)r95f> 194&8oL205" 4            spa" class6h_entry" 64a>       4str ",ntryfor6P6hre68"dri * a href="+code=entry" class+1/a>      6  a hreoL600" " class=ine25="3e.c#6157"368        	,  a 2ref="23s been cor+ class=ine" href=sers/pa href="drivers/sers/pasref">PDC_OK /a>) {	6hre4="+co68tore /a>)(strshowsref p6risc/68c_stabs="comment">/* kobject is alr,node=stor6" class="6ref">store /a> /a>     46 retu68 3;	de4able.c#L156" idioL156" "4class457tr6+c_drivco6ei cl " class=ine" op/pa6isc/p68o*ntry struct. /spa"
	devpath /a>,  a 4ref="46#L232" idioL26f="r213f>6213 /45ntrntaining a" al6eady 68s/parisc/pdc_stable.c#L230" id228" idioL228" " class=ine" href="r22layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=6"r213f>4263 /45ntrntaining a" alre6dy co68npopulated pdsct"> *
 /shref=2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=6#L192" id6iv_sioL192" "3ref3e>de4a6f> 1868temphntre : 0xa>         a hreThis  3gistin holds_s4atam " cclf systim RAMine"bf="estid due" h bootesequence22layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=6"s=ine" h6sref">store /a> n cor+ c6ss="36mmen38> * containi4g a" 4lreefine" href="r103f> e05er18850 class=ine" ndriva46table.c#L633" /*  mosss=inea hrewo6paris69pds hreany PDCe=4ev" class=rt; /devihe haitriveivers/parisc/>     =3+t4classe4="dfastL225"ine"dev /a>);	 a4/a>, sizeof(* a href="+c4de=de46> * containing a" already com   )03" " class=inef="r103f> e05er18850 class=ine" ndriva46or6P6href6" hand4;dc_staba" class=6co   691n00" "unquot; "r139fffffffffffffffffffDCe=4evs class="sref">dev / * a href="+code=entry" dev / * a href6> * containing a" al93" 4dioL1495452ers/parisf43f148" " class=ine" h4ule.c#L148" idioL148" " for6P6h.5" handdrivers4" href="r4path /a> 6yfor6P6hr6f " class=th.5" a" class6"co  694>;	     6- Thi69c/pd"com   ss8 /a>92" " class=ine" href="rlayer8 /a>sref"to write to. /spae3ref="+codeidc_st5%s: sable.c#L193" idioL193" " class=ine" href6yss="sref6/ass=s_sube.c=ine"/paris6/pdc_69rrrrrr>entry /a>)	 e0v452eaaaaaa6e shr69o*ntrine4 href432ers/parisc/pdc_stable.c#L2163f> 243  6s=s_ine" ode=r452eaaaaaa6e shr69rs/parisc/pCAref=4r195f4 195i ers idioL195" " class=ine" href="r195f> 195 3"sref">de3path /a> = &a6" class=46ref"49225" " class=ine" 6ref="697n00" "unquot; "r139fMIdinte2 ers/ps=ine" href>  6;href="r196f> 196iref="r195f> 194&8oL205" 4            spa" class6#L192" id6iv_sioL192" "+ref3e>de4/6arisc69ath_attribute /4>,  a4938 *
}is alr,node=sto6e" class=6sref">store /a>="layers169  6r69f="+co4f="+coi>ready /a> = 2;	,  347d3 th24laslr,nodeg"shodev /a>);	st_OKdev /a>);	 s_OKe" href="r195f> 195 3"sref">de3path /a> = &a7ereu="+c_7rivcodei clk=ype       a796ire701n00" "unquot; "r139fMIdinte2 ers/ps=ine" hrefO;href="r196f> 196O="r195f> 194&8oL205" 4            spa" class7e f2cilit74ne" hre " class=ine" op7paris7003" " class=ine" href="r103fclass+1/a>      7f="r213f>7213 /45ss=s_sube.c=ine"/7arisc703s/parisc/pCAref=/4>,  347d3 th24insullcss="ass=inesref2sullreun =ref="0x0F) &lay"0x0Eref="r195f> 195 3"sref">de3path /a> = &a7e4"r213f>72ass=s_sube.c=ine"/paris7oL14070Nu_6 A"f hreIo4f="+code=4ev" class="n co,c#L216" idioL216" " class=ine" hru le.c#L225" idioL225" " class=i9" " class=ine" href="r199f> 199 .ble.c#L199" idioL19layersass=ine" href="layne" hd kBiu_6 A"f hreI p/1&laynlay/4>,  347d3 th24insullcss="ass=inesref2sullreun =ref="0x0F))*256r95f> 194&8oL205" 4            spa" class7e" class=7sref">store /a5ref="driv7rs/pa70
	de4/7f="+c70e= * a href="ine4 href432ers/parisc/pdc_stable.c#L21739/DCSsAD7Rref">store /a>="layers17aLet 70f="+co4f="+coref=4driv34s/pa37ntry"the 2table stor/a>,  a 2ref="23s been cor+ class=ine" href=sers/pa href="drivers/sers/pasref">PDC_OK /a>) {	7" " class7ine" href="r103f> e0ver178"ari71un00"bs="comment">/* kobject is alr,node=stor7un00" "la7ersass=ine" href="layers799 ,n71ble.b5f> 194&8oL205" 4            spa" class7i4e" href7"r209f> 209 /a> 4     417try" 714>;	de4able.c#L156" idioL156" "4class457tr74be valid7 */ /spa"
	devpath /a>,  a 4ref="46#L232" idioL27s=ine" hr7f="r150f>2152 /24 is alr7ady r71ne" href="r227f> 24ula24lass4i228" idioL228" " class=ine" href="r22layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=7s" class=7 already rrrNUL40" ",n107"sref71o*ntry struct. /spa"
	 spExtenf> 2layer (eg. SCSI00fs)ef=7s6 class=7dr /a4);	sOS-Dependles data, when avail00fs)2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=7s /DCSsAD7/a>         a href="+cod7=DPRI71npopulated pdsct"> *
 /shref=ine" href="r103f> e05er18850 class=ine" ndriva47a> * a hr7f="+c25 is =1; (a   sssr7un00"71e= * s="sref">pdcsrima c103dware4th"37459ref"le.c#L225" id/a>     =3+t4classe4="dosdep2g"shodev /a>);	 a4/a>, sizeof(* a href="+c4de=de46> * containing a" already com   )03" " class=inef="r103f> e05er18850 class=ine" ndriva47; sref">P7C_OK /a>) {	=> * a hr2f=7+c25 71 /a>;	dev / * a href="+code=entry" dev / * a href6> * containing a" al93" 4dioL1495452ers/parisf43f148" " class=ine" h4ule.c#L148" idioL148" " for6P6h.5" handdrivers4" href="r4path /a> 7"4tring417quot;It is likely th"com7  sss72pds hount must be word at.2; alayer8nd cosref7r>entry /7>)	92" " class=ine" href="rlayer8 /a>sref"to write to. /spae3ref="+codeidc_st5%s: sable.c#L193" idioL193" " class=ine" href7f">WARN_O7 /a>(1);	pdcsrima c103d225dev /a>);	        	idev /a>);	         a href="+c7de=DP72rrrrrr>entry /a>)	 220 7a>   72o*ntrine4 href432ers/parisc/pdc_stable.c#L217ref=4+cod742	,  347d3 th24unlikelf="drivers/0xunlikelf" class=ine" href="rp4="dL225dev /a>);	 * a hr7e.c#L199" idioL199" " cl7ss=in72ath_attribute /4>,  a4938 *
}is alr,node=sto7e sref">P7lass="sref">entry /a>-&g7; a h72f="+co4f="+code=4ev" class="d225dev /a>);	      7    sssre7n00" " class=ine" hressr7un00"73"r195f> 1=yperef=4r195f4 195i ers idioL195" " class=ine" href="r195f> 195 3"sref">de3path /a> = &a7ersass=in7" href="layers199 ,npdc_7ta   73pdc_stab " clrisc/pCA 3 href2 ers/ps=ine" href>  6;href="r196f> 196iref="r195f> 194&8oL205" 4            spa" class7char * a 7ref="+4flass="sr4ine" hr7f="r273 3;	entry forf=4>,  347d3 th24idev /a>);	);	pdcsrima c103d225dev /a>);	);	,  347d3 th24unlikelf="drivers/0xunlikelf" class=ine" href="rp4=lr,nodeg"shodev /a>);	 sADDref=OSD " " cl"" class=ine" hridev /a>);	st_OKdev /a>);	 s_OKe" hrref="r195f> 195 3"sref">de3path /a> = &a7e /DCSsAD7L216" idioL216" " class=7n:ssr737n00" "unquot; "r139f139fffffMIdinte2 ers/ps=ine" hrefO;href="r196f> 196O="r195f> 194&8oL205" 4            spa" class7E> * a hr7225" idiclass="sref">ent7y /a>738n00" "unquot; "r139f"e=4ev" class="n co,c#L216" idioL216" " class=ine" hru le.c#L225" idioL225" " class=i9" " class=ine" href="r199f> 199 .ble.c#L199" idioL19layersass=ine" href="lay0xne" h.8xdriu_6 A"f hreI pretty pri classinsullcss="ass=inesref2sullreuns=ine4 href432ers/parisc/pdc_stable.c#L217E sref">P7NTK /a>( spa" class="str7ng"in73f="+co4f="+cobs="comment">/* kobject is alr,node=stor7f">store 7a>)(struc/a>         a h7eoL1074"dri * a href="+code=entry" class+1/a>      7oda cla847ath"437try" clc/pdc_sta27e.c#L74        	,  a 2ref="23s been cor+ class=ine" href=sers/pa href="drivers/sers/pasref">PDC_OK /a>) {	7css="ass=7nesref2les, and o * a hr7f="+c74c_stabs="comment">/* kobject is alr,node=stor7> a hr7a>       4struct  a href7"+cod74 3;	de4able.c#L156" idioL156" "4class457tr7*       a7t"> *
> spa" c32f> wrapp7r spExtenf> 2layer (eg. SCSI00fs)ef=7" class=i7e" nss=ia4ed ass=iect="r7g0f> 74s/parisc/pdc_stable.c#L230" id228" idioLin" " class=ine""sho from)2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=7" /DCSsAD7h4ef="r44#L183" idioL1837 " cl74npopulated pdsct"> *
 /shref=t@" " c idioLnumbin dc_bysrefne"bf="sho)2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=7"> * a hr713f> 113 /a4};	         a hreodnob idioLPF_AUTOBOOT orfPF_AUTOSEARCH flag2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=7" sref">P7ref=4+code44ref="dc_stab7e.c#L74men38> * containi4g a" 4lreef 2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=7_showsref7to write to. /spae3refss7iect975"comment3> *
F38 now we do notWe will call this function ne"changart4at* files 3utoboot flag)2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=7nc__ /a>,7 4 href44#L228 f7f>  6;h7ef="r75ode=entre : 0xa>         a hreWe expecs 3 precise syntax:2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=7nss="ass=7 a hreoL100" " class=ine7 href754>;	 spExtenf> 2layer (eg. SCSI00fs)ef=7ngt; a hr7s=ine" hressreu="+c_driv7odei 75" href="r227f> 24th" class4"sine" href="r103f> e05er18850 class=ine" ndriva47= @entry:7+codeiddrivers/psref">PD7_OK /75rrrrrs="sref">pdcsrima c103dware4th"37459ref"le.c#L225" id/a>     =3+t4classe4="d3uto" hrefdev /a>);	 a4/a>, sizeof(* a href="+c4de=de46> * containing a" already com   )03" " class=inef="r103f> e05er18850 class=ine" ndriva47=       a7h4ule.c#Lwhen 2eading th7re hr755dc_stab " clrisc/pCAaaaaaafffffffffDCe=4evs class="sref">dev / * a href="+code=entry" dev / * a href6> * containing a" al93" 4dioL1495452ers/parisf43f1onstf148" " class=ine" h4ule.c#L148" idioL148" " foef="r103f> e05er18850 class=ine" ndriva47= class=i7owsref(struct  a href="+7ode=p75rs/parisc/pCAP_SYS_ADaaaaaaaaaaaaaaa">pdcsrima c103d2254th"37459ref"le.c#225" id/a>     =3+t4class" " ch"37459ref"le.c" " cisf43fi9"_s class="sref">dnob="+code=entry" dnobe" href="r195f> 195 3"sref">de3path /a> = &a7e=de4ice_745ref="dr2accesparisc/pd7_stab7525c_sount must be word at.2; alayer8nd cosref7ring"show72" " class=ineshowsref p7risc/758n00" "unquotDCe=4evs class="sref">ss=4ne" h46ref="drivers/0x%lx\n"d a href="+code=store" c7n&q46ref="drivers/0x%n&q46refs: sable.c#L193" idioL193" " class=ine" href7" class="7ref">store /a>)(struc/a>7     75f="+co4f="+counsigned 148" "+code=store" cflag#ones,r195ftouchflag#" " able.c#L193" idioL193" " class=ine" href7ass="sref7>devpath /4>;	7     760s/parisc/pCA148" "+code=store" cindev /a>);	,7ss=inesref2les, and ore 7ref="761n00" "unquot8 /a>     =3+t4class"h"37459ref"le.c"" " able.c#L193" idioL193" " class=ine" href7ass="ass=7de=EINV4L" class="sref">7INVAL7603" " class=ine" href="r103fclass+1/a>      7t="+c_dri7le.c#L227" idioL227" " c7ass=i763s/parisc/pCAref=4r195f4 195i erscapa>  h"37459ref"le.c"apa>  " class=ine" href="rCAP_SYADDrMINh"37459ref"le.cCAP_SYADDrMINe" hrref="r195f> 195 3"sref">de3path /a> = &a7t @entry:7 w
> spa" c32f> wrapper<7vers/76Nu_6 A"f hreIo4f="+coMIdinte2 ers/ps=ine" hreACCES;href="r196f> 19ACCES" " able.c#L193" idioL193" " class=ine" href7a       a7mnss=ia4ed ass=iect="r2 7ts w 76o*ntrine4 href432ers/parisc/pdc_stable.c#L217tass=ines7=ine" ndriva4ed adrivers7pa>  76rs/parisc/pCAref=4r195f4 195i ers idioL195" " class=ine" h || 4r195f4 195i ersc " ch"37459ref"le.c" " cisf4ref="r195f> 195 3"sref">de3path /a> = &a7t=de4ice_7r /a4);	  6;href="r196f> 196iref="r195f> 194&8oL205" 4            spa" class7f="r164f>7164 4a>   46 *
It can be7used 76ath_attribute /4>,  a4938 *
}is alr,node=sto7 " for6P67.5" handdrivers4".c#L15774f">E76f="+co4f="+coi>ready /a> = 2;	 47ref=" f7f>  6;h7ef="r7703" " class=ine" href="r103fclass+1/a>      7a>       7 a hreoL100" " class=ine7 href77ayer f="drd]: pretty phref="+code=DPRIC files flag#L230"1aaaaL193 f4"r233 booteiddri_3tabl=ine" href="r103f> e05er18850 class=ine" ndriva47=="+c_dri7s=ine" hressreu="+c_driv7odei 77rrrrrr>entry /a>)	 243 /DCS/ATH_=ine" hrotd a_f4"r233faul95f> 194&8oL205" 4            spa" class7ssreuto_=7+codeiddrivers/already r7tab.c77
	 e0ver188"aris4able.c#L241" idioL231" " class=ine4 href432ers/parisc/pdc_stable.c#L217e" class=7sref">store /a>href3e>de7path377e= * a href="+code=entry" clflag#ones,r195ftouchflag#" " cwrite to. /spae3rpsta46ref="drivers/0x%n&q46refs: sf="r103f> e0ver188"aen newaones,r195ftouchariivers/parisc/pdc_stable.flag#ones,r195ftouchflag#" " =ine4 href432ers/parisc/pdc_stable.c#L217e" for6P67ule.c#Lwhen 2eading ther7 href77f="+co4f="+code=4ev" class="ine"sL221" idioL221" " cla2ne"sL221" sref"="dri4ers/p46ref="dc_sta46ref="drivers/0x%n&q46refs: sf="r103f> e0ver188"aris4able.c#L241" idioL231" " class=ine4 href432ers/parisc/pdc_stable.c#L217h_entry" 74a>       4str ",ntryfor7P6hre780	);	store /a> /a>     47 retu78 /a> = &4  a href="+code=hartemph"37459ref"le.ctemp" " cwrite to. /spae3rskip_ hrce#ones,r195ftouchskip_ hrce#" class=ine" href="rindev /a>);	 195 3"sref">de3path /a> = &a7"r213f>4273 /45ntrntaining a" alre7dy co787n00" "unquot; "r139fgone"4ers/p46ref="dc_srse_erro 4dioL1495452ers_srse_erro " " =ine4 href432ers/parisc/pdc_stable.c#L217#L192" id7iv_sioL192" "3ref3e>de4a7f> 18788s/parisc/pCAref=ivers/parisc/pd"h"37459ref"le.c"" " cw= 0)ine4 href432ers/parisc/pdc_stable.c#L217#" for6P67sref">store /a> n cor+ c7ss="378 /a>;	dnob="+code=entry" dnobe" h=ine4 href432ers/parisc/pdc_stable.c#L217table.c#L733" /*  mosss=inea hrewo7paris790	     7- Thi79 /a> = &4  a href="+code=harDPRINTKdev /a>);	);	 e0v452eaaaaaa7e shr79
	 243  7s=s_ine" ode=r452eaaaaaa7e shr79rs/parisc/pCAretty pri class hrefs4able.c#L241" idioL hrefs4ablsref"="dri4ers/p46ref="dc_sta46ref="drivers/0x%n&q46refs: sf="r103f> e0ver188"aris4able.c#L241" idioL231" " class=ine4 href432ers/parisc/pdc_stable.c#L217" class=47ref"49225" " class=ine" 7ref="797n00" "unquotine4 href432ers/parisc/pdc_stable.c#L217"L192" id7iv_sioL192" "+ref3e>de4/7arisc798	store /a>="layers179  6r79f="+co4f="+code=4ev" class="psta46ref="drivers/0x%n&q46refs: sf="r103f> e0ver188"aen newaones,r195ftouchariivers/parisc/pdc_stable.flag#ones,r195ftouchflag#" " cwrite to. /spae3rflag#ones,r195ftouchflag#" " =ine4 href432ers/parisc/pdc_stable.c#L218/pdc_stab8e.c#L233" /* S48" idione8 href80un00" "unquot; "r139fine4 href432ers/parisc/pdc_stable.c#L218/1dc_stab8e hand4;dc_staba" class=896ire801n00" "unquoti>ready /a> = 2;	 243 /DCS/ATH_=ine" hr1aaaa" class=ine" href="rpsta46ref="drivers/0x%n&q46refs: ss=ine4 href432ers/parisc/pdc_stable.c#L218f="r213f>8213 /45ss=s_sube.c=ine"/8arisc80 /a> = &4  a href="+code=har hrefsL221" idioL221" " cla hrefsL221" sref"="dri4ers/p46ref="dc_sta46ref="drivers/0x%n&q46refs: sf="r103f> e0ver188"aris4able.c#L241" idioL231" " class=ine4 href432ers/parisc/pdc_stable.c#L218e4"r213f>82ass=s_sube.c=ine"/paris8oL14080Nu_6 A"f hreIine4 href432ers/parisc/pdc_stable.c#L218e5"r213f>82s_ine" f> e0v452eaaaaaa8rs/pa80
	 1KERN_INFOid/a>     =3+t4class> sADPREFIX;href="r196f> 1> sADPREFIXid/a> 19layersass=ine" href="lay:"changadl\iu_6 Ane" hs\iu_6 A ne"\iu_6 Ane" hs\iu_6 Adriu_6 A"f hreI ivers/parisc/prACCESect is alr,node=sto8e6 class=8s=s_ine" ode=r452eaaaaaa8s hre80rs/parisc/pCAP_SYS_ADass=ine" href="rdnob="+code=entry" dnobe" h =ref="     =3+t4class>F_AUTOBOOT;href="r196f> 1>F_AUTOBOOTclass ?> 19layersass=ine" href="lay3utobootiu_6 A"f hreI :> 19layersass=ine" href="lay3utosearchiu_6 A"f hreI ivers/parisc/prACCESect is alr,node=sto8e7 class=8sef"49225" " class=ine" 8ef ri807n00" "unquot; "r139fass=ine" href="rflag#ones,r195ftouchflag#" " chref=_s class="sref">dnob="+code=entry" dnobe" hr ?> 19layersass=ine" href="layOniu_6 A"f hreI :> 19layersass=ine" href="layOffiu_6 A"f hreIs=ine4 href432ers/parisc/pdc_stable.c#L21838/DCSsAD8Rv_sioL192" "+ref3e>de4/8f="+c80e= * a href="ine4 href432ers/parisc/pdc_stable.c#L21839/DCSsAD8Rref">store /a>="layers18aLet 80f="+co4f="+coref=4driv34s/pa37ntry"" " ch"37459ref"le.c" " cisf4=ine4 href432ers/parisc/pdc_stable.c#L218" " class8ine" href="r103f> e0ver188"ari81"dri * a href="+code=entry" class+1/a>      8un00" "la8ersass=ine" href="layers899 ,n81ble.b4ers/p46ref="dc_srse_erro 4dioL1495452ers_srse_erro " " :* a href="+code=entry" class+1/a>      8u f2cilit8"r209f> 209 /a> 4     418try" 81  ers/pa4i363" " class=ine" _=i9"le.c#L241" idioLs=i9"l" class=ine" href="rKERN_WARNINGdev /a>);	 19layersass=ine" href="layne" hs: Psrse erro : expecs \iu_6 An\iu_6 A (n == 0 orf1)driu_6 A"f hreI pretty pri class__func__dev /a>);	  6;href="r196f> 196iref="r195f> 194&8oL205" 4            spa" class8s=ine" hr8f="r150f>2152 /24 is alr8ady r81ne" hbs="comment">/* kobject is alr,node=stor8s" class=8 already rrrNUL40" ",n108"sref81o*ntrine4 href432ers/parisc/pdc_stable.c#L218s6 class=8dr /a4);	de4able.c#L156" idioL156" "4class457tr8s /DCSsAD8/a>         a href="+cod8=DPRI81npopulated pdsct"> *
 /shref==e4="d3utoboot" href=-eThis function handlesr3utoboot flagpmodify" h)2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8a> * a hr8f="+c25 is =1; (a   sssr8un00"81temphntre : 0xa>         a hreo28" idioLin" " class=ine""sho from)2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8; sref">P8C_OK /a>) {	=> * a hr2f=8+c25 81men38> * containi4g a" 4lreef @" " c idioLnumbin dc_bysrefne"bf="sho)2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8"4tring418quot;It is likely th"com8  sss82"comment3> *
F38 now we do no2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8"n00" "la8>)	 spExtenf> 2layer (eg. SCSI00fs)ef=8" f2cilit8 /a>(1);	 spExtenf> 2layer (eg. SCSI00fs)ef=8fbe valid8 224 /a>        	 spExtenf> 2layer (eg. SCSI00fs)ef=8f=ine" hr85 /a>         a href="+c8de=DP82ne" href="r227f> 24ula24lass4ine" href="r103f> e05er18850 class=ine" ndriva48oL100" " 8lass=ine" href420f> 220 8a>   82o*ntrs="sref">pdcsrima c103dware4th"37459ref"le.c#L225" id/a>     =3+t4classe4="d3utoboot" hreff> 243 /DCS/ATH_=ind3utoboot" href" cla" idioL234=re00f> a4/a>, sizeof(* a href="+c4de=de46> * containing a" already com   )03" " class=inef="r103f> e05er18850 class=ine" ndriva48ref=4+cod842	dev / * a href="+code=entry" dev / * a href6> * containing a" al93" 4dioL1495452ers/parisf43f="r103f> e05er18850 class=ine" ndriva48r /DCSsAD8ine" href="r103f> e0ver188"ari827n00" "unquot; "r139ffffffffffffffffffff1onstf148" " class=ine" h4ule.c#L148" idioL148" " foea">pdcsrima c103d2254th"37459ref"le.c#225" id/a>     =3+t4class" " ch"37459ref"le.c" " cisf4)ine4 href432ers/parisc/pdc_stable.c#L218o> * a hr8e.c#L199" idioL199" " cl8ss=in82ath_aount must be word at.2; alayer8nd cosref8e sref">P8lass="sref">entry /a>-&g8; a h82f="+co4f="+coref=4driv34s/pa37ntry"e4="d3uto" hrefdev /a>);	F_AUTOBOOT;href="r196f> 1>F_AUTOBOOTclass95f> 194&8oL205" 4            spa" class8ef="drive8s/parisc/pdc_4table42ref8"driv83un00"bs="comment">/* kobject is alr,node=stor8    sssre8n00" " class=ine" hressr8un00"83ble.b5f> 194&8oL205" 4            spa" class8ersass=in8" href="layers199 ,npdc_8ta   834>;	de4able.c#L156" idioL156" "4class457tr8char * a 8ref="+4flass="sr4ine" hr8f="r283" href="r227f> 24th" class4"sre4="d3utosearch" href=-eThis function handlesr3utosearch flagpmodify" h)2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8#L192" id8oL192" " class=ine" href8"r19283ne" href="r227f> 24ula24lass4i228" idioLin" " class=ine""sho from)2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8        a8hreoL100" " class=ine" h8ef4sp83o*ntry struct. /spa"
	 spExtenf> 2layer (eg. SCSI00fs)ef=8  /DCSsAD8L216" idioL216" " class=8n:ssr83npopulated pdsct"> *
 /shref==We will call this function ne"changart4at* files boot flags)2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8E> * a hr8225" idiclass="sref">ent8y /a>83temphntre : 0xa>         a hreWe expecs 3 precise syntax:2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8E sref">P8NTK /a>( spa" class="str8ng"in83men38> * containi4g a" 4lreef rrrrr\iu_6 An\iu_6 A (n == 0 orf1) ne"toggle AutoSearch Off orfOn2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8f">store 8a>)(struc/a>         a h8eoL1084"comment3> *
F38 now we do noine" href="r103f> e05er18850 class=ine" ndriva48oda cla848ath"437try" clc/pdc_sta28e.c#L84     s="sref">pdcsrima c103dware4th"37459ref"le.c#L225" id/a>     =3+t4classe4="d3utosearch" hrefdev /a>);	 a4/a>, sizeof(* a href="+c4de=de46> * containing a" already com   )03" " class=inef="r103f> e05er18850 class=ine" ndriva48css="ass=8nesref2les, and o * a hr8f="+c84pdc_stab " clrisc/pCAADaaaaaaaaaaaaaaaffffDCe=4evs class="sref">dev / * a href="+code=entry" dev / * a href6> * containing a" al93" 4dioL1495452ers/parisf43f="r103f> e05er18850 class=ine" ndriva48> a hr8a>       4struct  a href8"+cod84ayer f="drd]: f="drda9ffffffffffffffffffff1onstf148" " class=ine" h4ule.c#L148" idioL148" " foea">pdcsrima c103d2254th"37459ref"le.c#225" id/a>     =3+t4class" " ch"37459ref"le.c" " cisf4)ine4 href432ers/parisc/pdc_stable.c#L218* @entry:8Able.c#L227" idioL227" "8class84risc/ount must be word at.2; alayer8nd cosref8*       a8t"> *
> spa" c32f> wrapp8r);	F_AUTOSEARCH;href="r196f> 1>F_AUTOSEARCHclass95f> 194&8oL205" 4            spa" class8" class=i8e" nss=ia4ed ass=iect="r8g0f> 84s/parbs="comment">/* kobject is alr,node=stor8" /DCSsAD8h4ef="r44#L183" idioL1838 " cl84npopus="comment">/* kobject is alr,node=stor8"> * a hr813f> 113 /a4};	         a ref4Osref">de4able.c#L156" idioL156" "4class457tr8" sref">P8ref=4+code44ref="dc_stab8e.c#L84men38> * containi4g a" 4lreef p4="dosdep1" href=-eSlass4rSloragarOS-Dependles data a"sh 1Lin" ")2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8_showsref8to write to. /spae3refss8iect985"comment3> *
F38 now we do not228" idioLin" " class=ine""sho from)2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8nc__ /a>,8 4 href44#L228 f7f>  6;h8ef="r85ode=entre : 0xa>         a hre@" " c idioLnumbin dc_bysrefne"bf="sho)2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8nss="ass=8 a hreoL100" " class=ine8 href854>;	 spExtenf> 2layer (eg. SCSI00fs)ef=8ngt; a hr8s=ine" hressreu="+c_driv8odei 85" href="r227f> 24th" class4"seThis ce :1aaaa 16 bysref">sOS-Dependles data.eWe use a bysr-by-bysr2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8n @entry:8+codeiddrivers/psref">PD8_OK /85ne" href="r227f> 24ula24lass4i href=approach. Itf#39;s=upfne"user hrcefne"deal with it when 1onste=4e" h2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8n       a8h4ule.c#Lwhen 2eading th8re hr85o*ntry struct. /spa"
	 spExtenf> 2layer (eg. SCSI00fs)ef=8n class=i8owsref(struct  a href="+8ode=p85s/parisc/pdc_stable.c#L230" iine" href="r103f> e05er18850 class=ine" ndriva48e=de4ice_845ref="dr2accesparisc/pd8_stab8525c_ss="sref">pdcsrima c103dware4th"37459ref"le.c#L225" id/a>     =3+t4classe4="dosdep1" hrefdev /a>);	 a4/a>, sizeof(* a href="+c4de=de46> * containing a" already com   )03" " class=inef="r103f> e05er18850 class=ine" ndriva48ring"show82" " class=ineshowsref p8risc/858n00" "unquot; "r139faaaaaaaaaaaaaffffDCe=4evs class="sref">dev / * a href="+code=entry" dev / * a href6> * containing a" al93" 4dioL1495452ers/parisf43f="r103f> e05er18850 class=ine" ndriva48" class="8ref">store /a>)(struc/a>8     85 /a>;	pdcsrima c103d2254th"37459ref"le.c#225" id/a>     =3+t4class" " ch"37459ref"le.c" " cisf4)ine4 href432ers/parisc/pdc_stable.c#L218ass="sref8>devpath /4>;	8     86pds hount must be word at.2; alayer8nd cosref8ac__ /a>,8ss=inesref2les, and ore 8ref="861="+co4f="+code=4ev" class="u8h"37459ref"le.cu8id/a>     =3+t4classindev /a>);	 194&8oL205" 4            spa" class8ass="ass=8de=EINV4L" class="sref">8INVAL8603" " class=ine" href="r103fclass+1/a>      8t="+c_dri8le.c#L227" idioL227" " c8ass=i863s/parisc/pCAref=4r195f4 195i erscapa>  h"37459ref"le.c"apa>  " class=ine" href="rCAP_SYADDrMINh"37459ref"le.cCAP_SYADDrMINe" hrref="r195f> 195 3"sref">de3path /a> = &a8t @entry:8 w
> spa" c32f> wrapper<8vers/86Nu_6 A"f hreIo4f="+coMIdinte2 ers/ps=ine" hreACCES;href="r196f> 19ACCES" " able.c#L193" idioL193" " class=ine" href8a       a8mnss=ia4ed ass=iect="r2 8ts w 86o*ntrine4 href432ers/parisc/pdc_stable.c#L218tass=ines8=ine" ndriva4ed adrivers8pa>  86rs/parisc/pCAref=4r195f4 195i ers idioL195" " class=ine" h || 4r195f4 195i ersc " ch"37459ref"le.c" " cisf4ref="r195f> 195 3"sref">de3path /a> = &a8t=de4ice_8r /a4);	  6;href="r196f> 196iref="r195f> 194&8oL205" 4            spa" class8f="r164f>8164 4a>   46 *
It can be8used 86ath_attribute /4>,  a4938 *
}is alr,node=sto8 " for6P68.5" handdrivers4".c#L15784f">E86f="+co4f="+coref=4>,  347d3 th24unlikelf="drivers/0xunlikelf" class=ine" href="rp4="dosiodev /a>);	de3path /a> = &a8o. /spae38efdrivers/ps=ine" hressr8udriv87un00" "unquot; "r139f 3 href2 ers/ps=ine" hrePERM;href="r196f> 19PERM="r195f> 194&8oL205" 4            spa" class8o clc/pdc8 idioL148" " for6P6h.5" 8anddr87ble.b5f> 194&8oL205" 4            spa" class8oss="ass=8m4nt"> 47ref=" f7f>  6;h8ef="r872="+co4f="+coref=4>,  347d3 th24c " ch"37459ref"le.c" " cisf4 ="r1 16ref="r195f> 195 3"sref">de3path /a> = &a8o="+c_dri8 a hreoL100" " class=ine8 href87ayer f="drd]: f="drda 3 href2 ers/ps=ine" hreMSGSIZE;href="r196f> 19MSGSIZE="r195f> 194&8oL205" 4            spa" class8o @entry:8s=ine" hressreu="+c_driv8odei 87" cl3/ers/pari351ref"5de4p0f}is alr,node=sto8ssreuto_=8+codeiddrivers/already r8tab.c87
	 194&8oL205" 4            spa" class8=="r164f>8sref">store /a>href3e>de8path387ath_attribute /4>,  a4938 *
}is alr,node=sto8e" for6P68ule.c#Lwhen 2eading ther8 href87f="+co4f="+coref=4>,  347d3 th24s alr,node" hrefdev /a>);	);	de3path /a> = &a8h_entry" 84a>       4str ",ntryfor8P6hre88un00" "unquot; "r139f 3 href2 ers/ps=ine" hrefO;href="r196f> 196O="r195f> 194&8oL205" 4            spa" class8  a hreoL800" " class=ine25="3e.c#8157"388ble.b5f> 194&8oL205" 4            spa" class8hss="ass=88tore /a>)(strshowsref p8risc/882="+co4f="+coref=4driv34s/pa37ntry"" " ch"37459ref"le.c" " cisf4=ine4 href432ers/parisc/pdc_stable.c#L218" class="8ref">store /a> /a>     48 retu88 /a> bs="comment">/* kobject is alr,node=stor8h="+c_dri8>devpath /4>;	de4able.c#L156" idioL156" "4class457tr8hass=ines8213 /45ntrntaining a" al8eady 88s/parisc/pdc_stable.c#L230" idp4="dosdep2g href=-eSlass4rSloragarOS-Dependles data a"sh 2Lin" ")2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8"r213f>4283 /45ntrntaining a" alre8dy co88npopulated pdsct"> *
 /shref=t@28" idioLin" " class=ine""sho from)2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8#L192" id8iv_sioL192" "3ref3e>de4a8f> 1888temphntre : 0xa>         a hreo" " c idioLnumbin dc_bysrefne"bf="sho)2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8#" for6P68sref">store /a> n cor+ c8ss="388men38> * containi4g a" 4lreef2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8table.c#L833" /*  mosss=inea hrewo8paris89"comment3> *
F38 now we do notThis ce :1aaaa p4="dL225 hr224 bysref">sOS-Dependles data.eWe use a2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8t a hreoL8" hand4;dc_staba" class=8co   89ode=entre : 0xa>         a hrebysr-by-bysri href=approach. Itf#39;s=upfne"user hrcefne"deal with it when2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=8tss="ass=8f " class=th.5" a" class8"co  894>;	 spExtenf> 2layer (eg. SCSI00fs)ef=8y class="800" " class=inei/a>     8- Thi89" href="r227f> 24th" class4"sine" href="r103f> e05er18850 class=ine" ndriva48yss="sref8/ass=s_sube.c=ine"/paris8/pdc_89rrrrrs="sref">pdcsrima c103dware4th"37459ref"le.c#L225" id/a>     =3+t4classe4="dosdep2g hrefdev /a>);	 a4/a>, sizeof(* a href="+c4de=de46> * containing a" already com   )03" " class=inef="r103f> e05er18850 class=ine" ndriva48yc_drivco8=s_ine" f> e0v452eaaaaaa8e shr895dc_stab " clrisc/pCAaaaaaafffffffffffDCe=4evs class="sref">dev / * a href="+code=entry" dev / * a href6> * containing a" al93" 4dioL1495452ers/parisf43f="r103f> e05er18850 class=ine" ndriva483f> 243  8s=s_ine" ode=r452eaaaaaa8e shr89rs/parisc/pCAP_SYS_ADaaaaaaaaaaaaaaaff1onstf148" " class=ine" h4ule.c#L148" idioL148" " foea">pdcsrima c103d2254th"37459ref"le.c#225" id/a>     =3+t4class" " ch"37459ref"le.c" " cisf4)ine4 href432ers/parisc/pdc_stable.c#L218" class=48ref"49225" " class=ine" 8ref="8925c_sount must be word at.2; alayer8nd cosref8"L192" id8iv_sioL192" "+ref3e>de4/8arisc898	pdcsrima c103d225dev /a>);	store /a>="layers189  6r89f="+co4f="+counsigned shorevs class="sref">idev /a>);	     =3+t4classindev /a>);	 194&8oL205" 4            spa" class9/1dc_stab9e hand4;dc_staba" class=996ire90ble.b5f> 194&8oL205" 4            spa" class9e f2cilit94ne" hre " class=ine" op9paris902="+co4f="+coref=4r195f4 195i erscapa>  h"37459ref"le.c"apa>  " class=ine" href="rCAP_SYADDrMINh"37459ref"le.cCAP_SYADDrMINe" hrref="r195f> 195 3"sref">de3path /a> = &a9f="r213f>9213 /45ss=s_sube.c=ine"/9arisc90ayer f="drd]: f="drda 3 href2 ers/ps=ine" hreACCES;href="r196f> 19ACCES" " able.c#L193" idioL193" " class=ine" href9e4"r213f>92ass=s_sube.c=ine"/paris9oL14090" cl3/ers/pari351ref"5de4p0f}is alr,node=sto9e5"r213f>92s_ine" f> e0v452eaaaaaa9rs/pa90
	de3path /a> = &a9e6 class=9s=s_ine" ode=r452eaaaaaa9s hre90rs/parisc/pCAP_SYS_AD 3 href2 ers/ps=ine" href>  6;href="r196f> 196iref="r195f> 194&8oL205" 4            spa" class9e7 class=9sef"49225" " class=ine" 9ef ri90npopus="comment">/* kobject is alr,node=stor938/DCSsAD9Rv_sioL192" "+ref3e>de4/9f="+c908s/parisc/pCAref=ivers/parisc/pdunlikelf="drivers/0xunlikelf" class=ine" href="rp4="dL225dev /a>);	store /a>="layers19aLet 90 /a>;	 194&8oL205" 4            spa" class9" " class9ine" href="r103f> e0ver198"ari91"dri * a href="+code=entry" class+1/a>      9un00" "la9ersass=ine" href="layers999 ,n91"r195f> 1=yperef=4>,  347d3 th24unlikelf="drivers/0xunlikelf" class=ine" href="rp4="dosiodev /a>);	de3path /a> = &a9u f2cilit9"r209f> 209 /a> 4     419try" 91pdc_stab " clrisc/pCA 3 href2 ers/ps=ine" hrePERM;href="r196f> 19PERM="r195f> 194&8oL205" 4            spa" class94be valid9 */ /spa"
	);	,  347d3 th24c " ch"37459ref"le.c" " cisf4 ="r1 /a>)	 195 3"sref">de3path /a> = &a9u7 class=9/a>         a href="+cod9=DPRI917n00" "unquot; "r139f 3 href2 ers/ps=ine" hreMSGSIZE;href="r196f> 19MSGSIZE="r195f> 194&8oL205" 4            spa" class9a> * a hr9f="+c25 is =1; (a   sssr9un00"91ath_attribute /4>,  a4938 *
}is alr,node=sto9; sref">P9C_OK /a>) {	=> * a hr2f=9+c25 91f="+co4f="+coi>ready /a> = 2;	      9"n00" "la9>)	 1=ypeforf=4>,  347d3 th24idev /a>);	);	pdcsrima c103" " ch"37459ref"le.c" " cisf4="" class=ine" hridev /a>);	(1);	        	);	,  347d3 th24c " ch"37459ref"le.c" " cisf42 ers/ps=ine" hridev /a>);	 >,  347d3 th24c " ch"37459ref"le.c" " cisf42 ers/ps=ine" hridev /a>);	 194&8oL205" 4            spa" class9f=ine" hr95 /a>         a href="+c9de=DP92Nu_6 A"f hreIo4f="+coref=4>,  347d3 th24unlikelf="drivers/0xunlikelf" class=ine" href="rp4=lr,node" hrefdev /a>);	);	);	 194&8oL205" 4            spa" class9f" class=9lass=ine" href420f> 220 9a>   925dc_stab " clrisc/pCAaaaaaaffffffffffffffffffDsc/ofass=ine" href="rindev /a>);	st_OKdev /a>);	 s_OKe" hrref="r195f> 195 3"sref">de3path /a> = &a9ref=4+cod942	 194&8oL205" 4            spa" class9r /DCSsAD9ine" href="r103f> e0ver198"ari927n00" "unquotbs="comment">/* kobject is alr,node=stor9o> * a hr9e.c#L199" idioL199" " cl9ss=in92ath_attribute /4>,  a4938 *
}is alr,node=sto9e sref">P9lass="sref">entry /a>-&g9; a h92f="+co4f="+coref=4driv34s/pa37ntry"" " ch"37459ref"le.c" " cisf4=ine4 href432ers/parisc/pdc_stable.c#L219ef="drive9s/parisc/pdc_4table42ref9"driv93un00"bs="comment">/* kobject is alr,node=stor9    sssre9n00" " class=ine" hressr9un00"93ble.b5f> 194&8oL205" 4            spa" class9ersass=in9" href="layers199 ,npdc_9ta   934>;	pdcsrima c103> sADDTTRdev /a>);	 sADDTTR" class=ine" href="rd225dev /a>);	);	pdcsrima c103> sADDTTRdev /a>);	 sADDTTR" class=ine" href="r3utoboot4dioL1495452ers/utobootr10t, 0644,  class=ine" h4ue4="d3utoboot""shodev /a>);	 243 /DCS/ATH_=ind3utoboot" href" clr95f> 194&8oL205" 4            spa" class9#" class=9hreoL100" " class=ine" h9ef4sp93o*ntrs="sref">pdcsrima c103> sADDTTRdev /a>);	 sADDTTR" class=ine" href="r3utosearch4dioL1495452ers/utosearchr10t, 0644,  class=ine" h4ue4="d3utosearch""shodev /a>);	);	 194&8oL205" 4            spa" class9#ef=4+cod9-> a href="+code=read9   er93s/pars="sref">pdcsrima c103> sADDTTRdev /a>);	 sADDTTR" class=ine" href="rtime 4dioL1495452erstime r10t, 0444,  class=ine" h4ue4="dtime ""shodev /a>);	pdcsrima c103> sADDTTRdev /a>);	 sADDTTR" class=ine" href="rosiodev /a>);	);	 * a hr9225" idiclass="sref">ent9y /a>93temphs="sref">pdcsrima c103> sADDTTRdev /a>);	 sADDTTR" class=ine" href="rosdep1dev /a>);	);	);	 194&8oL205" 4            spa" class9# sref">P9NTK /a>( spa" class="str9ng"in93men38s="sref">pdcsrima c103> sADDTTRdev /a>);	 sADDTTR" class=ine" href="rdiagnossredev /a>);	);	store 9a>)(struc/a>         a h9eoL1094"comms="sref">pdcsrima c103> sADDTTRdev /a>);	 sADDTTR" class=ine" href="rfastd225dev /a>);	);	pdcsrima c103> sADDTTRdev /a>);	 sADDTTR" class=ine" href="rosdep2dev /a>);	);	 194&8oL205" 4            spa" class9frsass=in9nesref2les, and o * a hr9f="+c9403" " class=ine" href="r103fclass+1/a>      9> a hr9a>       4struct  a href9"+cod94" hres="srefDCe=4evs class="sref"> * a href="+code=entry"  * a href6> * containing a" ale4="dLubsys/ * a#ones,r195ftouche4="dLubsys/ * a#s/pa[] = ount must be word at.2; alayer8nd cosref9* @entry:9Able.c#L227" idioL227" "9class94Nu_6 A"f hreI5=enters/p5ri2" class=in/ * adL225dev /a>);	 *
> spa" c32f> wrapp9r 946="+co4f="+co5=enters/p5ri2" class=in/ * ad3utosearch4dioL1495452erss=in/ * ad3utosearchu_6 risc/pdc_stable.93" 4dioL1495452ers/parisf43f="r103f> e05er18850 class=ine" ndriva49* /DCSsAD9h4ef="r44#L183" idioL1839 " cl947="+co4f="+co5=enters/p5ri2" class=in/ * adtime 4dioL1495452erss=in/ * adtime u_6 risc/pdc_stable.93" 4dioL1495452ers/parisf43f="r103f> e05er18850 class=ine" ndriva49*> * a hr913f> 113 /a4};	);	P9ref=4+code44ref="dc_stab9e.c#L949="+co4f="+co5=enters/p5ri2" class=in/ * adosdep1dev /a>);	);	  6;h9ef="r951="+co4f="+co5=enters/p5ri2" class=in/ * adfastd225dev /a>);	);	 1NUL6isf43f="r103f> e05er18850 class=ine" ndriva49_ @entry:9+codeiddrivers/psref">PD9_OK /95ne" h}95f> 194&8oL205" 4            spa" class9n       a9h4ule.c#Lwhen 2eading th9re hr95o*ntrine4 href432ers/parisc/pdc_stable.c#L219n class=i9owsref(struct  a href="+9ode=p95s/pars="srefDCe=4evs class="sref"> * a href_grouph"37459ref"le.c * a href_group/a> =ers/p5ri2" class=in/ * adgrouph"37459ref"le.cs=in/ * adgroupr10t wrount must be word at.2; alayer8nd cosref9e=de4ice_945ref="dr2accesparisc/pd9_stab957="+co4f="+corisc/pdc_stable.93" #ones,r195ftouch * a#s/pa write to. /spae3rp4="dLubsys/ * a#ones,r195ftouche4="dLubsys/ * a#s/pa3f="r103f> e05er18850 class=ine" ndriva49_> * a hr92" " class=ineshowsref p9risc/958n00"}95f> 194&8oL205" 4            spa" class9n sref">P9ref">store /a>)(struc/a>9     95 /a>;5f> 194&8oL205" 4            spa" class9ass="sref9>devpath /4>;	9     960/pars="srefDCe=4evs class="sref">>, sizeof(* a href="+c4de=de46> * containing a" alr,node"ready com   )03" " r,node"readisf4=ine4 href432ers/parisc/pdc_stable.c#L219ac__ /a>,9ss=inesref2les, and ore 9ref="961/pars="srefDCe=4evs class="sref">>sech"37459ref"le.cksec" cl containing a" aleaths_>sech"37459ref"le.ceaths_>secisf4=ine4 href432ers/parisc/pdc_stable.c#L219arsass=in9de=EINV4L" class="sref">9INVAL9603" " class=ine" href="r103fclass+1/a>      9t="+c_dri9le.c#L227" idioL227" " c9ass=i96" href="r227f> 24th" class4ref4Osref">de4able.c#L156" idioL156" "4class457tr9t @entry:9 w
> spa" c32f> wrapper<9vers/96ne" href="r227f> 24ula24lass4ie4="dregister_7n&q46reies - Predioes iddri_3taies 4de=de4seforfsysfs usage)2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=9a       a9mnss=ia4ed ass=iect="r2 9ts w 96o*ntry struct. /spa"
	 spExtenf> 2layer (eg. SCSI00fs)ef=9a class=i9=ine" ndriva4ed adrivers9pa>  96s/parisc/pdc_stable.c#L230" idIt creates 4de=de4secoroespond" h=to eachtiddri_3tablwith nicefsysfs2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=9a=de4ice_9r /a4);	 *
 /shref=t6#Lks ne"the real device.tThis is wherart4atmagreftakes ilace: when2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=9f="r164f>9164 4a>   46 *
It can be9used 96temphntre : 0xa>         a hreregister" h=t4atLubsystem= * a hrefs dur" h=moduloLinit, eacht4de=de4 heraby2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=9f sref">P9.5" handdrivers4".c#L15794f">E96men38> * containi4g a" 4lreef created will show_93 t4atLysfs tree as aefolderf1ontain" h=filesr3s defersd2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=9o. /spae39efdrivers/ps=ine" hressr9udriv97"comment3> *
F38 now we do notby e" hr1ubsys/ * a[])2layer8 /a> spExtenf> 2layer (eg. SCSI00fs)ef=9o clc/pdc9 idioL148" " for6P6h.5" 9anddr97ode=entre : 0xa>         a hrine" href="r103f> e05er18850 class=ine" ndriva49oss="ass=9m4nt"> 47ref=" f7f>  6;h9ef="r972="+cs="sref">pdcsrima c103inf=" f7v /a>);	__initf7v /a>);	de3path /a> = &a9o @entry:9s=ine" hressreu="+c_driv9odei 97risc/ount must be word at.2; alayer8nd cosref9ssreuto_=9+codeiddrivers/already r9tab.c97
	idev /a>);	p=ine" hr46ref="drivers/0x%=ine" hr46ref" cl containing a" al46ref="drivers/0xŚref" clable.c#L193" idioL193" " class=ine" href9s=de4ice_9DC_OK"  is likely th"com9  sss97" class="4refinevs class="sref">er 4dioL1495452erser " clable.c#L193" idioL193" " class=ine" href9s="r164f>9sref">store /a>href3e>de9path397e= * a href="ine4 href432ers/parisc/pdc_stable.c#L219e" for6P69ule.c#Lwhen 2eading ther9 href97f="+co4f="+coi>ready /a> = 2;	       4str ",ntryfor9P6hre98un00" "unquotforf=4>,  347d3 th24idev /a>);	,  347d3 th2446ref="drivers/0xŚref" cl write to. /spae3rp4="e" hr46reiesones,r195ftouche4="e" hr46reiess/pa[4>,  347d3 th24idev /a>);	);	de3path /a> = &a9  a hreoL900" " class=ine25="3e.c#9157"3981="+co4f="+co= &4  a href="+code=harrw" " _initf7v /a>);	store /a> /a>     49 retu983n00" "unquotforf=4>,  347d3 th24idev /a>);	,  347d3 th2446ref="drivers/0xŚref" cl write to. /spae3rp4="e" hr46reiesones,r195ftouche4="e" hr46reiess/pa[4>,  347d3 th24idev /a>);	);	er 4dioL1495452erser " cl write to. /spae3rp4="e" hrfetch4dioL1495452erss=ine" hrfetch" class=ine" href="r46ref="drivers/0xŚref" cls=ine4 href432ers/parisc/pdc_stable.c#L219hass=ines9213 /45ntrntaining a" al9eady 98rs/parisc/pCAP_SYS_AD" class=ine" hr hrefsun21" idioL221" " cla hrefsun21" sref"="dri4ers/p46ref="dc46ref="drivers/0xŚref" clf="r103f> e0ver188"aris4able.c#L241" idioL231" " class=ine4 href432ers/parisc/pdc_stable.c#L219h=de4ice_93 /45ntrntaining a" alre9dy co98npopus="comment">/* kobject is alr,node=stor9#L192" id9iv_sioL192" "3ref3e>de4a9f> 18988n00" "unquot; "r139fref=4>,  347d3 th24er 4dioL1495452erser " cl &layp0ref="r195f> 195 3"sref">de3path /a> = &a9 " for6P69sref">store /a> n cor+ c9ss="398 /a>;	      9t a hreoL9" hand4;dc_staba" class=9co   991="+co4f="+co= &4  a href="+code=har46ref="drivers/0xŚref" clf="r103f> e0ver188"aready com   )03" " class=inrisc/pdc_stable.>sech"37459ref"le.cksec" cl write to. /spae3rpaths_>sech"37459ref"le.ceaths_>secisf4=ine4 href432ers/parisc/pdc_stable.c#L219tss="ass=9f " class=th.5" a" class9"co  99pdc_stab " clrisc/pCAretty pri classer 4dioL1495452erser " cl write to. /spae3r4de=de4_init_and_adodev /a>);	 e05er18850 class=ine" ndriva49y class="900" " class=inei/a>     9- Thi99ayer f="drd]: f="drda9ffffffffffffffffffffsc/pCAr>ready /a> =DCe" h">iu_6 A%siu_6 Ane" hre,  class=ine" h4u46ref="drivers/0xŚref" clf="r103f> e0ver188"aa>  ="drivers/0xa>  class=ine4 href432ers/parisc/pdc_stable.c#L219yss="sref9/ass=s_sube.c=ine"/paris9/pdc_99Nu_6 A"f hreIo4f="+coref=4>,  347d3 th24er 4dioL1495452erser " clref="r195f> 195 3"sref">de3path /a> = &a9yc_drivco9=s_ine" f> e0v452eaaaaaa9e shr995dc_stab " clrisc/pCAaaaaaaffref=4driv34s/pa37ntry"er 4dioL1495452erser " clable.c#L193" idioL193" " class=ine" href93f> 243  9s=s_ine" ode=r452eaaaaaa9e shr99rs/pable.c#L193" idioL193" " class=ine" href93=de4ice_9ref"49225" " class=ine" 9ref="997n00" "unquot; "r139fi>ready /a> = 2;	de4/9arisc998n00" "unquot; "r139f" class=ine" hr hrefs21" idioL221" " cla hrefs21" sref"="dri4ers/p46ref="dc46ref="drivers/0xŚref" clf="r103f> e0ver188"aris4able.c#L241" idioL231" " class=ine4 href432ers/parisc/pdc_stable.c#L2193" for6P69sref">store /a>="layers199  6r99 /a>;	store /a>="layers110/pd>10/p/a>;	storedoa>="_sta9f/d0/2b7d872581b0d33112fde87deff86585f99d_3/10/pd>ne4 href432ers/parisc/pdc_stable.c#L2110/1dc_stab10/ hand4;dc_staba" class=10/ h>10/1="+co4f="+co= &4  a h>ready /a> = 2;	10/pdc_stab " clrisc/pCAref=4>,  347d3 th24e6ref="drivers/0xŚref" clf="r103f> e0ver188"adev="drivers/0xdevclassrount must be word at.2; alayer8nd cosref10/3dc_stab10/0" " class=inei/a>     10/0">10/ayer f="drd]: f="drda9fffffffretty pri classer 4dioL1495452erser " cl write to. /spae3rLysfs_create_6#Lky com   )03" " rysfs_create_6#Lksref"="dri4ers/p46ref="dc46ref="drivers/0xŚref" clf="r103f> e0ver188"aready com   )03" " class=iner="dri4ers/p46ref="dce6ref="drivers/0xŚref" clf="r103f> e0ver188"adev="drivers/0xdevclasf="r103f> e0ver188"aready com   )03" " class=inerr>ready /a> =DCe" h">iu_6 Adeviceiu_6 Ane" hres=ine4 href432ers/parisc/pdc_stable.c#L2110/4dc_stab10/ass=s_sube.c=ine"/paris10/as>10/Nu_6 A"f hreIo4f="+co9fffffffretty pri classWARN_ONh"37459ref"le.cWARN_ON" class=ine" href="r4r 4dioL1495452erser " clr=ine4 href432ers/parisc/pdc_stable.c#L2110/5dc_stab10/s_ine" f> e0v452eaaaaaa10/s_>10/5dc_stab " clrisc/pCAbs="comment">/* kobject is alr,node=stor10/6dc_stab10/=s_ine" ode=r452eaaaaaa10/=s>10/rs/pable.c#L193" idioL193" " class=ine" href10/7dc_stab10/ef"49225" " class=ine" 10/ef>10/7n00" "unquot; "r139fi class=ine" hr hrefsun21" idioL221" " cla hrefsun21" sref"="dri4ers/p46ref="dc46ref="drivers/0xŚref" clf="r103f> e0ver188"aris4able.c#L241" idioL231" " class=ine4 href432ers/parisc/pdc_stable.c#L2110/8dc_stab10/v_sioL192" "+ref3e>de4/10/v_>10/8n00" "unquot; "r139f" class=ine" hr4de=de4_ueve ch"37459ref"le.c4de=de4_ueve csref"="dri4ers/p46ref="dc46ref="drivers/0xŚref" clf="r103f> e0ver188"aready com   )03" " class=iner03f> e0ver188"aKOBJDDrey com   )03" " KOBJDDreclass=ine4 href432ers/parisc/pdc_stable.c#L2110/9dc_stab10/ref">store /a>="layers110/re>10/ /a>;	/* kobject is alr,node=stor101pdc_stab10ine" href="r103f> e0ver110ine>10in= * a href="ine4 href432ers/parisc/pdc_stable.c#L2110i1dc_stab10ersass=ine" href="layers10ers>10i1="+co4f="+coref=4dr0=ine4 href432ers/parisc/pdc_stable.c#L211012dc_stab10"r209f> 209 /a> 4     4110"r2>10ipdc_sbs="comment">/* kobject is alr,node=stor1013dc_stab10 */ /spa"
	10ine" href="r227f> 24ula24lasref4Osref">de4able.c#L156" idioL156" "4class457tr10i5dc_stab10 already rrrNUL40" ",n1010 al>10io*ntry struct. /spa"
	 spExtenf> 2layer (eg. SCSI00fs)ef=10i6dc_stab10dr /a4);	10is/parisc/pdc_stable.c#L230" iine" href="r103f> e05er18850 class=ine" ndriva410i7dc_stab10/a>         a href="+cod10/a>>10i25c_ss="sref">pdcsrima c103inf=" f7v /a>);	10i8yer ite to. /spae3rp4="dunregister_7n&q46reiesones,r195ftouche4="dunregister_7n&q46reies" clavoidref="r195f> 195 3"sref">de3path /a> = &a10i9dc_stab10C_OK /a>) {	=> * a hr2f=10C_O>10i9isc/ount must be word at.2; alayer8nd cosref102pdc_stab10quot;It is likely th"com10quo>10qu	idev /a>);	)	p=ine" hr46ref="drivers/0x%=ine" hr46ref" cl containing a" al46ref="drivers/0xŚref" clable.c#L193" idioL193" " class=ine" href10q2dc_stab10 /a>(1);	        	10q3n00" "unquotforf=4>,  347d3 th24idev /a>);	,  347d3 th2446ref="drivers/0xŚref" cl write to. /spae3rp4="e" hr46reiesones,r195ftouche4="e" hr46reiess/pa[4>,  347d3 th24idev /a>);	);	         a href="+c105 />10qNu_6 A"f hreIo4f="+co" class=ine" hrreads4able.c#L241" idioL2eads4ablsref"="dri4ers/p46ref="dc46ref="drivers/0xŚref" clf="r103f> e0ver188"aris4able.c#L241" idioL231" " class=ine4 href432ers/parisc/pdc_stable.c#L211025dc_stab10lass=ine" href420f> 220 10las>10q5dc_stab " clrisc/pCAref=4>,  347d3 th24e6ref="drivers/0xŚref" clf="r103f> e0ver188"areadf="drivers/0xreadf" cl ="r1= 2ref="r195f> 195 3"sref">de3path /a> = &a1026dc_stab1042	10qrs/parisc/pCAP_SYS_ADaaaaaaaa" class=ine" hr4de=de4_puch"37459ref"le.c4de=de4_pucsref"="dri4ers/p46ref="dc46ref="drivers/0xŚref" clf="r103f> e0ver188"aready com   )03" " class=ins=ine4 href432ers/parisc/pdc_stable.c#L211027dc_stab10ine" href="r103f> e0ver110ine>10q7n00" "unquot; "r139fi class=ine" hr2eadsun21" idioL221" " cla2eadsun21" sref"="dri4ers/p46ref="dc46ref="drivers/0xŚref" clf="r103f> e0ver188"aris4able.c#L241" idioL231" " class=ine4 href432ers/parisc/pdc_stable.c#L211028dc_stab10e.c#L199" idioL199" " cl10e.c>10q8n00" "unquotbs="comment">/* kobject is alr,node=stor1029dc_stab10lass="sref">entry /a>-&g10las>10q9dc_sbs="comment">/* kobject is alr,node=stor103pdc_stab10s/parisc/pdc_4table42ref10s/p>10s/3;	10sode=entre : 0xa>         a /f4Osref">de4able.c#L156" idioL156" "4class457tr1032dc_stab10" href="layers199 ,npdc_10" h>10s4>;	de4able.c#L156" idioL156" "4class457tr1033dc_stab10ref="+4flass="sr4ine" hr10ref>10s" href="r227f> 24th" class4"s and t4ateathstLubsystem=with t4atLlass4tLubsystem4Osref">de4able.c#L156" idioL156" "4class457tr1034dc_stab10oL192" " class=ine" href10oL1>10sne" href="r227f> 24ula24lass4ine" href="r103f> e05er18850 class=ine" ndriva41035dc_stab10hreoL100" " class=ine" h10hre>10so*ntrs="srefinevs class="sref">__initf7v /a>);	10s6yer ite to. /spae3rp4=lr,node"initf7v /a>);	de3path /a> = &a1037dc_stab10L216" idioL216" " class=10L21>10s25c_sount must be word at.2; alayer8nd cosref10s8dc_stab10225" idiclass="sref">ent10225>10s8s/parisc/pCArnevs class="sref">redev /a>);	( spa" class="str10NTK>10sf="+co4f="+coiclass=ine" h4uu32dev /a>);	;	);	)(struc/a>         a h10a>)>10a>3" " class=ine" href="r103fclass+1/a>      1041dc_stab10ath"437try" clc/pdc_sta210ath>10a1="+co4f="+cod>ready /a> = 2;	10a2="+co4f="+coref=4>,  347d3 th24p4=lr,node"getdL225dev /a>);	);	       4struct  a href10a> >10aayer f="drd]: f="drda 3 href2 ers/ps=ine" hreNODEVdev /a>);	10a" cl3/ers/pari351ref"5de4p0f}is alr,node=sto10a5dc_stab10t"> *
> spa" c32f> wrapp10t">>10a
	10ars/parisc/pCAref=4>,  347d3 th24p4="dL225dev /a>);	 195 3"sref">de3path /a> = &a10a7dc_stab10h4ef="r44#L183" idioL18310h4e>10a7n00" "unquot; "r139f 3 href2 ers/ps=ine" hreNODATAdev /a>);	 113 /a4};	10aath_attribute /4>,  a4938 *
}is alr,node=sto10a9dc_stab10ref=4+code44ref="dc_stab10ref>10af="+co4f="+coiclass=ine" h4uprrnele.c#L241" idioLprrnel" class=ine" href="rKERN_INFO;href="r196f> 1KERN_INFO>;	 sADPREFIX;href="r196f> 1> sADPREFIX>;	ready /a> =DCe" h">iu_6 A facility v%s\niu_6 Ane" hre,  class=ine" h4u> sADVERSIONh"37459ref"le.c> sADVERSIONclass=ine4 href432ers/parisc/pdc_stable.c#L21105pdc_stab10to write to. /spae3refss10to >10toth_attribute /4>,  a4938 *
}is alr,node=sto1051dc_stab10 4 href44#L228 f7f>  6;h10 4 >10t1="+co4f="+cod>ready /a> = 2;	10t2="+co4f="+coref=4>,  347d3 th24p4=lr,node""shodev /a>);	 sADDref=OSIes=iner="dri4ers/p46ref="dc2esultf7v /a>);	st_OKdev /a>);	 s_OKe" href="r195f> 195 3"sref">de3path /a> = &a10t3dc_stab10s=ine" hressreu="+c_driv10s=i>10tayer f="drd]: f="drda 3 href2 ers/ps=ine" hrefO;href="r196f> 196O="r195f> 194&8oL205" 4            spa" class10t4dc_stab10+codeiddrivers/psref">PD10+co>10t" cl3/ers/pari351ref"5de4p0f}is alr,node=sto1055dc_stab10h4ule.c#Lwhen 2eading th10h4u>10t
	,  347d3 th24udr /a4);	/* kobject is alr,node=stor10t8dc_stab102" " class=ineshowsref p102" >10t8	store /a>)(struc/a>10ref>10tf="+co4f="+coiclass=ine" h4ur,node"ready com   )03" " r,node"readisf4 write to. /spae3r4de=de4_create_and_adodev /a>);	ready /a> =DCe" h">iu_6 Ar,nodeiu_6 Ane" hre,  class=ine" h4ufirmwar4"ready com   )03" " firmwar4"readclass=ine4 href432ers/parisc/pdc_stable.c#L21106pdc_stab10>devpath /4>;	10>de>10>d="+co4f="+coref=4r195f4 195i ersr,node"ready com   )03" " r,node"readisf4rroune4 href432ers/parisc/pdc_stable.c#L211061dc_stab10ss=inesref2les, and ore 10ss=>10>1="+co4f="+co= &4  a href="+code=harredev /a>);	 194&8oL205" 4            spa" class1062dc_stab10de=EINV4L" class="sref">10de=>10>pdc_stab " clrisc/pCAgoto  class=ine" h4ufail_firmregy com   )03" " fail_firmreg="r195f> 194&8oL205" 4            spa" class1063dc_stab10le.c#L227" idioL227" " c10le.>10>ayer f="drd]:bs="comment">/* kobject is alr,node=stor1064dc_stab10 w
> spa" c32f> wrapper<10 w
>10>" cl3/ers/pari351ref"5de4p0f}is alr,node=sto1065dc_stab10mnss=ia4ed ass=iect="r2 10mns>10>
	10>6="+co4f="+coiclass=ine" h4u4rro 4dioL1495452erser o " cl wrr195f4 195i ersrysfs_create_grouph"37459ref"le.crysfs_create_group" class=ine" href="rr,node"ready com   )03" " r,node"readisf4er="dri4ers/p46ref="dcp=in/ * adgrouph"37459ref"le.cs=in/ * adgroupr10ts=ine4 href432ers/parisc/pdc_stable.c#L211067dc_stab10r /a4);	10>npopus="comment">/* kobject is alr,node=stor1068dc_stab10164 4a>   46 *
It can be10164>10>8	10>f="+co4f="+coiclass=ine" h4upaths_>sech"37459ref"le.ceaths_>secisf4 write to. /spae3r4sec_create_and_adodev /a>);	ready /a> =DCe" h">iu_6 Aeathsiu_6 Ane" hre,  class=ine" h4uNUL6;href="r196f> 1NUL6isf43oiclass=ine" h4ur,node"ready com   )03" " r,node"readisf4s=ine4 href432ers/parisc/pdc_stable.c#L21107pdc_stab10efdrivers/ps=ine" hressr10efd>10ef="+co4f="+coref=4r195f4 195i erspaths_>sech"37459ref"le.ceaths_>secisf4rroune4 href432ers/parisc/pdc_stable.c#L211071dc_stab10 idioL148" " for6P6h.5" 10 id>10e1="+co4f="+co= &4  a href="+code=harredev /a>);	 194&8oL205" 4            spa" class1072dc_stab10m4nt"> 47ref=" f7f>  6;h10m4n>10epdc_stab " clrisc/pCAgoto  class=ine" h4ufail_>secregy com   )03" " fail_>secreg="r195f> 194&8oL205" 4            spa" class1073dc_stab10 a hreoL100" " class=ine10 a >10eayer f="drd]:bs="comment">/* kobject is alr,node=stor1074dc_stab10s=ine" hressreu="+c_driv10s=i>10e" cl3/ers/pari351ref"5de4p0f}is alr,node=sto1075dc_stab10+codeiddrivers/already r10+co>10e
	10ers/parisc/pCAref=ass=ine" href="r2edev /a>);	de3path /a> = &a10e7dc_stab10DC_OK"  is likely th"com10DC_>10e7n00" "unquot; "r139fgoto  class=ine" h4ufail_e4="regy com   )03" " fail_e4="reg="r195f> 194&8oL205" 4            spa" class1078dc_stab10sref">store /a>href3e>de10sre>10eath_attribute /4>,  a4938 *
}is alr,node=sto1079dc_stab10ule.c#Lwhen 2eading ther10ule>10ef="+co4f="+coref=4driv34s/pa37ntry"2edev /a>);	 194&8oL205" 4            spa" class108pdc_stab104a>       4str ",ntryfor104a>>104a= * a href="ine4 href432ers/parisc/pdc_stable.c#L211081dc_stab1000" " class=ine25="3e.c#1000">1041yer ite to. /spae3rfail_e4="regy com   )03" " fail_e4="reg="r1:ine4 href432ers/parisc/pdc_stable.c#L211082dc_stab108tore /a>)(strshowsref p108to>1042="+co4f="+coiclass=ine" h4up4="dunregister_7n&q46reiesones,r195ftouche4="dunregister_7n&q46reies" clas=ine4 href432ers/parisc/pdc_stable.c#L211083dc_stab10ref">store /a> /a>     410ref>104 /a> = &4  a href="+code=har4sec_unregisterdev /a>);	secisf4r=ine4 href432ers/parisc/pdc_stable.c#L211084dc_stab10>devpath /4>;	de>1044= * a href="ine4 href432ers/parisc/pdc_stable.c#L211085dc_stab10ei cl " class=ine" op/pa10ei >1045yer ite to. /spae3rfail_>secregy com   )03" " fail_>secreg="r1:ine4 href432ers/parisc/pdc_stable.c#L211086dc_stab10213 /45ntrntaining a" al10213>1046="+co4f="+coiclass=ine" h4u4de=de4_puch"37459ref"le.c4de=de4_pucsref"iclass=ine" h4ur,node"ready com   )03" " r,node"readisf4s=ine4 href432ers/parisc/pdc_stable.c#L211087dc_stab103 /45ntrntaining a" alre103 />1047= * a href="ine4 href432ers/parisc/pdc_stable.c#L211088dc_stab10iv_sioL192" "3ref3e>de4a10iv_>1048yer ite to. /spae3rfail_firmregy com   )03" " fail_firmreg="r1:ine4 href432ers/parisc/pdc_stable.c#L211089dc_stab10sref">store /a> n cor+ c10sre>104f="+co4f="+coiclass=ine" h4uprrnele.c#L241" idioLprrnel" class=ine" href="rKERN_INFO;href="r196f> 1KERN_INFO>;	 sADPREFIX;href="r196f> 1> sADPREFIX>;	ready /a> =DCe" h">iu_6 A bail" h=out\niu_6 Ane" hres=ine4 href432ers/parisc/pdc_stable.c#L21109pdc_stab1033" /*  mosss=inea hrewo1033">1033="+co4f="+coref=4driv34s/pa37ntry"2edev /a>);	 194&8oL205" 4            spa" class1091dc_stab10" hand4;dc_staba" class=10" h>1031dc_sbs="comment">/* kobject is alr,node=stor1092dc_stab10f " class=th.5" a" class10f ">10303" " class=ine" href="r103fclass+1/a>      1033dc_stab1000" " class=inei/a>     1000">103" hres="srefvoidvs class="sref">__exitf7v /a>);	1034yer ite to. /spae3rp4=lr,node"exitf7v /a>);	de3path /a> = &a1095dc_stab10=s_ine" f> e0v452eaaaaaa10=s_>10355c_sount must be word at.2; alayer8nd cosref1096dc_stab10s=s_ine" ode=r452eaaaaaa10s=s>1036="+co4f="+coiclass=ine" h4up4="dunregister_7n&q46reiesones,r195ftouche4="dunregister_7n&q46reies" clas=ine4 href432ers/parisc/pdc_stable.c#L211097dc_stab10ref"49225" " class=ine" 10ref>1037/a> = &4  a href="+code=har4sec_unregisterdev /a>);	secisf4r=ine4 href432ers/parisc/pdc_stable.c#L211098dc_stab10iv_sioL192" "+ref3e>de4/10iv_>1038="+co4f="+coiclass=ine" h4u4de=de4_puch"37459ref"le.c4de=de4_pucsref"iclass=ine" h4ur,node"ready com   )03" " r,node"readisf4s=ine4 href432ers/parisc/pdc_stable.c#L211099dc_stab10sref">store /a>="layers110sre>1039dc_sbs="comment">/* kobject is alr,node=stor11/pdc_stab11/pdc">store /a>="layers111/pd>110oth_attribute /4>,  a4938 *
}is alr,node=sto11/1dc_stab11/ hand4;dc_staba" class=11/ h>110ble.b5f> 194&8oL205" 4            spa" class1102dc_stab11/ " class=th.5" a" class11/ ">11/pdc_siclass=ine" h4umodulo"initf7v /a>);	);	     11/0">110ayer ite to. /spae3rmodulo"exitf7v /a>);	);	11/Nu_6 
dioLoriginal LXR softwar4tby t4atne4 href4http://sourceforge.net/pro=de4s/lxrd>LXR 2; unityisf43othis experi lxr@.c=ux.noisf4. lxr..c=ux.no kindly hosted by ne4 href4http://www.redpill-.c=pro.no">Redpill Lc=pro ASisf43oproviderfof Lc=uxf1onsult" h= nd oper"srons services since 1995.