mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-20 20:03:54 +08:00
I learned how to spell PSEUDO
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@5010 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
@@ -30,5 +30,5 @@ device.c
|
||||
|
||||
device.c implements a simple device driver. Reads from this device
|
||||
will access the in-memory copy of hello.pex This device driver is
|
||||
registered as /dev/pashello in the psuedo filesystem.
|
||||
registered as /dev/pashello in the pseudo filesystem.
|
||||
|
||||
|
||||
@@ -505,14 +505,14 @@ o mkfatfs <path>
|
||||
|
||||
Format a fat file system on the block device specified by path.
|
||||
NSH provides this command to access the mkfatfs() NuttX API.
|
||||
This block device must reside in the NuttX psuedo filesystem and
|
||||
This block device must reside in the NuttX pseudo filesystem and
|
||||
must have been created by some call to register_blockdriver() (see
|
||||
include/nuttx/fs/fs.h).
|
||||
|
||||
o mkfifo <path>
|
||||
|
||||
Creates a FIFO character device anywhere in the pseudo file system,
|
||||
creating whatever psuedo directories that may be needed to complete
|
||||
creating whatever pseudo directories that may be needed to complete
|
||||
the full path. By convention, however, device drivers are place in
|
||||
the standard /dev directory. After it is created, the FIFO device
|
||||
may be used as any other device driver. NSH provides this command
|
||||
@@ -584,7 +584,7 @@ o mount [-t <fstype> <block-device> <dir-path>]
|
||||
|
||||
If the mount parameters are provied on the command after the 'mount'
|
||||
command, then the 'mount' command will mount a file system in the
|
||||
NuttX psuedo-file system. 'mount' performs a three way association,
|
||||
NuttX pseudo-file system. 'mount' performs a three way association,
|
||||
binding:
|
||||
|
||||
File system. The '-t <fstype>' option identifies the type of
|
||||
@@ -592,19 +592,19 @@ o mount [-t <fstype> <block-device> <dir-path>]
|
||||
of this writing, vfat is the only supported value for <fstype>
|
||||
|
||||
Block Device. The <block-device> argument is the full or relative
|
||||
path to a block driver inode in the psuedo filesystem. By convention,
|
||||
path to a block driver inode in the pseudo filesystem. By convention,
|
||||
this is a name under the /dev sub-directory. This <block-device>
|
||||
must have been previously formatted with the same file system
|
||||
type as specified by <fstype>
|
||||
|
||||
Mount Point. The mount point is the location in the psuedo file
|
||||
Mount Point. The mount point is the location in the pseudo file
|
||||
system where the mounted volume will appear. This mount point
|
||||
can only reside in the NuttX psuedo filesystem. By convention, this
|
||||
can only reside in the NuttX pseudo filesystem. By convention, this
|
||||
mount point is a subdirectory under /mnt. The mount command will
|
||||
create whatever psuedo directories that may be needed to complete
|
||||
create whatever pseudo directories that may be needed to complete
|
||||
the full path but the full path must not already exist.
|
||||
|
||||
After the volume has been mounted in the NuttX psuedo file
|
||||
After the volume has been mounted in the NuttX pseudo file
|
||||
system, it may be access in the same way as other objects in the
|
||||
file system.
|
||||
|
||||
|
||||
@@ -88,12 +88,12 @@
|
||||
# define MAX_ARGV_ENTRIES (NSH_MAX_ARGUMENTS+4)
|
||||
#endif
|
||||
|
||||
/* Help layout */
|
||||
/* Help command summary layout */
|
||||
|
||||
#define MAX_CMDLEN 12
|
||||
#define CMDS_PER_LINE 5
|
||||
#define CMDS_PER_LINE 6
|
||||
|
||||
#define NUM_CMDS (sizeof(g_cmdmap)/sizeof(struct cmdmap_s))
|
||||
#define NUM_CMDS ((sizeof(g_cmdmap)/sizeof(struct cmdmap_s)) - 1)
|
||||
#define NUM_CMD_ROWS ((NUM_CMDS + (CMDS_PER_LINE-1)) / CMDS_PER_LINE)
|
||||
|
||||
/****************************************************************************
|
||||
@@ -443,7 +443,7 @@ static inline void help_cmdlist(FAR struct nsh_vtbl_s *vtbl)
|
||||
for (i = 0; i < NUM_CMD_ROWS; i++)
|
||||
{
|
||||
nsh_output(vtbl, " ");
|
||||
for (j = 0, k = i; j < CMDS_PER_LINE && k < NUM_CMDS; j++, k += CMDS_PER_LINE)
|
||||
for (j = 0, k = i; j < CMDS_PER_LINE && k < NUM_CMDS; j++, k += NUM_CMD_ROWS)
|
||||
{
|
||||
nsh_output(vtbl, "%-12s", g_cmdmap[k].cmd);
|
||||
}
|
||||
@@ -516,6 +516,7 @@ static int help_cmd(FAR struct nsh_vtbl_s *vtbl, FAR const char *cmd)
|
||||
{
|
||||
/* Yes... show it */
|
||||
|
||||
nsh_output(vtbl, "%s usage:", cmd);
|
||||
help_showcmd(vtbl, cmdmap);
|
||||
return OK;
|
||||
}
|
||||
@@ -574,14 +575,14 @@ static inline void help_builtins(FAR struct nsh_vtbl_s *vtbl)
|
||||
static int cmd_help(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
|
||||
{
|
||||
FAR const char *cmd = NULL;
|
||||
#ifdef CONFIG_NSH_HELP_TERSE
|
||||
#ifndef CONFIG_NSH_HELP_TERSE
|
||||
bool verbose = false;
|
||||
int i;
|
||||
#endif
|
||||
|
||||
/* The command may be followed by a verbose option */
|
||||
|
||||
#ifdef CONFIG_NSH_HELP_TERSE
|
||||
#ifndef CONFIG_NSH_HELP_TERSE
|
||||
i = 1;
|
||||
if (argc > i)
|
||||
{
|
||||
@@ -618,14 +619,13 @@ static int cmd_help(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
|
||||
{
|
||||
/* Yes.. show the single command */
|
||||
|
||||
nsh_output(vtbl, "%s usage:", cmd);
|
||||
help_cmd(vtbl, cmd);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* In verbose mode, show detailed help for all commands */
|
||||
|
||||
#ifdef CONFIG_NSH_HELP_TERSE
|
||||
#ifndef CONFIG_NSH_HELP_TERSE
|
||||
if (verbose)
|
||||
{
|
||||
nsh_output(vtbl, "Where <cmd> is one of:\n");
|
||||
@@ -637,7 +637,6 @@ static int cmd_help(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
|
||||
else
|
||||
#endif
|
||||
{
|
||||
nsh_output(vtbl, "help usage:");
|
||||
help_cmd(vtbl, "help");
|
||||
nsh_output(vtbl, "\n");
|
||||
help_cmdlist(vtbl);
|
||||
|
||||
+204
-204
@@ -1,204 +1,204 @@
|
||||
/***********************************************************************
|
||||
* podefs.h
|
||||
* Logical P-code operation code definitions
|
||||
*
|
||||
* Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
***********************************************************************/
|
||||
|
||||
#ifndef __PODEFS_H
|
||||
#define __PODEFS_H
|
||||
|
||||
/* These definitions represent logical operations as needed by the
|
||||
* the compiler. The specific INSN generation layer must interpret
|
||||
* these requests as is appropriate to the supported INSNS.
|
||||
*/
|
||||
|
||||
enum pcode_e
|
||||
{
|
||||
|
||||
/**-------------------------------------------------------------------
|
||||
* OPCODES WITH NO ARGUMENTS
|
||||
**-------------------------------------------------------------------**/
|
||||
|
||||
/* Program control (No stack arguments) */
|
||||
|
||||
opNOP = 0,
|
||||
|
||||
/* Arithmetic & logical & and integer conversions (One stack argument) */
|
||||
|
||||
opNEG, opABS, opINC, opDEC, opNOT,
|
||||
|
||||
/* Arithmetic & logical (Two stack arguments) */
|
||||
|
||||
opADD, opSUB, opMUL, opDIV, opMOD, opSLL, opSRL, opSRA, opOR, opAND,
|
||||
|
||||
/* Comparisons (One stack argument) */
|
||||
|
||||
opEQUZ, opNEQZ, opLTZ, opGTEZ, opGTZ, opLTEZ,
|
||||
|
||||
/* Comparisons (Two stack arguments) */
|
||||
|
||||
opEQU, opNEQ, opLT, opGTE, opGT, opLTE,
|
||||
opBIT,
|
||||
|
||||
/* Load Immediate */
|
||||
|
||||
opLDI, opLDIB, opLDIM,
|
||||
|
||||
/* Store Immediate */
|
||||
|
||||
opSTI, opSTIB, opSTIM,
|
||||
|
||||
/* Data stack */
|
||||
|
||||
opDUP, opPUSHS, opPOPS,
|
||||
|
||||
/* Program control (No stack arguments)
|
||||
* Behavior:
|
||||
* Pop return address
|
||||
* Pop saved base register (BR)
|
||||
* Discard saved base address
|
||||
* Set program counter (PC) to return address
|
||||
*/
|
||||
|
||||
opRET,
|
||||
|
||||
/* System Functions (No stack arguments) */
|
||||
|
||||
opEND,
|
||||
|
||||
/**-------------------------------------------------------------------
|
||||
** OPCODES WITH ONE ARGUMENT
|
||||
**-------------------------------------------------------------------**/
|
||||
|
||||
/* Floating point operations: arg = FP op-code */
|
||||
|
||||
opFLOAT,
|
||||
|
||||
/* Program control: arg = unsigned label (One stack argument) */
|
||||
|
||||
opJEQUZ, opJNEQZ,
|
||||
|
||||
/* Program control: arg = unsigned label (no stack arguments) */
|
||||
|
||||
opJMP,
|
||||
|
||||
/* Program control: arg = unsigned label (One stack argument) */
|
||||
|
||||
opJEQU, opJNEQ, opJLT, opJGTE, opJGT, opJLTE,
|
||||
|
||||
/* Load: arg = unsigned base offset */
|
||||
|
||||
opLD, opLDH, opLDB, opLDM,
|
||||
|
||||
/* Store: arg = unsigned base offset */
|
||||
|
||||
opST, opSTB, opSTM,
|
||||
|
||||
/* Load Indexed: arg = unsigned base offset */
|
||||
|
||||
opLDX, opLDXB, opLDXM,
|
||||
|
||||
/* Store Indexed: arg16 = unsigned base offset */
|
||||
|
||||
opSTX, opSTXB, opSTXM,
|
||||
|
||||
/* Load address relative to stack base: arg = unsigned offset */
|
||||
|
||||
opLA,
|
||||
|
||||
/* Load absolute stack address: arg = RODATA offset (No stack arguments) */
|
||||
|
||||
opLAC,
|
||||
|
||||
/* Data stack: arg = 16 bit signed data (no stack arguments) */
|
||||
|
||||
opPUSH, opINDS,
|
||||
|
||||
/* Load address relative to stack base: arg1 = unsigned offset, TOS=index */
|
||||
|
||||
opLAX,
|
||||
|
||||
/* System functions: arg = 16-bit library call identifier */
|
||||
|
||||
opLIB,
|
||||
|
||||
/* Program control: arg = unsigned label (no stack arguments) */
|
||||
|
||||
opLABEL,
|
||||
|
||||
/**-------------------------------------------------------------------
|
||||
** OPCODES WITH TWO ARGUMENTS
|
||||
**-------------------------------------------------------------------**/
|
||||
|
||||
/* Program Control: arg1 = level; arg2 = unsigned label */
|
||||
|
||||
opPCAL,
|
||||
|
||||
/* Load: arg1 = level; arg2 = signed frame offset */
|
||||
|
||||
opLDS, opLDSH, opLDSB, opLDSM,
|
||||
|
||||
/* Store: arg1 = level; arg2 = signed frame offset */
|
||||
|
||||
opSTS, opSTSB, opSTSM,
|
||||
|
||||
/* Load Indexed: arg1 = level; arg2 = signed frame offset */
|
||||
|
||||
opLDSX, opLDSXB, opLDSXM,
|
||||
|
||||
/* Store Indexed: arg1 = level; arg2 = signed frame offset */
|
||||
|
||||
opSTSX, opSTSXB, opSTSXM,
|
||||
|
||||
/* FOR LAS/LASX arg1 = level; arg2 = signed frame offset
|
||||
* (no stack arguments)
|
||||
*/
|
||||
|
||||
opLAS, opLASX,
|
||||
|
||||
/* System calls:
|
||||
* For SYSIO: arg1 = file number; arg2 = sub-function code
|
||||
*/
|
||||
|
||||
opSYSIO,
|
||||
|
||||
/* Psuedo-operations:
|
||||
* For LINE: arg1 = file number; arg2 = line number
|
||||
*/
|
||||
|
||||
opLINE,
|
||||
|
||||
NUM_OPCODES
|
||||
};
|
||||
|
||||
#endif /* __PODEFS_H */
|
||||
/***********************************************************************
|
||||
* podefs.h
|
||||
* Logical P-code operation code definitions
|
||||
*
|
||||
* Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
***********************************************************************/
|
||||
|
||||
#ifndef __PODEFS_H
|
||||
#define __PODEFS_H
|
||||
|
||||
/* These definitions represent logical operations as needed by the
|
||||
* the compiler. The specific INSN generation layer must interpret
|
||||
* these requests as is appropriate to the supported INSNS.
|
||||
*/
|
||||
|
||||
enum pcode_e
|
||||
{
|
||||
|
||||
/**-------------------------------------------------------------------
|
||||
* OPCODES WITH NO ARGUMENTS
|
||||
**-------------------------------------------------------------------**/
|
||||
|
||||
/* Program control (No stack arguments) */
|
||||
|
||||
opNOP = 0,
|
||||
|
||||
/* Arithmetic & logical & and integer conversions (One stack argument) */
|
||||
|
||||
opNEG, opABS, opINC, opDEC, opNOT,
|
||||
|
||||
/* Arithmetic & logical (Two stack arguments) */
|
||||
|
||||
opADD, opSUB, opMUL, opDIV, opMOD, opSLL, opSRL, opSRA, opOR, opAND,
|
||||
|
||||
/* Comparisons (One stack argument) */
|
||||
|
||||
opEQUZ, opNEQZ, opLTZ, opGTEZ, opGTZ, opLTEZ,
|
||||
|
||||
/* Comparisons (Two stack arguments) */
|
||||
|
||||
opEQU, opNEQ, opLT, opGTE, opGT, opLTE,
|
||||
opBIT,
|
||||
|
||||
/* Load Immediate */
|
||||
|
||||
opLDI, opLDIB, opLDIM,
|
||||
|
||||
/* Store Immediate */
|
||||
|
||||
opSTI, opSTIB, opSTIM,
|
||||
|
||||
/* Data stack */
|
||||
|
||||
opDUP, opPUSHS, opPOPS,
|
||||
|
||||
/* Program control (No stack arguments)
|
||||
* Behavior:
|
||||
* Pop return address
|
||||
* Pop saved base register (BR)
|
||||
* Discard saved base address
|
||||
* Set program counter (PC) to return address
|
||||
*/
|
||||
|
||||
opRET,
|
||||
|
||||
/* System Functions (No stack arguments) */
|
||||
|
||||
opEND,
|
||||
|
||||
/**-------------------------------------------------------------------
|
||||
** OPCODES WITH ONE ARGUMENT
|
||||
**-------------------------------------------------------------------**/
|
||||
|
||||
/* Floating point operations: arg = FP op-code */
|
||||
|
||||
opFLOAT,
|
||||
|
||||
/* Program control: arg = unsigned label (One stack argument) */
|
||||
|
||||
opJEQUZ, opJNEQZ,
|
||||
|
||||
/* Program control: arg = unsigned label (no stack arguments) */
|
||||
|
||||
opJMP,
|
||||
|
||||
/* Program control: arg = unsigned label (One stack argument) */
|
||||
|
||||
opJEQU, opJNEQ, opJLT, opJGTE, opJGT, opJLTE,
|
||||
|
||||
/* Load: arg = unsigned base offset */
|
||||
|
||||
opLD, opLDH, opLDB, opLDM,
|
||||
|
||||
/* Store: arg = unsigned base offset */
|
||||
|
||||
opST, opSTB, opSTM,
|
||||
|
||||
/* Load Indexed: arg = unsigned base offset */
|
||||
|
||||
opLDX, opLDXB, opLDXM,
|
||||
|
||||
/* Store Indexed: arg16 = unsigned base offset */
|
||||
|
||||
opSTX, opSTXB, opSTXM,
|
||||
|
||||
/* Load address relative to stack base: arg = unsigned offset */
|
||||
|
||||
opLA,
|
||||
|
||||
/* Load absolute stack address: arg = RODATA offset (No stack arguments) */
|
||||
|
||||
opLAC,
|
||||
|
||||
/* Data stack: arg = 16 bit signed data (no stack arguments) */
|
||||
|
||||
opPUSH, opINDS,
|
||||
|
||||
/* Load address relative to stack base: arg1 = unsigned offset, TOS=index */
|
||||
|
||||
opLAX,
|
||||
|
||||
/* System functions: arg = 16-bit library call identifier */
|
||||
|
||||
opLIB,
|
||||
|
||||
/* Program control: arg = unsigned label (no stack arguments) */
|
||||
|
||||
opLABEL,
|
||||
|
||||
/**-------------------------------------------------------------------
|
||||
** OPCODES WITH TWO ARGUMENTS
|
||||
**-------------------------------------------------------------------**/
|
||||
|
||||
/* Program Control: arg1 = level; arg2 = unsigned label */
|
||||
|
||||
opPCAL,
|
||||
|
||||
/* Load: arg1 = level; arg2 = signed frame offset */
|
||||
|
||||
opLDS, opLDSH, opLDSB, opLDSM,
|
||||
|
||||
/* Store: arg1 = level; arg2 = signed frame offset */
|
||||
|
||||
opSTS, opSTSB, opSTSM,
|
||||
|
||||
/* Load Indexed: arg1 = level; arg2 = signed frame offset */
|
||||
|
||||
opLDSX, opLDSXB, opLDSXM,
|
||||
|
||||
/* Store Indexed: arg1 = level; arg2 = signed frame offset */
|
||||
|
||||
opSTSX, opSTSXB, opSTSXM,
|
||||
|
||||
/* FOR LAS/LASX arg1 = level; arg2 = signed frame offset
|
||||
* (no stack arguments)
|
||||
*/
|
||||
|
||||
opLAS, opLASX,
|
||||
|
||||
/* System calls:
|
||||
* For SYSIO: arg1 = file number; arg2 = sub-function code
|
||||
*/
|
||||
|
||||
opSYSIO,
|
||||
|
||||
/* Pseudo-operations:
|
||||
* For LINE: arg1 = file number; arg2 = line number
|
||||
*/
|
||||
|
||||
opLINE,
|
||||
|
||||
NUM_OPCODES
|
||||
};
|
||||
|
||||
#endif /* __PODEFS_H */
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -431,7 +431,7 @@ static const struct
|
||||
/* 0xfd */ { invOp, NOARG16 },
|
||||
/* 0xfe */ { invOp, NOARG16 },
|
||||
|
||||
/* Psuedo-operations:
|
||||
/* Pseudo-operations:
|
||||
* For LINE: arg8 = file number; arg16 = line number
|
||||
*/
|
||||
|
||||
|
||||
@@ -2185,7 +2185,7 @@ static int pexec32(FAR struct pexec_s *st, uint8_t opcode, uint8_t imm8, uint16_
|
||||
ret = pexec_sysio(st, imm8, imm16);
|
||||
break;
|
||||
|
||||
/* Psuedo-operations: (No stack arguments)
|
||||
/* Pseudo-operations: (No stack arguments)
|
||||
* For LINE: imm8 = file number; imm16 = line number
|
||||
*/
|
||||
|
||||
|
||||
+119
-119
@@ -1,119 +1,119 @@
|
||||
32-bit op-code bit definitions
|
||||
|
||||
Machine model:
|
||||
|
||||
SPB 32-bit Pascal stack base address
|
||||
SP 32-bit Pascal stack pointer
|
||||
LSP 32-bit Level stack pointer
|
||||
CSB 32-bit Character stack base address
|
||||
CSP 32-bit Character stack pointer
|
||||
DS 32-bit Data size register (for multiple reg transfers)
|
||||
PC 32-bit Program Counter
|
||||
CC Condition code register
|
||||
--- Volatile general purpose registers
|
||||
--- Static general purpose registers
|
||||
|
||||
Condition codes: Z(ero), N(egative)
|
||||
|
||||
+=====+=====+
|
||||
| Z | N |
|
||||
+=====+=====+=====+
|
||||
| EQ | 1 | - |
|
||||
| NEQ | 0 | - |
|
||||
| LT | - | 1 |
|
||||
| GTE | - | 0 |
|
||||
| GT | 0 | 0 |
|
||||
| LTE | 1 | 1 |
|
||||
+=====+=====+=====+
|
||||
|
||||
Opcode Encoding Summary:
|
||||
|
||||
0rxx xxxx 1rxxx xxxx
|
||||
xr00 0000 NOP LD uoffs4
|
||||
xr00 0001 NEG LDH uoffs3
|
||||
xr00 0010 ABS LDB uoffs
|
||||
xr00 0011 INC LDM uoffs4
|
||||
xr00 0100 DEC ST uoffs4
|
||||
xr00 0101 NOT STH uoffs2
|
||||
xr00 0110 ADD STB uoffs
|
||||
xr00 0111 SUB STM uoffs4
|
||||
xr00 1000 MUL LDX uoffs4
|
||||
xr00 1001 DIV LDXH uoffs2
|
||||
xr00 1010 MOD LDXB uoffs
|
||||
xr00 1011 SLL LDXM uoffs4
|
||||
xr00 1100 SRL STX uoffs4
|
||||
xr00 1101 SRA STXH uoffs2
|
||||
xr00 1110 OR STXB uoffs
|
||||
xr00 1111 AND STXM uoffs
|
||||
|
||||
xr01 0000 EQUZ JEQUZ ilbl
|
||||
xr01 0001 NEQZ JNEQZ ilbl
|
||||
xr01 0010 LTZ JLTZ ilbl
|
||||
xr01 0011 GTEZ JGTEZ ilbl
|
||||
xr01 0100 GTZ JGTZ ilbl
|
||||
xr01 0101 LTEZ JLTEZ ilbl
|
||||
xr01 0110 --- JMP ilbl
|
||||
xr01 0111 --- PUSH nn
|
||||
xr01 1000 EQU JEQU ilbl
|
||||
xr01 1001 NEQ JNEQ ilbl
|
||||
xr01 1010 LT JLT ilbl
|
||||
xr01 1011 GTE JGTE ilbl
|
||||
xr01 1100 GT JGT ilbl
|
||||
xr01 1101 LTE JLTE ilbl
|
||||
xr01 1110 --- ---
|
||||
xr01 1111 BIT INDS nn
|
||||
|
||||
xr10 0000 LDI LDS offs4
|
||||
xr10 0001 LDIH LDSH offs3
|
||||
xr10 0010 LDIB LDSB offs
|
||||
xr10 0011 LDIM LDSM offs4
|
||||
xr10 0100 STI STS offs4
|
||||
xr10 0101 STIH STSH offs2
|
||||
xr10 0110 STIB STSB offs
|
||||
xr10 0111 STIM STSM offs4
|
||||
xr10 1000 DUP LDSX offs4
|
||||
xr10 1001 --- LDSXH offs2
|
||||
xr10 1010 PUSHS LDSXB offs
|
||||
xr10 1011 POPS LDSXM offs4
|
||||
xr10 1100 --- STSX offs4
|
||||
xr10 1101 --- STSXH offs2
|
||||
xr10 1110 --- STSXB offs
|
||||
xr10 1111 RET STSXM offs
|
||||
|
||||
xr11 0000 --- LA uoffs
|
||||
xr11 0001 --- LAS offs
|
||||
xr11 0010 --- LAC dlbl
|
||||
xr11 0011 --- ---
|
||||
xr11 0100 --- LAX uoffs
|
||||
xr11 0101 --- LASX offs
|
||||
xr11 0110 --- SLSP level
|
||||
xr11 0111 --- SDC uu
|
||||
xr11 1000 --- ---
|
||||
xr11 1001 --- PCAL ilbl
|
||||
xr11 1010 --- SYSIO fn,sop
|
||||
xr11 1011 --- LIB lop
|
||||
xr11 1100 --- FLOAT fop
|
||||
xr11 1101 --- *LABEL ilbl
|
||||
xr11 1110 --- *INCLUDE fn
|
||||
xr11 1111 END *LINE lineno
|
||||
|
||||
KEY:
|
||||
r = Reserved bit (must be zero)
|
||||
fn = 8-bit file number
|
||||
lvl = 8-bit static nexting level
|
||||
sop = 17-bit sysio operation
|
||||
lineno = 17-bit line number
|
||||
nn = 32-bit constant value (signed)
|
||||
uu = 32-bit constant value (unsigned)
|
||||
fop = 32-bit floating point operation
|
||||
lop = 32-bit library call identifier
|
||||
ilbl = 32-bit Instruction space label number
|
||||
dlbl = 32-stack data label
|
||||
offs4 = 32-bit word offset with respect to LSP (signed)
|
||||
offs2 = 32-bit halfword offset with respect to LSP (signed)
|
||||
offs = 32-bit byte offset with respect to LSP (signed)
|
||||
uoffs4 = 32-bit word offset with respect to SPB (unsigned)
|
||||
uoffs2 = 32-bit halfword offset with respect to SPB (unsigned)
|
||||
uoffs = 32-bit byte offset with respect to SPB (unsigned)
|
||||
c = string follows psuedo-operation
|
||||
= Indicates pseudo-operations (these are removed
|
||||
32-bit op-code bit definitions
|
||||
|
||||
Machine model:
|
||||
|
||||
SPB 32-bit Pascal stack base address
|
||||
SP 32-bit Pascal stack pointer
|
||||
LSP 32-bit Level stack pointer
|
||||
CSB 32-bit Character stack base address
|
||||
CSP 32-bit Character stack pointer
|
||||
DS 32-bit Data size register (for multiple reg transfers)
|
||||
PC 32-bit Program Counter
|
||||
CC Condition code register
|
||||
--- Volatile general purpose registers
|
||||
--- Static general purpose registers
|
||||
|
||||
Condition codes: Z(ero), N(egative)
|
||||
|
||||
+=====+=====+
|
||||
| Z | N |
|
||||
+=====+=====+=====+
|
||||
| EQ | 1 | - |
|
||||
| NEQ | 0 | - |
|
||||
| LT | - | 1 |
|
||||
| GTE | - | 0 |
|
||||
| GT | 0 | 0 |
|
||||
| LTE | 1 | 1 |
|
||||
+=====+=====+=====+
|
||||
|
||||
Opcode Encoding Summary:
|
||||
|
||||
0rxx xxxx 1rxxx xxxx
|
||||
xr00 0000 NOP LD uoffs4
|
||||
xr00 0001 NEG LDH uoffs3
|
||||
xr00 0010 ABS LDB uoffs
|
||||
xr00 0011 INC LDM uoffs4
|
||||
xr00 0100 DEC ST uoffs4
|
||||
xr00 0101 NOT STH uoffs2
|
||||
xr00 0110 ADD STB uoffs
|
||||
xr00 0111 SUB STM uoffs4
|
||||
xr00 1000 MUL LDX uoffs4
|
||||
xr00 1001 DIV LDXH uoffs2
|
||||
xr00 1010 MOD LDXB uoffs
|
||||
xr00 1011 SLL LDXM uoffs4
|
||||
xr00 1100 SRL STX uoffs4
|
||||
xr00 1101 SRA STXH uoffs2
|
||||
xr00 1110 OR STXB uoffs
|
||||
xr00 1111 AND STXM uoffs
|
||||
|
||||
xr01 0000 EQUZ JEQUZ ilbl
|
||||
xr01 0001 NEQZ JNEQZ ilbl
|
||||
xr01 0010 LTZ JLTZ ilbl
|
||||
xr01 0011 GTEZ JGTEZ ilbl
|
||||
xr01 0100 GTZ JGTZ ilbl
|
||||
xr01 0101 LTEZ JLTEZ ilbl
|
||||
xr01 0110 --- JMP ilbl
|
||||
xr01 0111 --- PUSH nn
|
||||
xr01 1000 EQU JEQU ilbl
|
||||
xr01 1001 NEQ JNEQ ilbl
|
||||
xr01 1010 LT JLT ilbl
|
||||
xr01 1011 GTE JGTE ilbl
|
||||
xr01 1100 GT JGT ilbl
|
||||
xr01 1101 LTE JLTE ilbl
|
||||
xr01 1110 --- ---
|
||||
xr01 1111 BIT INDS nn
|
||||
|
||||
xr10 0000 LDI LDS offs4
|
||||
xr10 0001 LDIH LDSH offs3
|
||||
xr10 0010 LDIB LDSB offs
|
||||
xr10 0011 LDIM LDSM offs4
|
||||
xr10 0100 STI STS offs4
|
||||
xr10 0101 STIH STSH offs2
|
||||
xr10 0110 STIB STSB offs
|
||||
xr10 0111 STIM STSM offs4
|
||||
xr10 1000 DUP LDSX offs4
|
||||
xr10 1001 --- LDSXH offs2
|
||||
xr10 1010 PUSHS LDSXB offs
|
||||
xr10 1011 POPS LDSXM offs4
|
||||
xr10 1100 --- STSX offs4
|
||||
xr10 1101 --- STSXH offs2
|
||||
xr10 1110 --- STSXB offs
|
||||
xr10 1111 RET STSXM offs
|
||||
|
||||
xr11 0000 --- LA uoffs
|
||||
xr11 0001 --- LAS offs
|
||||
xr11 0010 --- LAC dlbl
|
||||
xr11 0011 --- ---
|
||||
xr11 0100 --- LAX uoffs
|
||||
xr11 0101 --- LASX offs
|
||||
xr11 0110 --- SLSP level
|
||||
xr11 0111 --- SDC uu
|
||||
xr11 1000 --- ---
|
||||
xr11 1001 --- PCAL ilbl
|
||||
xr11 1010 --- SYSIO fn,sop
|
||||
xr11 1011 --- LIB lop
|
||||
xr11 1100 --- FLOAT fop
|
||||
xr11 1101 --- *LABEL ilbl
|
||||
xr11 1110 --- *INCLUDE fn
|
||||
xr11 1111 END *LINE lineno
|
||||
|
||||
KEY:
|
||||
r = Reserved bit (must be zero)
|
||||
fn = 8-bit file number
|
||||
lvl = 8-bit static nexting level
|
||||
sop = 17-bit sysio operation
|
||||
lineno = 17-bit line number
|
||||
nn = 32-bit constant value (signed)
|
||||
uu = 32-bit constant value (unsigned)
|
||||
fop = 32-bit floating point operation
|
||||
lop = 32-bit library call identifier
|
||||
ilbl = 32-bit Instruction space label number
|
||||
dlbl = 32-stack data label
|
||||
offs4 = 32-bit word offset with respect to LSP (signed)
|
||||
offs2 = 32-bit halfword offset with respect to LSP (signed)
|
||||
offs = 32-bit byte offset with respect to LSP (signed)
|
||||
uoffs4 = 32-bit word offset with respect to SPB (unsigned)
|
||||
uoffs2 = 32-bit halfword offset with respect to SPB (unsigned)
|
||||
uoffs = 32-bit byte offset with respect to SPB (unsigned)
|
||||
c = string follows pseudo-operation
|
||||
= Indicates pseudo-operations (these are removed
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -303,7 +303,7 @@ static const struct optab_s g_sArg32OpTable[64] =
|
||||
|
||||
/* 0xbd */ { NULL, LABEL_DEC },
|
||||
|
||||
/* Psuedo-operations: arg = file number OR line number */
|
||||
/* Pseudo-operations: arg = file number OR line number */
|
||||
|
||||
/* 0xbe */ { "INCLUDE ", FILENO },
|
||||
/* 0xbf */ { "LINE ", LINENO },
|
||||
|
||||
@@ -272,7 +272,7 @@ void pas_GenerateIoOperation(uint16_t ioOpcode, uint16_t fileNumber)
|
||||
}
|
||||
|
||||
/***********************************************************************/
|
||||
/* Generate a psuedo call to a built-in, standard pascal function */
|
||||
/* Generate a pseudo call to a built-in, standard pascal function */
|
||||
|
||||
void pas_BuiltInFunctionCall(uint16_t libOpcode)
|
||||
{
|
||||
|
||||
+1
-1
@@ -3119,7 +3119,7 @@
|
||||
function called stm32_clockenable() that can be used by PM logic to re-start
|
||||
the PLL after re-awakening from deep sleep modes.
|
||||
* fs/fs_foreachinode.c and fs/fs_foreachmountpoint.c: All logic to traverse
|
||||
inodes and mountpoints in the NuttX psuedo-file system.
|
||||
inodes and mountpoints in the NuttX pseudo-file system.
|
||||
* fs/fat/fs_fat32.c: Max. filename length reported by statfs() was wrong
|
||||
if FAT long file names were enabled.
|
||||
* lib/stdio/lib_libvsprintf.c: Fieldwidth and justification were not
|
||||
|
||||
+388
-388
File diff suppressed because it is too large
Load Diff
@@ -1400,7 +1400,7 @@ mkfifo <path>
|
||||
<p>
|
||||
<b>Synopsis</b>.
|
||||
Creates a FIFO character device anywhere in the pseudo file system, creating
|
||||
whatever psuedo directories that may be needed to complete the <code><path></code>.
|
||||
whatever pseudo directories that may be needed to complete the <code><path></code>.
|
||||
By convention, however, device drivers are place in the standard <code>/dev</code> directory.
|
||||
After it is created, the FIFO device may be used as any other device driver.
|
||||
NSH provides this command to access the <a href="NuttxUserGuide.html#mkfifo"><code>mkfifo()</code></a> NuttX API.
|
||||
@@ -1492,7 +1492,7 @@ mount -t <fstype> <block-device> <code><dir-path></code>
|
||||
If no paramters are provided on the command line after the <code>mount</code> command, then the <code>mount</code> command will enumerate all of the current mountpoints on the console.
|
||||
</p>
|
||||
<p>
|
||||
If the mount parameters are provied on the command after the <code>mount</code> command, then the <code>mount</code> command will mount a file system in the NuttX psuedo-file system.
|
||||
If the mount parameters are provied on the command after the <code>mount</code> command, then the <code>mount</code> command will mount a file system in the NuttX pseudo-file system.
|
||||
<code>mount</code>' performs a three way association, binding:
|
||||
</p>
|
||||
<ol>
|
||||
@@ -1513,7 +1513,7 @@ mount -t <fstype> <block-device> <code><dir-path></code>
|
||||
<a href="NuttxUserGuide.html#FileSystemOverview"><i>pseudo</i> filesystem</a> where the mounted volume will appear.
|
||||
This mount point can only reside in the NuttX <a href="NuttxUserGuide.html#FileSystemOverview"><i>pseudo</i> filesystem</a>.
|
||||
By convention, this mount point is a subdirectory under <code>/mnt</code>.
|
||||
The mount command will create whatever psuedo directories that may be needed to complete the
|
||||
The mount command will create whatever pseudo directories that may be needed to complete the
|
||||
full path but the full path must not already exist.
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
+2
-2
@@ -703,9 +703,9 @@ o File system / Generic drivers (fs/, drivers/)
|
||||
|
||||
Title: REMOVING PIPES AND FIFOS
|
||||
Description: There is no way to remove a FIFO or PIPE created in the
|
||||
psuedo filesystem. Once created, they persist indefinitely
|
||||
pseudo filesystem. Once created, they persist indefinitely
|
||||
and cannot be unlinked. This is actually a more generic
|
||||
issue: unlink does not work for anything in the psuedo-
|
||||
issue: unlink does not work for anything in the pseudo-
|
||||
filesystem.
|
||||
Status: Open, but partially resolved: pipe buffer is at least freed
|
||||
when there are not open references to the pipe/FIFO.
|
||||
|
||||
@@ -413,7 +413,7 @@ host operations. To make these modifications, do the following:
|
||||
|
||||
When this change is made, NSH should be extended to support USB flash
|
||||
devices. When a FLASH device is inserted, you should see a device
|
||||
appear in the /dev (psuedo) directory. The device name should be
|
||||
appear in the /dev (pseudo) directory. The device name should be
|
||||
like /dev/sda, /dev/sdb, etc. The USB mass storage device, is present
|
||||
it can be mounted from the NSH command line like:
|
||||
|
||||
|
||||
@@ -829,7 +829,7 @@ host operations. To make these modifications, do the following:
|
||||
|
||||
When this change is made, NSH should be extended to support USB flash
|
||||
devices. When a FLASH device is inserted, you should see a device
|
||||
appear in the /dev (psuedo) directory. The device name should be
|
||||
appear in the /dev (pseudo) directory. The device name should be
|
||||
like /dev/sda, /dev/sdb, etc. The USB mass storage device, is present
|
||||
it can be mounted from the NSH command line like:
|
||||
|
||||
|
||||
@@ -384,7 +384,7 @@ host operations. To make these modifications, do the following:
|
||||
|
||||
When this change is made, NSH should be extended to support USB flash
|
||||
devices. When a FLASH device is inserted, you should see a device
|
||||
appear in the /dev (psuedo) directory. The device name should be
|
||||
appear in the /dev (pseudo) directory. The device name should be
|
||||
like /dev/sda, /dev/sdb, etc. The USB mass storage device, is present
|
||||
it can be mounted from the NSH command line like:
|
||||
|
||||
|
||||
@@ -788,7 +788,7 @@ USB host operations. To make these modifications, do the following:
|
||||
|
||||
When this change is made, NSH should be extended to support USB flash
|
||||
devices. When a FLASH device is inserted, you should see a device
|
||||
appear in the /dev (psuedo) directory. The device name should be
|
||||
appear in the /dev (pseudo) directory. The device name should be
|
||||
like /dev/sda, /dev/sdb, etc. The USB mass storage device, is present
|
||||
it can be mounted from the NSH command line like:
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@ int closedir(FAR DIR *dirp)
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_DISABLE_MOUNTPOINT
|
||||
if (INODE_IS_MOUNTPT(inode) && !DIRENT_ISPSUEDONODE(idir->fd_flags))
|
||||
if (INODE_IS_MOUNTPT(inode) && !DIRENT_ISPSEUDONODE(idir->fd_flags))
|
||||
{
|
||||
/* The node is a file system mointpoint. Verify that the mountpoint
|
||||
* supports the closedir() method (not an error if it does not)
|
||||
@@ -117,13 +117,13 @@ int closedir(FAR DIR *dirp)
|
||||
else
|
||||
#endif
|
||||
{
|
||||
/* The node is part of the root psuedo file system, release
|
||||
/* The node is part of the root pseudo file system, release
|
||||
* our contained reference to the 'next' inode.
|
||||
*/
|
||||
|
||||
if (idir->u.psuedo.fd_next)
|
||||
if (idir->u.pseudo.fd_next)
|
||||
{
|
||||
inode_release(idir->u.psuedo.fd_next);
|
||||
inode_release(idir->u.pseudo.fd_next);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -342,7 +342,7 @@ int files_dup(FAR struct file *filep1, FAR struct file *filep2)
|
||||
#endif
|
||||
#endif
|
||||
{
|
||||
/* Open the psuedo file or device driver */
|
||||
/* Open the pseudo file or device driver */
|
||||
|
||||
ret = inode->u.i_ops->open(filep2);
|
||||
}
|
||||
|
||||
@@ -171,7 +171,7 @@ int foreach_inodelevel(FAR struct inode *node, struct inode_path_s *info)
|
||||
* when the callback 'handler' returns a non-zero value, or when all of
|
||||
* the inodes have been visited.
|
||||
*
|
||||
* NOTE 1: Use with caution... The psuedo-file system is locked throughout
|
||||
* NOTE 1: Use with caution... The pseudo-file system is locked throughout
|
||||
* the traversal.
|
||||
* NOTE 2: The search algorithm is recursive and could, in principle, use
|
||||
* an indeterminant amount of stack space. This will not usually be a
|
||||
|
||||
@@ -154,7 +154,7 @@ static int mountpoint_filter(FAR struct inode *node,
|
||||
* mountpoint inodes. It is intended to support the mount() command to
|
||||
* when the mount command is used to enumerate mounts.
|
||||
*
|
||||
* NOTE 1: Use with caution... The psuedo-file system is locked throughout
|
||||
* NOTE 1: Use with caution... The pseudo-file system is locked throughout
|
||||
* the traversal.
|
||||
* NOTE 2: The search algorithm is recursive and could, in principle, use
|
||||
* an indeterminant amount of stack space. This will not usually be a
|
||||
|
||||
@@ -75,10 +75,10 @@
|
||||
|
||||
/* Mountpoint fd_flags values */
|
||||
|
||||
#define DIRENTFLAGS_PSUEDONODE 1
|
||||
#define DIRENTFLAGS_PSEUDONODE 1
|
||||
|
||||
#define DIRENT_SETPSUEDONODE(f) do (f) |= DIRENTFLAGS_PSUEDONODE; while (0)
|
||||
#define DIRENT_ISPSUEDONODE(f) (((f) & DIRENTFLAGS_PSUEDONODE) != 0)
|
||||
#define DIRENT_SETPSEUDONODE(f) do (f) |= DIRENTFLAGS_PSEUDONODE; while (0)
|
||||
#define DIRENT_ISPSEUDONODE(f) (((f) & DIRENTFLAGS_PSEUDONODE) != 0)
|
||||
|
||||
/****************************************************************************
|
||||
* Public Types
|
||||
@@ -236,7 +236,7 @@ EXTERN void inode_release(FAR struct inode *inode);
|
||||
* when the callback 'handler' returns a non-zero value, or when all of
|
||||
* the inodes have been visited.
|
||||
*
|
||||
* NOTE 1: Use with caution... The psuedo-file system is locked throughout
|
||||
* NOTE 1: Use with caution... The pseudo-file system is locked throughout
|
||||
* the traversal.
|
||||
* NOTE 2: The search algorithm is recursive and could, in principle, use
|
||||
* an indeterminant amount of stack space. This will not usually be a
|
||||
|
||||
@@ -138,19 +138,19 @@ static inline int open_mountpoint(FAR struct inode *inode,
|
||||
|
||||
static void open_pseudodir(FAR struct inode *inode, FAR struct fs_dirent_s *dir)
|
||||
{
|
||||
/* We have a valid psuedo-filesystem node. Take two references on the
|
||||
/* We have a valid pseudo-filesystem node. Take two references on the
|
||||
* inode -- one for the parent (fd_root) and one for the child (fd_next).
|
||||
* Note that we do not call inode_addref because we are holding the tree
|
||||
* semaphore and that would result in deadlock.
|
||||
*/
|
||||
|
||||
inode->i_crefs += 2;
|
||||
dir->u.psuedo.fd_next = inode; /* This is the next node to use for readdir() */
|
||||
dir->u.pseudo.fd_next = inode; /* This is the next node to use for readdir() */
|
||||
|
||||
/* Flag the inode as belonging to the psuedo-filesystem */
|
||||
/* Flag the inode as belonging to the pseudo-filesystem */
|
||||
|
||||
#ifndef CONFIG_DISABLE_MOUNTPOINT
|
||||
DIRENT_SETPSUEDONODE(dir->fd_flags);
|
||||
DIRENT_SETPSEUDONODE(dir->fd_flags);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -242,7 +242,7 @@ FAR DIR *opendir(FAR const char *path)
|
||||
}
|
||||
|
||||
/* Populate the DIR structure and return it to the caller. The way that
|
||||
* we do this depends on whenever this is a "normal" psuedo-file-system
|
||||
* we do this depends on whenever this is a "normal" pseudo-file-system
|
||||
* inode or a file system mountpoint.
|
||||
*/
|
||||
|
||||
@@ -262,7 +262,7 @@ FAR DIR *opendir(FAR const char *path)
|
||||
open_pseudodir(inode, dir);
|
||||
}
|
||||
|
||||
/* Is this a node in the psuedo filesystem? Or a mountpoint? If the node
|
||||
/* Is this a node in the pseudo filesystem? Or a mountpoint? If the node
|
||||
* is the root (bisroot == TRUE), then this is a special case.
|
||||
*/
|
||||
|
||||
@@ -280,7 +280,7 @@ FAR DIR *opendir(FAR const char *path)
|
||||
#endif
|
||||
else
|
||||
{
|
||||
/* The node is part of the root psuedo file system. Does the inode have a child?
|
||||
/* The node is part of the root pseudo file system. Does the inode have a child?
|
||||
* If so that the child would be the 'root' of a list of nodes under
|
||||
* the directory.
|
||||
*/
|
||||
@@ -292,7 +292,7 @@ FAR DIR *opendir(FAR const char *path)
|
||||
goto errout_with_direntry;
|
||||
}
|
||||
|
||||
/* It looks we have a valid psuedo-filesystem directory node. */
|
||||
/* It looks we have a valid pseudo-filesystem directory node. */
|
||||
|
||||
open_pseudodir(inode, dir);
|
||||
}
|
||||
|
||||
+15
-15
@@ -53,16 +53,16 @@
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: readpsuedodir
|
||||
* Name: readpseudodir
|
||||
****************************************************************************/
|
||||
|
||||
static inline int readpsuedodir(struct fs_dirent_s *idir)
|
||||
static inline int readpseudodir(struct fs_dirent_s *idir)
|
||||
{
|
||||
FAR struct inode *prev;
|
||||
|
||||
/* Check if we are at the end of the list */
|
||||
|
||||
if (!idir->u.psuedo.fd_next)
|
||||
if (!idir->u.pseudo.fd_next)
|
||||
{
|
||||
/* End of file and error conditions are not distinguishable
|
||||
* with readdir. Here we return -ENOENT to signal the end
|
||||
@@ -74,21 +74,21 @@ static inline int readpsuedodir(struct fs_dirent_s *idir)
|
||||
|
||||
/* Copy the inode name into the dirent structure */
|
||||
|
||||
strncpy(idir->fd_dir.d_name, idir->u.psuedo.fd_next->i_name, NAME_MAX+1);
|
||||
strncpy(idir->fd_dir.d_name, idir->u.pseudo.fd_next->i_name, NAME_MAX+1);
|
||||
|
||||
/* If the node has file operations, we will say that it is
|
||||
* a file.
|
||||
*/
|
||||
|
||||
idir->fd_dir.d_type = 0;
|
||||
if (idir->u.psuedo.fd_next->u.i_ops)
|
||||
if (idir->u.pseudo.fd_next->u.i_ops)
|
||||
{
|
||||
#ifndef CONFIG_DISABLE_MOUNTPOINT
|
||||
if (INODE_IS_BLOCK(idir->u.psuedo.fd_next))
|
||||
if (INODE_IS_BLOCK(idir->u.pseudo.fd_next))
|
||||
{
|
||||
idir->fd_dir.d_type |= DTYPE_BLK;
|
||||
}
|
||||
if (INODE_IS_MOUNTPT(idir->u.psuedo.fd_next))
|
||||
if (INODE_IS_MOUNTPT(idir->u.pseudo.fd_next))
|
||||
{
|
||||
idir->fd_dir.d_type |= DTYPE_DIRECTORY;
|
||||
}
|
||||
@@ -103,7 +103,7 @@ static inline int readpsuedodir(struct fs_dirent_s *idir)
|
||||
* is a directory. NOTE: that the node can be both!
|
||||
*/
|
||||
|
||||
if (idir->u.psuedo.fd_next->i_child || !idir->u.psuedo.fd_next->u.i_ops)
|
||||
if (idir->u.pseudo.fd_next->i_child || !idir->u.pseudo.fd_next->u.i_ops)
|
||||
{
|
||||
idir->fd_dir.d_type |= DTYPE_DIRECTORY;
|
||||
}
|
||||
@@ -112,14 +112,14 @@ static inline int readpsuedodir(struct fs_dirent_s *idir)
|
||||
|
||||
inode_semtake();
|
||||
|
||||
prev = idir->u.psuedo.fd_next;
|
||||
idir->u.psuedo.fd_next = prev->i_peer; /* The next node to visit */
|
||||
prev = idir->u.pseudo.fd_next;
|
||||
idir->u.pseudo.fd_next = prev->i_peer; /* The next node to visit */
|
||||
|
||||
if (idir->u.psuedo.fd_next)
|
||||
if (idir->u.pseudo.fd_next)
|
||||
{
|
||||
/* Increment the reference count on this next node */
|
||||
|
||||
idir->u.psuedo.fd_next->i_crefs++;
|
||||
idir->u.pseudo.fd_next->i_crefs++;
|
||||
}
|
||||
|
||||
inode_semgive();
|
||||
@@ -179,7 +179,7 @@ FAR struct dirent *readdir(DIR *dirp)
|
||||
|
||||
#ifndef CONFIG_DISABLE_MOUNTPOINT
|
||||
inode = idir->fd_root;
|
||||
if (INODE_IS_MOUNTPT(inode) && !DIRENT_ISPSUEDONODE(idir->fd_flags))
|
||||
if (INODE_IS_MOUNTPT(inode) && !DIRENT_ISPSEUDONODE(idir->fd_flags))
|
||||
{
|
||||
/* The node is a file system mointpoint. Verify that the mountpoint
|
||||
* supports the readdir() method
|
||||
@@ -198,9 +198,9 @@ FAR struct dirent *readdir(DIR *dirp)
|
||||
else
|
||||
#endif
|
||||
{
|
||||
/* The node is part of the root psuedo file system */
|
||||
/* The node is part of the root pseudo file system */
|
||||
|
||||
ret = readpsuedodir(idir);
|
||||
ret = readpseudodir(idir);
|
||||
}
|
||||
|
||||
/* ret < 0 is an error. Special case: ret = -ENOENT is end of file */
|
||||
|
||||
@@ -52,10 +52,10 @@
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: rewindpsuedodir
|
||||
* Name: rewindpseudodir
|
||||
****************************************************************************/
|
||||
|
||||
static inline void rewindpsuedodir(struct fs_dirent_s *idir)
|
||||
static inline void rewindpseudodir(struct fs_dirent_s *idir)
|
||||
{
|
||||
struct inode *prev;
|
||||
|
||||
@@ -63,8 +63,8 @@ static inline void rewindpsuedodir(struct fs_dirent_s *idir)
|
||||
|
||||
/* Reset the position to the beginning */
|
||||
|
||||
prev = idir->u.psuedo.fd_next; /* (Save to delete later) */
|
||||
idir->u.psuedo.fd_next = idir->fd_root; /* The next node to visit */
|
||||
prev = idir->u.pseudo.fd_next; /* (Save to delete later) */
|
||||
idir->u.pseudo.fd_next = idir->fd_root; /* The next node to visit */
|
||||
idir->fd_position = 0; /* Reset position */
|
||||
|
||||
/* Increment the reference count on the root=next node. We
|
||||
@@ -138,8 +138,8 @@ void rewinddir(FAR DIR *dirp)
|
||||
else
|
||||
#endif
|
||||
{
|
||||
/* The node is part of the root psuedo file system */
|
||||
/* The node is part of the root pseudo file system */
|
||||
|
||||
rewindpsuedodir(idir);
|
||||
rewindpseudodir(idir);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,10 +53,10 @@
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: seekpsuedodir
|
||||
* Name: seekpseudodir
|
||||
****************************************************************************/
|
||||
|
||||
static inline void seekpsuedodir(struct fs_dirent_s *idir, off_t offset)
|
||||
static inline void seekpseudodir(struct fs_dirent_s *idir, off_t offset)
|
||||
{
|
||||
struct inode *curr;
|
||||
struct inode *prev;
|
||||
@@ -76,7 +76,7 @@ static inline void seekpsuedodir(struct fs_dirent_s *idir, off_t offset)
|
||||
else
|
||||
{
|
||||
pos = idir->fd_position;
|
||||
curr = idir->u.psuedo.fd_next;
|
||||
curr = idir->u.pseudo.fd_next;
|
||||
}
|
||||
|
||||
/* Traverse the peer list starting at the 'root' of the
|
||||
@@ -90,8 +90,8 @@ static inline void seekpsuedodir(struct fs_dirent_s *idir, off_t offset)
|
||||
|
||||
/* Now get the inode to vist next time that readdir() is called */
|
||||
|
||||
prev = idir->u.psuedo.fd_next;
|
||||
idir->u.psuedo.fd_next = curr; /* The next node to visit (might be null) */
|
||||
prev = idir->u.pseudo.fd_next;
|
||||
idir->u.pseudo.fd_next = curr; /* The next node to visit (might be null) */
|
||||
idir->fd_position = pos; /* Might be beyond the last dirent */
|
||||
|
||||
if (curr)
|
||||
@@ -223,8 +223,8 @@ void seekdir(FAR DIR *dirp, off_t offset)
|
||||
else
|
||||
#endif
|
||||
{
|
||||
/* The node is part of the root psuedo file system */
|
||||
/* The node is part of the root pseudo file system */
|
||||
|
||||
seekpsuedodir(idir, offset);
|
||||
seekpseudodir(idir, offset);
|
||||
}
|
||||
}
|
||||
|
||||
+5
-5
@@ -51,10 +51,10 @@
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: statpsuedo
|
||||
* Name: statpseudo
|
||||
****************************************************************************/
|
||||
|
||||
static inline int statpsuedo(FAR struct inode *inode, FAR struct stat *buf)
|
||||
static inline int statpseudo(FAR struct inode *inode, FAR struct stat *buf)
|
||||
{
|
||||
/* Most of the stat entries just do not apply */
|
||||
|
||||
@@ -92,7 +92,7 @@ static inline int statpsuedo(FAR struct inode *inode, FAR struct stat *buf)
|
||||
{
|
||||
/* If it has no operations, then it must just be a intermediate
|
||||
* node in the inode tree. It is something like a directory.
|
||||
* We'll say that all psuedo-directories are read-able but not
|
||||
* We'll say that all pseudo-directories are read-able but not
|
||||
* write-able.
|
||||
*/
|
||||
|
||||
@@ -195,9 +195,9 @@ int stat(const char *path, FAR struct stat *buf)
|
||||
else
|
||||
#endif
|
||||
{
|
||||
/* The node is part of the root psuedo file system */
|
||||
/* The node is part of the root pseudo file system */
|
||||
|
||||
ret = statpsuedo(inode, buf);
|
||||
ret = statpseudo(inode, buf);
|
||||
}
|
||||
|
||||
/* Check if the stat operation was successful */
|
||||
|
||||
@@ -52,10 +52,10 @@
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: statpsuedo
|
||||
* Name: statpseudo
|
||||
****************************************************************************/
|
||||
|
||||
static inline int statpsuedofs(FAR struct inode *inode, FAR struct statfs *buf)
|
||||
static inline int statpseudofs(FAR struct inode *inode, FAR struct statfs *buf)
|
||||
{
|
||||
memset(buf, 0, sizeof(struct statfs));
|
||||
buf->f_type = PROC_SUPER_MAGIC;
|
||||
@@ -137,9 +137,9 @@ int statfs(FAR const char *path, FAR struct statfs *buf)
|
||||
else
|
||||
#endif
|
||||
{
|
||||
/* The node is part of the root psuedo file system */
|
||||
/* The node is part of the root pseudo file system */
|
||||
|
||||
ret = statpsuedofs(inode, buf);
|
||||
ret = statpseudofs(inode, buf);
|
||||
}
|
||||
|
||||
/* Check if the statfs operation was successful */
|
||||
|
||||
@@ -319,7 +319,7 @@ int syslog_initialize(void)
|
||||
SYSLOG_OFLAGS, 0666);
|
||||
}
|
||||
|
||||
/* No... then it must be a character driver in the NuttX psuedo-
|
||||
/* No... then it must be a character driver in the NuttX pseudo-
|
||||
* file system.
|
||||
*/
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
* Name: unregister_blockdriver
|
||||
*
|
||||
* Description:
|
||||
* Remove the block driver inode at 'path' from the psuedo-file system
|
||||
* Remove the block driver inode at 'path' from the pseudo-file system
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
* Name: unregister_driver
|
||||
*
|
||||
* Description:
|
||||
* Remove the character driver inode at 'path' from the psuedo-file system
|
||||
* Remove the character driver inode at 'path' from the pseudo-file system
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
@@ -65,12 +65,12 @@
|
||||
* reference, a position, a dirent structure, and file-system-specific
|
||||
* information.
|
||||
*
|
||||
* For the root psuedo-file system, we need retain only the 'next' inode
|
||||
* For the root pseudo-file system, we need retain only the 'next' inode
|
||||
* need for the next readdir() operation. We hold a reference on this
|
||||
* inode so we know that it will persist until closedir is called.
|
||||
*/
|
||||
|
||||
struct fs_psuedodir_s
|
||||
struct fs_pseudodir_s
|
||||
{
|
||||
struct inode *fd_next; /* The inode for the next call to readdir() */
|
||||
};
|
||||
@@ -140,7 +140,7 @@ struct fs_dirent_s
|
||||
{
|
||||
/* This is the node that was opened by opendir. The type of the inode
|
||||
* determines the way that the readdir() operations are performed. For the
|
||||
* psuedo root psuedo-file system, it is also used to support rewind.
|
||||
* pseudo root pseudo-file system, it is also used to support rewind.
|
||||
*
|
||||
* We hold a reference on this inode so we know that it will persist until
|
||||
* closedir() is called (although inodes linked to this inode may change).
|
||||
@@ -166,9 +166,9 @@ struct fs_dirent_s
|
||||
|
||||
union
|
||||
{
|
||||
/* Private data used by the built-in psuedo-file system */
|
||||
/* Private data used by the built-in pseudo-file system */
|
||||
|
||||
struct fs_psuedodir_s psuedo;
|
||||
struct fs_pseudodir_s pseudo;
|
||||
|
||||
/* Private data used by other file systems */
|
||||
|
||||
|
||||
@@ -199,7 +199,7 @@ union inode_ops_u
|
||||
#endif
|
||||
};
|
||||
|
||||
/* This structure represents one inode in the Nuttx psuedo-file system */
|
||||
/* This structure represents one inode in the Nuttx pseudo-file system */
|
||||
|
||||
struct inode
|
||||
{
|
||||
@@ -342,7 +342,7 @@ EXTERN void weak_function fs_initialize(void);
|
||||
* mountpoint inodes. It is intended to support the mount() command to
|
||||
* when the mount command is used to enumerate mounts.
|
||||
*
|
||||
* NOTE 1: Use with caution... The psuedo-file system is locked throughout
|
||||
* NOTE 1: Use with caution... The pseudo-file system is locked throughout
|
||||
* the traversal.
|
||||
* NOTE 2: The search algorithm is recursive and could, in principle, use
|
||||
* an indeterminant amount of stack space. This will not usually be a
|
||||
@@ -415,7 +415,7 @@ EXTERN int register_blockdriver(const char *path,
|
||||
* Name: unregister_driver
|
||||
*
|
||||
* Description:
|
||||
* Remove the character driver inode at 'path' from the psuedo-file system
|
||||
* Remove the character driver inode at 'path' from the pseudo-file system
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
@@ -426,7 +426,7 @@ EXTERN int unregister_driver(const char *path);
|
||||
* Name: unregister_blockdriver
|
||||
*
|
||||
* Description:
|
||||
* Remove the block driver inode at 'path' from the psuedo-file system
|
||||
* Remove the block driver inode at 'path' from the pseudo-file system
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user