OpenExtensions for z/VM

Portable header files

If an application on a UNIX system is not POSIX-compliant, then you may not be able to just move it to an OpenExtensions system and expect it to compile. Applications that are not POSIX-compliant may include headers that are not supported by OpenExtensions application services. Porting an application that does not conform to those standards requires that the you inspect any headers that may not be present on an OpenExtensions system and determine whether or not the application really requires them. As you know, headers can contain all kinds of things, from macros that simply exist for convenience to prototypes for functions that may or may not exist on a particular UNIX system.

Here is a list of some headers that you will not find on an OpenExtensions system (this list is not comprehensive):

<access.h> OpenExtensions's equivalent interfaces are in <unistd.h>, per POSIX
<ar.h> No equivalent at this time
<cur01.h> The <cur01.h> header is not standardized; replace it with <curses.h>
<dir.h> OpenExtensions supports <dirent.h> per POSIX
<macros.h> No equivalent at this time
<termio.h> OpenExtensions supports <termios.h> per POSIX
<sys/ldr.h> No equivalent at this time
<sys/mntctl.h> No equivalent at this time
<sys/mode.h> This header is non-portable. We use <modes.h> but the standards do not specifically refer to this header. An include for <fcntl.h> is more portable.
<sys/param.h> This header is often unnecessary. Try removing the includes for it and see what falls out.
<sys/ptrace.h> Although we don't have this header file, we have a kernel interface (BPX1PTR, see the IBM OpenExtensions for z/VM: Callable Services Reference, SC24-5726. Much of what AIX's <sys/ptrace.h> defines shows up in the assembler macro BPXYPTRC. It should be possible to create a header file based on the macro.
<sys/reg.h> No equivalent at this time
<sys/vmount.h> No equivalent at this time
<sys/vnode.h> No equivalent at this time
<usersec.h> No equivalent at this time
<userpw.h> No equivalent at this time