---
name: "psmshell"
section: "1"
platform: "linux"
package: "ion"
version: "3.2.1+dfsg-1.1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/psmshell"
---

# psmshell(1)

PSM memory management test shell

## NAME

psmshell - PSM memory management test shell

## SYNOPSIS

**psmshell** *partition\_size*

## DESCRIPTION

**psmshell** allocates a region of *partition\_size* bytes of system memory, places it under PSM management, and offers the user an interactive "shell" for testing various PSM management functions.

**psmshell** prints a prompt string (": ") to stdout, accepts a command from  stdin, executes the command (possibly printing a diagnostic message),  then prints another prompt string and so on.

The locations of objects allocated from the PSM-managed region of memory are referred to as "cells" in psmshell operations.  That is, when an object is to be allocated, a cell number in the range 0-99 must be specified as the notional "handle" for that object, for use in future commands.

The following commands are supported:

- **h**

  The **help** command.  Causes **psmshell** to print a summary of available commands.  Same effect as the **?** command.

- **?**

  Another **help** command.  Causes **psmshell** to print a summary of available commands.  Same effect as the **h** command.

- **m** *cell\_nbr* *size*

  The **malloc** command.  Allocates a large-pool object of the indicated size and associates that object with *cell\_nbr*.

- **z** *cell\_nbr* *size*

  The **zalloc** command.  Allocates a small-pool object of the indicated size and associates that object with *cell\_nbr*.

- **p** *cell\_nbr*

  The **print** command.  Prints the address (i.e., the offset within the managed block of memory) of the object associated with *cell\_nbr*.

- **f** *cell\_nbr*

  The **free** command.  Frees the object associated with *cell\_nbr*, returning the space formerly occupied by that object to the appropriate free block list.

- **u**

  The **usage** command.  Prints a partition usage report, as per *psm\_report*(3).

- **q**

  The **quit** command.  Frees the allocated system memory in the managed block and terminates **psmshell**.

## EXIT STATUS

- "0"

  **psmshell** has terminated.

## FILES

No configuration files are needed.

## ENVIRONMENT

No environment variables apply.

## DIAGNOSTICS

- IPC initialization failed.

  ION system error.  Investigate, correct problem, and try again.

- psmshell: can't allocate space; quitting.

  Insufficient available system memory for selected partition size.

- psmshell: can't allocate test variables; quitting.

  Insufficient available system memory for selected partition size.

## BUGS

Report bugs to \<ion-bugs@korgano.eecs.ohiou.edu\>

## SEE ALSO

[*psm*(3)](/psm/3.md)
