The SHELL_PARAMETERS_PROTOCOL used by the pci command lists both the command 
line and the StdIn for the command.  I think that you could check the StdIn for 
the file specified and then change the behavior.

If we really require a parameter to enable some sort of file input mode, the 
spec says that implementers can freely add -_<blah> parameters.  In the past 
these have even been moved to standard parameters in future versions of the 
spec (-_exit is an example that springs to mind for me).

I also agree that your sample NSH file is definitely the quickest way to get a 
solution in this case.

-Jaben

> -----Original Message-----
> From: jim.dai...@dell.com [mailto:jim.dai...@dell.com]
> Sent: Thursday, September 21, 2017 6:32 AM
> To: Carsey, Jaben <jaben.car...@intel.com>
> Cc: edk2-devel@lists.01.org; tiger...@zhaoxin.com
> Subject: RE: [edk2] Shell input redirection question
> Importance: High
> 
> I think the technicality here is that given "pci < inputfile", no
> parameters are passed to the pci command, so it should, according to
> the spec, display all the devices.
> 
> Another problem may be that in the "pci < inputfile" case, the pci
> command has no way to know that its input is being redirected and that
> it should behave differently than normal. I may be wrong about that
> point; I know it is possible, but it might require some sort of generic
> change or addition to the shell's behavior.
> 
> A different tack would be to add (in a future spec version) a command
> line argument that simply indicated to pci that its input (commands)
> are in some file (e.g. "pci -cmdfile inputfile"). Of course, if that
> were to happen, the new spec should also specify the format of the
> command file's content.
> 
> A simple way to do what Tiger was trying and that works right now is
> to create a shell script instead of an input file:
> 
>     @echo -off
>     pci 00 00 01 -i
>     pci 00 00 02 -i
> 
> Regards,
> Jim
> 
> -----Original Message-----
> From: Carsey, Jaben [mailto:jaben.car...@intel.com]
> Sent: Thursday, September 21, 2017 8:11 AM
> To: Dailey, Jim <jim_dai...@dell.com>; tiger...@zhaoxin.com
> Cc: edk2-devel@lists.01.org
> Subject: RE: [edk2] Shell input redirection question
> 
> If the requirement for PCI to display the information when there are no
> parameters present, I see no reason that it could not also use a file for 
> input.
> i.e. "pci" must act according to the spec, but "pci < inputfile" is not 
> prohibited.
> I think that as no code currently uses PCI with file input as long as current
> behavior still works it should be fine.
> 
> I would think that would be a great improvement for the PCI command.
> 
> -Jaben
> 
> > -----Original Message-----
> > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of
> > jim.dai...@dell.com
> > Sent: Thursday, September 21, 2017 4:52 AM
> > To: tiger...@zhaoxin.com
> > Cc: edk2-devel@lists.01.org
> > Subject: Re: [edk2] Shell input redirection question
> > Importance: High
> >
> > The shell's pci command was not written to read from standard input. It
> > expects all its input on the command line.
> >
> > I would say in general that if you execute a command and pass it no
> > parameters, and it then prompts you in some way for input, then that
> > command will likely accept input redirected from a file.
> >
> > If you execute pci without any parameters, it simply lists all the
> > devices in the system and terminates, so it clearly is not prepared to
> > read from standard input (or a redirected file).
> >
> > It is strictly up to whomever writes a program/command whether they do
> > so in a manner that allows it to accept input from standard input. For
> > example, I have written a grep utility for the shell that expects one or
> > more filenames to search to be on the command line; however, if there
> > are no filenames on the command line, the utility searches standard
> > input.
> >
> > Regards,
> > Jim
> >
> > -----Original Message-----
> > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of
> > Tiger Liu
> > Sent: Thursday, September 21, 2017 1:11 AM
> > To: edk2-devel@lists.01.org
> > Subject: [edk2] Shell input redirection question
> >
> > Hi, experts:
> > I have a question about input redirection in Shell environment.
> >
> > Take pci command as sample.
> > I wrote a txt file(file name is : inputsample.txt), its content is:
> > 00 00 01 -i
> > 00 00 02 –i
> >
> > It means I just wanted to dump D0F1/D0F2’s config space.
> >
> > Then, I use this command sequence in shell :
> > pci <a inputsample.txt
> >
> > But it seems not recognize this input file’s content.
> >
> > Why?
> >
> > Thanks
> >
> > best wishes,
> >
> >
> > 保密声明:
> > 本邮件含有保密或专有信息,仅供指定收件人使用。严禁对本邮
> 件
> > 或其内容做任何未经授权的查阅、使用、复制或转发。
> > CONFIDENTIAL NOTE:
> > This email contains confidential or legally privileged information and is 
> > for
> the
> > sole use of its intended recipient. Any unauthorized review, use, copying or
> > forwarding of this email or the content of this email is strictly 
> > prohibited.
> > _______________________________________________
> > edk2-devel mailing list
> > edk2-devel@lists.01.org
> > https://lists.01.org/mailman/listinfo/edk2-devel
> > _______________________________________________
> > edk2-devel mailing list
> > edk2-devel@lists.01.org
> > https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to