.\" Automatically generated by Pod::Man 4.07 (Pod::Simple 3.32) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .if !\nF .nr F 0 .if \nF>0 \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SMLISTSH 1" .TH SMLISTSH 1 "2016-07-07" "perl v5.24.1" "ICI executables" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" smlistsh \- shared\-memory linked list test shell .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBsmlistsh\fR \fIpartition_size\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBsmlistsh\fR attaches to a region of system memory (allocating it if necessary, and placing it under \s-1PSM\s0 management as necessary) and offers the user an interactive \*(L"shell\*(R" for testing various shared-memory linked list management functions. .PP \&\fBsmlistsh\fR prints a prompt string (\*(L": \*(R") to stdout, accepts a command from stdin, executes the command (possibly printing a diagnostic message), then prints another prompt string and so on. .PP The following commands are supported: .IP "\fBh\fR" 4 .IX Item "h" The \fBhelp\fR command. Causes \fBsmlistsh\fR to print a summary of available commands. Same effect as the \fB?\fR command. .IP "\fB?\fR" 4 .IX Item "?" Another \fBhelp\fR command. Causes \fBsmlistsh\fR to print a summary of available commands. Same effect as the \fBh\fR command. .IP "\fBk\fR" 4 .IX Item "k" The \fBkey\fR command. Computes and prints an unused shared-memory key, for possible use in attaching to a shared-memory region. .IP "\fB+\fR \fIkey_value\fR \fIsize\fR" 4 .IX Item "+ key_value size" The \fBattach\fR command. Attaches \fBsmlistsh\fR to a region of shared memory. \&\fIkey_value\fR identifies an existing shared-memory region, in the event that you want to attach to an existing shared-memory region (possibly created by another \fBsmlistsh\fR process running on the same computer). To create and attach to a new shared-memory region that other processes can attach to, use a \fIkey_value\fR as returned by the \fBkey\fR command and supply the \fIsize\fR of the new region. If you want to create and attach to a new shared-memory region that is for strictly private use, use \-1 as key and supply the \fIsize\fR of the new region. .IP "\fB\-\fR" 4 .IX Item "-" The \fBdetach\fR command. Detaches \fBsmlistsh\fR from the region of shared memory it is currently using, but does not free any memory. .IP "\fBn\fR" 4 .IX Item "n" The \fBnew\fR command. Creates a new shared-memory list to operate on, within the currently attached shared-memory region. Prints the address of the list. .IP "\fBs\fR \fIlist_address\fR" 4 .IX Item "s list_address" The \fBshare\fR command. Selects an existing shared-memory list to operate on, within the currently attached shared-memory region. .IP "\fBa\fR \fIelement_value\fR" 4 .IX Item "a element_value" The \fBappend\fR command. Appends a new list element, containing \&\fIelement_value\fR, to the list on which \fBsmlistsh\fR is currently operating. .IP "\fBp\fR \fIelement_value\fR" 4 .IX Item "p element_value" The \fBprepend\fR command. Prepends a new list element, containing \&\fIelement_value\fR, to the list on which \fBsmlistsh\fR is currently operating. .IP "\fBw\fR" 4 .IX Item "w" The \fBwalk\fR command. Prints the addresses and contents of all elements of the list on which \fBsmlistsh\fR is currently operating. .IP "\fBf\fR \fIelement_value\fR" 4 .IX Item "f element_value" The \fBfind\fR command. Finds the list element that contains \fIelement_value\fR, within the list on which \fBsmlistsh\fR is currently operating, and prints the address of that list element. .IP "\fBd\fR \fIelement_address\fR" 4 .IX Item "d element_address" The \fBdelete\fR command. Deletes the list element located at \fIelement_address\fR. .IP "\fBr\fR" 4 .IX Item "r" The \fBreport\fR command. Prints a partition usage report, as per \fIpsm_report\fR\|(3). .IP "\fBq\fR" 4 .IX Item "q" The \fBquit\fR command. Detaches \fBsmlistsh\fR from the region of shared memory it is currently using (without freeing any memory) and terminates \&\fBsmlistsh\fR. .SH "EXIT STATUS" .IX Header "EXIT STATUS" .ie n .IP """0""" 4 .el .IP "``0''" 4 .IX Item "0" \&\fBsmlistsh\fR has terminated. .SH "FILES" .IX Header "FILES" No configuration files are needed. .SH "ENVIRONMENT" .IX Header "ENVIRONMENT" No environment variables apply. .SH "DIAGNOSTICS" .IX Header "DIAGNOSTICS" No diagnostics apply. .SH "BUGS" .IX Header "BUGS" Report bugs to .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIsmlist\fR\|(3)