[Previous] [Contents] [Next]


Process Manager (QNX)


Proc32 [options]...


The options for Proc32 do not follow the standard utility syntax rules. Options and option arguments must all be supplied as separate command-line arguments (i.e. separated by white space on the command line). Options may not be strung together and must be separated from their arguments by white space.

Disable accounting.
Specifies reboot method:
Use system port 0x92, then keyboard controller, then cpu shutdown.
Do not use keyboard controller when executing the default sequence.
Reboot via keyboard controller first, then execute the default sequence.
Reboot via system port 0x92 first (which is the default sequence).
Reboot via processor shutdown only.
The options -b1, -b2 and -b3 may be combined with -b which subtracts the keyboard method from the subsequent execution of the default reboot sequence as follows:
Option Sequence
default port 0x92, keyboard, cpu
-b port 0x92, cpu
-b1 keyboard, port 0x92, keyboard, cpu
-b1 -b keyboard, port 0x92, cpu
-b2 port 0x92, keyboard, cpu
-b2 -b port 0x92, cpu
-b3 cpu
-b3 -b cpu

Note: Interrupt vector 0xf5 is always invoked before trying any of these methods. For custom hardware, you can point this vector at code to cause the restart.

-B node
Set base node in network (default is 1)
-d num_major
The number of major device numbers to be supported (default is 64).
If the debugger (Debugger32) is bound into the operating system, suppress its automatic invocation upon boot.
-e num_semaphores
Specify the maximum number of semaphores available in the system (default is 128).
-f min max total
This option controls the availability of file descriptors (FDs):
The minimum number of FDs that must be available before a process will start. This argument defaults to 16 and should be left at that value if POSIX-compliance is a requirement (POSIX requires that a process be capable of opening at least 16 files). You can save some memory by reducing this number.
The maximum number of FDs that can be available for a process (default is 512).
The total number of FDs available in the system (default is num_procs*16).
Each process starts off by taking min FDs, which it may grow to max FDs.
-F timer_freq
Set frequency of the 8254 clock (default is 1193181 Hertz).
Allocate heap as needed.
-i irq
Make irq the highest-priority hardware interrupt in the system. You can specify a number from 0 through 7 (default is 3).
-l nid
-l @bios_offset
-l @wpaddr
-l ![b|w|l]ioport
("el") Assign a logical node ID to this machine (default is 1). Each connected machine must have a unique logical node ID. A node ID may be specified directly as a decimal integer (nid) or read from the BIOS data area (@bios_offset), from the physical address (@wpaddr), or from an I/O port (!ioport). The forms of the node specification are as follows:
Specifies the node ID directly (decimal).
Extract the node ID from the (byte) memory area at offset bios_offset (hex) in the BIOS data area.
Extract the 16-bit node ID from the physical address paddr (hex).
Extract the node ID by reading a byte from the I/O port specified by ioport (hex).
Extract the node ID by reading a byte from the byte-wide I/O port specified by ioport (hex).
Extract the node ID by reading a word from the word-wide I/O port specified by ioport (hex).
Extract the node ID by reading a longword from the longword-wide I/O port specified by ioport (hex).
Local. Don't permit outbound network access from this computer.
Allow inbound and outbound network access.
Local. Restrict outbound network access.
Local. Restrict outbound network access for all users except root.
Disallow inbound network access, but allow unrestricted outbound access.
-m num_shared_segs
The number of shared segments (managed by the qnx_segment_*() family of functions) that will be available in this operating system image (default is 2000).
-M machine_name
The symbolic name for this computer (default is AT or PS/2). Some programs check for this name and alter their behavior accordingly. For example, the floppy disk driver (Fsys.floppy) and some PS/2 disk drivers look for the name PS/2.
-n num_names
The maximum number of names that can be registered locally by the qnx_name_attach() function (default is 80).
-o port[,baud]
Emit messages to the specified serial port (specified in hexadecimal). The baud may also be specified (decimal); the default baud is 9600.
-p num_procs[,code]
The total number of real processes, virtual circuits, and proxies that can exist at any time (default is 500; maximum is 2000). The optional ",code" is for command-line compatibility with earlier Procs and is ignored.
-P priority
Set Proc's priority to the specified value between 26 and 30. (Default: 30)
-r prefix_len
The size of the system prefix space (default is 2000).
-s num_sessions
The maximum number of sessions that will be supported (default is 64).
-S gdts ldts
Set the maximum number of global segments and local segments in the system (by default an appropriate value will be chosen). Most programs need two local segments, while few may need 30 or more. Global segments may be used by some programs for permanent shared memory.
-t num_timers
The number of timers that will be supported (default is 100). These timers are allocated to processes with the timer_create() function and returned with the timer_delete() function. See also the sleep() and alarm() functions.
-T trace_size
The size of the trace buffer, in kilobytes (default is 4K). See also the tracectrl, traceinfo, and tracelogger utilities.
-v level
Set the verbosity level (0 to 3; default is 0). The message levels are as follows:
Level 0:
An internal inconsistency was detected. Contact QNX Software Systems.
Level 1:
The Kernel was forced to take a planned but uncommon recovery action.
Level 2:
Expected actions have occurred as a result of a misbehaving process or remote computer.
Level 3:
Status messages during normal operation.
Enforce page protection in kernel. Note that this could cause problems with debuggers or with older 32-bit graphics drivers.
-z flag
Set the following flags:
Use traditional (i.e DOS) NDP faults (the default).
Use real NDP faults. Note that the n flag precludes the use of int10.
Prefer QNX behavior where discrepancies exist between Unix and QNX (the default).
Prefer Unix behavior where discrepancies exist between Unix and QNX.


Note: Proc is a required process -- it cannot be started at the command line, but must be built into the OS image.

The Process Manager (Proc) works closely with the kernel to provide essential operating system services. In fact, the kernel is bundled with the code for Proc and shares the same address space. For these reasons, Proc is a required system process in all operating system images that are built. You cannot start Proc after booting.

Most of the services Proc provides require the use of memory within Proc. The amount of memory used is controlled by tables whose sizes are set by options to Proc. Some tables are fixed in size, while other dynamically request more memory as needed.

Heapp (deprecated)
displays the heap space for Proc
Heapf (deprecated)
displays the heap space for FDs (file descriptors) (-f option).
displays the heap space for LDTs (local descriptor tables) (-S option).

Note: Both Heapp and Heapf are now handled dynamically and are no longer needed.

In QNX documentation, you'll see the Process Manager referred to as Proc. However, in your buildfile you must specify Proc32. Note that Proc32 allows both 16-bit and 32-bit programs to run.

See also:

/boot/sys/boot, buildqnx, Debugger32, prefix, sin, sinit, tracectrl, traceinfo, tracelogger

[Previous] [Contents] [Next]