
/*=======================================================================*/
/*                                                                       */
/*  CONVAT V1.1 manual                                                   */
/*                                                                       */
/* Copyright (C) 1998@System Engineering Service, Inc.@                */
/*                                                  All Rights Reserved. */
/*                                                                       */
/* 1.Sep.1998 the first edition                                          */
/* 7.Sep.1998 the second edition                                         */
/*            some detail expressions have been changed.                 */
/*=======================================================================*/

Contents

Chapter 1 Overview
Chapter 2 Function of CONVAT
Chapter 3 Command usage and about logfile
Appendix A Output message
Appendix B Conversion table

--------------------
Chapter 1 Overview

1.1 Overview of CONVAT.

When we port C program from UNIX to Windows, we must overcome various problems.

     The line Feed code conversion. 
     Incompatibilities of library functions, system calls, include header, etc. 
     Endian (Big to little) problems. 

It's time consumptive and difficult for us to convert programs.

CONVAT is the solution! You can increase efficiency of conversion work and avoid
omission.

1.2 Environment 

  CONVAT requires
  (1)Hardware
     IBM compatible PC
     24 M bytes memory at least
     approx. 1 M bytes disk capacity (except for perl)

  (2)Software
     Windows 95 or Windows 98 or Windows NT 4.0
     Perl
        you can download at:
        - Perl for win32
          http://www.ActiveState.com/pw32/

1.3 Free version VS. Product version

   CONVAT Free version does not convert, but reports the line to be modified
 in the log file.

1.4 The relationship between CONVAT and required software.

  Figure 1.1 shows the structure of CONVATD

        +--------------+----------------+
        |   CONVAT     |   Perl         |
        +--------------+----------------+
        |     Windows 95/98/NT 4.0      |
        +-------------------------------+

             Figure 1.1
 

----------------------------
Chapter 2 Function of CONVAT

 CONVAT is the conversion aid tool that helps you to convert 
C source program from UNIX to Win32.

 The functions of CONVAT are:

   (1) Convert the line feed code (LF to CRLF).
   (2) Insert update history comment.
   (3) Simple convert function.
   (4) Normal convert function.
   (5) Special convert function.
   (6) Convert header files.
   (7) Complex convert function.
   (8) Report the line CONVAT can not convert.
   (9) Column number limitation (72) over check function.
   (10) Report the line uses "errno".
   (11) Report the line endian problem may occur.

2.1 Convert the line feed code (LF to CRLF).
   CONVAT converts line feed code "LF" to "CRLF"

2.2 Insert update history comment.

  CONVAT inserts "update history file" at the 2 line before the last of
 comment lines.
  "update history file" must be made and specified in the command line option
  of CONVAT by you.
  A sample of comment lines and update history file are:

In your input source file
+--------------------------------------------------------------------------+
|/********************************/                                        |
|/*  Function, module name       */                                        |
|/*                              */                                        |
|/*  Update history              */                                        |
|/*                              */@<-- After this line CONVAT inserts    |
|/********************************/                       history file.    |
|#include <stdio.h>                                                        |
|                                                                          |
|cc                                                                      |
+--------------------------------------------------------------------------+

A sample of history file
+--------------------------------------------------------------------------+
|/*  Update-no Y.I Aug.31.1998   */                                        |
|/*     Solaris to Win32 convert */                                        |
+--------------------------------------------------------------------------+

2.3 Simple conversion function

  See Appendix B for details

(1) Simple conversion of function call

The original line
+--------------------------------------------------------------------------+
|    stat(filename. &st);                                                  |
+--------------------------------------------------------------------------+

The converted line
+--------------------------------------------------------------------------+
|#ifndef WIN32                                                             |
|    stat(filename, &st);                                                  |
|#else                                                                     |
|    _stat(filename, &st);                                                 |
|#endif                                                                    |
+--------------------------------------------------------------------------+


(2) Simple conversion of struct

The converted line
+--------------------------------------------------------------------------+
|#ifndef WIN32                                                             |
|    struct stat st;                                                       |
|#else                                                                     |
|    struct _stat st;                                                      |
|#endif                                                                    |
+--------------------------------------------------------------------------+

(3) Simple conversion of variable type

The converted line
+--------------------------------------------------------------------------+
|#ifndef WIN32                                                             |
|    pid_t  processid;                                                     |
|#else                                                                     |
|    int    processid;                                                     |
|#endif                                                                    |
+--------------------------------------------------------------------------+

(4) Simple conversion of Define value

The converted line
+--------------------------------------------------------------------------+
|#ifndef WIN32                                                             |
|    handle = PATH_MAX;                                                    |
|#else                                                                     |
|    handle = _MAX_PATH;                                                   |
|#endif                                                                    |
+--------------------------------------------------------------------------+

2.4 Normal conversion

 See appendix B for details

The converted line
+--------------------------------------------------------------------------+
|#ifndef WIN32                                                             |
|    p = realpath(fname, rpath);                                           |
|#else                                                                     |
|    p = _fullpath(rpath, fname, _MAX_PATH);                               |
|#endif                                                                    |
+--------------------------------------------------------------------------+

2.5 Special convert function

  See appendix B for details.


2.6 Convert header files

  See appendix B for details.

The converted line
+--------------------------------------------------------------------------+
|  @#ifndef WIN32                                                         |
|    #include <widec.h>                                                    |
|    #else                                                                 |
|    #include <wchar.h>                                                    |
|    #endif                                                                |
+--------------------------------------------------------------------------+

The converted line (example of header deletion)
+--------------------------------------------------------------------------+
|  @#ifndef WIN32                                                         |
|    #include <syslog.h>                                                   |
|    #endif                                                                |
+--------------------------------------------------------------------------+

2.7 Complex convert function

  If there are some convert objects within one line, CONVAT converts all
  of them.

The converted line
+--------------------------------------------------------------------------+
|#ifndef WIN32                                                             |
|    memcpy(d, s, strlen(s));                                              |
|#else                                                                     |
|    CopyMemory(d, s, lstrlen(s));                                         |
|#endif                                                                    |
+--------------------------------------------------------------------------+

2.8 Report the line CONVAT can not convert

  See appendix B for details

The converted line (report CONVAT can not convert)
+--------------------------------------------------------------------------+
|#ifndef WIN32                                                             |
|    sig = sigsetmask(mask);                                               |
|#else                                                                     |
|    sig = sigsetmask(mask);                                               |
|/* @@@ CONVAT: Should be modified. @@@ */                                 |
|#endif                                                                    |
+--------------------------------------------------------------------------+


2.9 Column number limitation (72) over check function.

  Report line no to log file.
  See Chapter 3 section 2, a log file sample.

2.10 Report the line uses "errno".

  Report line no to log file.
  See Chapter 3 section 2, a log file sample.

2.11 Report the line endian problem may occur.

  Report line no to log file.
  See Chapter 3 section 2, a log file sample.

--------------------
Chapter 3 Command usage and about logfile

3.1 Command usage

 CONVAT command usage is:

+--------------------------------------------------------------------------+
|convat [-d DefineValue] [-c comment-file-name] [-h history-file-name]     |
|                 [-f] [-m]                                                |
|                 input-file-name output-file-name log-file-name           |
+--------------------------------------------------------------------------+

+------------------------+--------------------------------+--------------+
|  option                |   description                  | default value|
+------------------------+--------------------------------+--------------+
| -d DefineValue         | CONVAT uses this DefineValue at|  WIN32       |
| or                     | "#ifndef DefineValue" line.    |              |
| -D DefineValue         | According to compile option    |              |
|                        | you can create Win32 code or   |              |
|                        | UNIX code.                     |              |
|                        |                                |              |
|                        |(exj                           |              |
|                        | #ifndef WIN32 <--              |              |
|                        | cc                           |              |
|                        | #endif                         |              |
+------------------------+--------------------------------+--------------+
| -c comment-file-name   | A comment file name.           | none         |
| or                     | comment line which should be   |(not appended)|
| -C comment-file-name   | inserted before converted line.|              |
+------------------------+--------------------------------+--------------+
| -h history-file-name   | A history file name.           | none         |
| or                     | See chapter 2.                 |(not appended)|
| -H history-file-name   |                                |              |
+------------------------+--------------------------------+--------------+
| -f                     | How to convert open/read/write/| none         |
| or                     | close functions.               |(not convert) |
| -F                     | See appendix B.                |              |
+------------------------+--------------------------------+--------------+
| -m                     | How to convert malloc and free | none         |
| or                     | functions.                     |(not convert) |
| -M                     | See appendix B.@@@@@@@@|              |
+------------------------+--------------------------------+--------------+
|input-file-name         | A original source file name.   | none         |
|                        | This is a obligatory option.   |              |
+------------------------+--------------------------------+--------------+
|output-file-name        | A output file name.            | none         |
|                        | This is mandatory.             |              |
|                        | You should not specify input-  |              |
|                        | file-name.                     |              |
+------------------------+--------------------------------+--------------+
|log-file-name           | A log file name.               | none         |
|                        | This is mandatory.             |              |
|                        | You can specify neither input- |              |
|                        | file-name nor output-file-name.|              |
+------------------------+--------------------------------+--------------+

--------------------
3.2 The format of log file

  Log file of CONVAT informs:

  - specified options
  - converted line no and the type of conversion
  - the number of lines converted, and conversion ratio
  - line no that is over 72 columns
  - line no that uses errno
  - line no that endian problem may occur

  This is a sample of CONVAT Product version V1.1 logfile.
+-----------------------------------------------------------------------------+
|CONVAT Product Version 1.1                                                   |
|*** Convert Information ***                                                  |
|Start Time   : Wed Jun 03 16:32:27 1998                                      |
|Define Value : WIN32                                                         |
|Input File   : test.c                                                        |
|Output File  : test.out                                                      |
|Log File     : log2.out                                                      |
|History File : None                                                          |
|Comment File : None                                                          |
|code conv cmd: nkf32                                                         |
|Convert Mode : open/read/write/close are not converted                       |
|               malloc/free are not converted                                 |
|                                                                             |
|SBF2001I(fu2n) *** CONVAT(Convert char. code & Add history comments) Star    |
|t. 16:32:27 ***                                                              |
|SBF4802I(padh) Converted char. code                                          |
|SBF2002I(fu2n) *** CONVAT(Convert char. code & Add history comments) End.    |
|   16:32:28 ***                                                              |
|SBF2001I(fu2n) *** CONVAT(Check define-value) Start. 16:32:28 ***            |
|SBF2002I(fu2n) *** CONVAT(Check define-value) End.   16:32:28 ***            |
|SBF2001I(fu2n) *** CONVAT(Convert functions) Start. 16:32:28 ***             |
|line      103: VAR-NAME-CONVERT   PATH_MAX   -+                              |
|line      109: VAR-NAME-CONVERT   stat        | note) These messages are     |
|line      116: VAR-NAME-CONVERT   pid_t       |       for product version    |
|line      133: FUNC-NAME-CONVERT  fileno      |       only.                  |
|line      140: FUNC-NAME-CONVERT  stat        |                              |
|line      161: FUNC-NAME-CONVERT  fstat       |                              |
|line      175: FUNC-NAME-CONVERT  getpid      |                              |
|line      182: FUNC-ARG-CONVERT   mkdir      -+                              |
|line      215: SHOULD-BE-MODIFIED close                                      |
|line      274: SHOULD-BE-MODIFIED close                                      |
|Input File :      295 lines                                                  |
|Output File:      310 lines                                                  |
|Converted  :       18 lines,        5%                                       |
|SBF2002I(fu2n) *** CONVAT(Convert functions) End.   16:32:28 ***             |
|SBF2001I(fu2n) *** CONVAT(Check Column length(Over 72)) Start. 16:32:28 ***  |
|line 230: bar     =            (char *)VirtualAlloc(NULL, c  PAGE_READWRITE);|
|SBF2002I(fu2n) *** CONVAT(Check Column length(Over 72)) End.   16:32:29 ***  |
|SBF2001I(fu2n) *** CONVAT(Check errno) Start. 16:32:29 ***                   |
|line 41:#include <errno.h>                                                   |
|line 141:                       dcode2 = errno ;                             |
|line 156:                       dcode2 = errno ;                             |
|line 168:                       dcode2 = errno ;                             |
|line 180:                       dcode2 = errno ;                             |
|line 233:            errdata.dtlcode = errno ;                               |
|line 292:               errdata.dtlcode = errno ;                            |
|SBF2002I(fu2n) *** CONVAT(Check errno) End.   16:32:29 ***                   |
|SBF2001I(fu2n) *** CONVAT(Check Byte-order problem) Start. 16:32:29 ***      |
|line 95:     sockbptr->portno = addr.sin_port ;                              |
|line 96:     sockbptr->ip = addr.sin_addr.s_addr ;                           |
|line 98:     memcpy(sock.fncname,"accept          ",16);                     |
|SBF2002I(fu2n) *** CONVAT(Check Byte-order problem) End.   16:32:29 ***      |
|End Time     : Wed Jun 03 16:32:29 1998                                      |
+-----------------------------------------------------------------------------+

Appendix A Output message


[message-id]    SBF1001E
[message]  Invalid Arguments
[explanation]
  Specified option is not valid.
[required action]
  Check your command and reissue.
                  --------------------------
[meesage-id]    SBF1002E
[message]  Out of Memory
[explanation]
  CONVAT could not get enough memory.
[required action]
  Check your system.
                  --------------------------
[meesage-id]      SBF1003E
[message]    Cannot open file (%s)
[explanation]
  CONVAT could not open %s file.
[required action]
  Check %s file exists or is readable.
  Check temp folder exists or capacity of disk.
                  --------------------------
[meesage-id]      SBF1004E
[message]    Cannot read file (%s)
[explanation]
  CONVAT could not read %s file.
[required action]
  Check %s file exists or is readable.
  Check temp folder exists or capacity of disk.
                  --------------------------
[meesage-id]      SBF1005E
[message]    Cannot write file (%s)
[explanation]
  CONVAT could not put %s file.
[required action]
  Check %s file exists or is readable.
  Check temp folder exists or capacity of disk.
                   --------------------------
[meesage-id]      SBF1006E
[message]    Cannot regist
[explanation]
  CONVAT Product version fails registration.
[required action]
  Check your windows registry or regist-no of CONVAT.

                  --------------------------
[meesage-id]      SBF2001I
[message]    *** CONVAT(%s1) Start. %s2 ***
[explanation]
  CONVAT started %s1 process. %s2 is started time.
[required action]
  None.

                  --------------------------
[meesage-id]      SBF2002I
[message]    *** CONVAT(%s1) End.   %s2 ***
[explanation]
  CONVAT ended %s1 process. %s2 is ended time.
[required action]
  None.

                  --------------------------
[meesage-id]      SBF2051E
[message]    Cannot make Tempfile-Path
[explanation]
  CONVAT could not make temp file.
[required action]
  Check temp folder exists or capacity of disk.
                  --------------------------
[meesage-id]      SBF2052E
[message]    **** Error Occured at CONVAT(%s). Code = %d ****
[explanation]
  CONVAT fails at %s process.
[required action]
  Check your command/system and reissue.
                  --------------------------
[meesage-id]      SBF2053E
[message]    **** CONVAT Command Terminated. ****
[explanation]
  CONVAT aborted process.
[required action]
  Check your command/system and reissue.
                  --------------------------
[meesage-id]      SBF3001E
[message]    %s: line %d: EOF in argument of function
[explanation]
  input file %s may be broken at line %d.
[required action]
  Check input file.
                  --------------------------
[meesage-id]      SBF3002E
[message]    %s: line %d: EOF in string literal
[explanation]
  Input file %s may be broken at line %d.
[required action]
  Check input file.
                 --------------------------
[meesage-id]      SBF3003E
[message]    %s: line %d: newline in string literal
[explanation]
  Input file %s may be broken at line %d.
[required action]
  Check input file.
                  --------------------------
[meesage-id]      SBF3004E
[message]    %s: line %d: EOF in comment
[explanation]
  Input file %s may be broken at line %d.
[required action]
  Check input file.
                  --------------------------
[meesage-id]      SBF3005E
[message]    Too few arguments to function (%s:#%d)
[explanation]
  Input file %s may be broken at line %d.
[required action]
  Check input file.
                  --------------------------
[meesage-id]      SBF4001E
[message]    Invalid arguments
[explanation]
  Specified option is not valid.
[required action]
  Check your command and reissue.

                  --------------------------
[meesage-id]      SBF4002E
[message]    Cannot open file (%s)
[explanation]
  CONVAT could not open %s file.
[required action]
  Check %s file exists or is readable.
  Check temp folder exists or capacity of disk.
                  --------------------------
[meesage-id]      SBF4003E
[message]    Cannot find end of comment in %s
[explanation]
  Input file %s may be broken at line %d.
[required action]
  Check input file.
                  --------------------------
[meesage-id]      SBF4401W
[message]    Define (%s) is already used
[explanation]
  Define Value that is specified by option -d is already used in input file (%s).
  CONVAT continues conversion.
[required action]
  Check your command, option -d and reissue.

                  --------------------------
[meesage-id]      SBF4801I
[message]    Add history And Converted char. code
[explanation]
  Insert history and code conversion ended normally.
[required action]
  None.
  
                  --------------------------
[meesage-id]      SBF4802I
[message]    Converted char. code
[explanation]
  Code conversion ended normally.
[required action]
  None.
  
--------------------

Appendix B Conversion table

@Convert type are categorized as
		simple : simply convert
		normal : requires parameter change
		special : some function are specially converted
		unable : can not convert but report to log

1) System calls and Library functions.

Function name	type		how to convert
------------------------------------------------------------------------------
abort		simple		--> ExitProcess(0)
accept		unable
access		simple		--> _access(...)
alloca		simple		--> _alloca(...)
bind		unable
chdir		simple		--> _chdir(...)
chmod		simple		--> _chmod(...)
close		<-f specified> : simple
				-->_close(...)
		<-f is not specified> : unable
closedir	unable
connect		unable
dup		simple		--> _dup(...)
dup2		simple		--> _dup2(...)
ecvt		simple		--> _ecvt(...)
execl		simple		--> _execl(...)
execle		simple		--> _execle(...)
execlp		simple		--> _execlp(...)
execv		simple		--> _execv(...)
execve		simple		--> _execve(...)
execvp		simple		--> _execvp(...)
exit		normal		--> ExitProcess(status)
fcntl		unable
fcvt		simple		--> _fcvt(...)
fdopen		simple		--> _fdopen(...)
fileno		simple		--> _fileno(...)
fork		unable
free		special	<-m specified>
				free(ptr) --> 
				VirtualFree(ptr, 0, MEM_DECOMMIT);
				VirtualFree(ptr, 0, MEM_RELEASE);
			<-m is not specified>
				CONVAT does nothing.
fstat		simple		--> _fstat(...)
ftime		simple		--> _ftime(...)
ftok		unable
gcvt		simple		--> _gcvt(...)
getch		simple		--> _getch(...)
getcwd		simple		--> _getcwd(...)
getopt		unable
getpid		simple		--> _getpid()
getppid		unable
gettimeofday	unable
getuid		unable
getw		simple		--> _getw(...)
hypot		simple		--> _hypot(...)
inet_addr	unable
isascii		simple		--> _isascii(...)
isatty		simple		--> _isatty(...)
j0		simple		--> _j0(...)
j1		simple		--> _j1(...)
jn		simple		--> _jn(...)
kill		unable
lfind		simple		--> _lfind(...)
lfmt		unable
listen		unable
logb		simple		--> _logb(...)
lsearch		simple		--> _lsearch(...)
lseek		simple  	--> _lseek(...)
malloc		normal	<-m specified>
		malloc(size) -->
		VirtualAlloc(NULL, size, MEM_RESERVE | MEM_COMMIT,PAGE_READWRITE)
			<-m is not specified>
				CONVAT does nothing.
matherr		simple		--> _matherr(...)
max		simple		--> _max(...)
memccpy		simple		--> _memccpy(...)
min		simple		--> _min(...)
mkdir		normal		mkdir(path, mode) --> _mkdir(path)
mktemp		simple		--> _mktemp(...)
msgctl		unable
msgget		unable
msgrcv		unable
msgsnd		unable
mutex_lock	unable
mutex_unlock	unable
nextafter	simple		--> _nextafter(...)
open		<-f specified> : simple
				--> _open(...)
		<-f is not specified> :unable
opendir		unable
pclose		simple		--> _pclose(...)
pfmt		unable
pipe		simple		--> _pipe(...)
poll		unable
popen		simple		--> _popen(...)
putenv		simple		--> _putenv(...)
putw		simple		--> _putw(...)
putws		simple		--> _putws(...)
read		<-f specified> : simple
				--> _read(...)
		<-f is not specified> :unable
readdir		unable
realpath	normal		realpath(file_name, resolved_name) -->
				_fullpath(resolved_name, file_name, _MAX_PATH)
recvmsg		unable
rmdir		simple		--> _rmdir(...)
scalb		simple		--> _scalb(...)
semctl		unable
semget		unable
semop		unable
sendmsg		unable
setcat		unable
setlabel	unable
setsid		unable
shmat		unable
shmctl		unable
shmdt		unable
shmget		unable
shutdown	unable
sigaction	unable
sigaddset	unable
sigemptyset	unable
sigprocmask	unable
sigwait		unable
sleep		special		sleep(second) --> Sleep(second*1000)
	Warning) CONVAT does not concern overflow if you set over 4294967sec
socket		unable
socketpair	unable
stat		simple		--> _stat(...)
statvfs		unable
strdup		simple		--> _strdup(...)
syslog		unable
swab		simple		--> _swab(...)
tempnam		simple		--> _tempnam(...)
thr_create	unable
thr_self	unable
thr_sigsetmask	unable
thr_suspend	unable
toascii		simple		--> _toascii(...)
tzset		simple		--> _tzset(...)
umask		simple		--> _umask(...)
ungetch		simple		--> _ungetch(...)
unlink		simple		--> _unlink(...)
utime		simple		--> _utime(...)
wcswcs		simple		--> wcsstr(...)
write		<-f specified> : simple
				--> _write(...)
		<-f is not specified> :unable
writev		unable
y0		simple		--> _y0(...)
y1		simple		--> _y1(...)
yn		simple		--> _yn(...)

2)Structure / type of variables

name		type		how to convert
-----------------------------------------------------------------------------
stat		simple		--> _stat
mode_t		simple		--> int
pid_t		simple		--> int
ssize_t		simple		--> int

3) Define value

name		type		how to convert
-----------------------------------------------------------------------------
PATH_MAX	simple		--> _MAX_PATH

4) "errno"

errno		type  		how to convert
-----------------------------------------------------------------------------
ECONNRESET	simple		--> WSAECONNRESET
ENOTCONN	simple		--> WSAENOTCONN
ETIMEDOUT	simple		--> WSAETIMEDOUT
ECONNREFUSED	simple		--> WSAECONNREFUSED
EWOULDBLOCK	simple		--> WSAEWOULDBLOCK
EINPROGRESS	simple		--> WSAEINPROGRESS

5) Header files

5-1)@There are include files both in Solaris and in Win32.

in Solaris 2.x		type		how to convert
------------------------------------------------------------------------
alloca.h		simple		--> malloc.h
curses.h		simple		--> conio.h
fcntl.h			no operation
floatingpoint.h		simple		stdlib.h
ieeefp.h		simple		float.h
limits.h		no operation
math.h			no operation
stdlib.h		no operation
sys/ddi.h		simple		--> stdlib.h
sys/stat.h		no operation
sys/types.h		no operation
sys/uio.h		simple		--> io.h
unistd.h		unable
wctype.h		simple		ctype.h
widec.h			simple		wchar.h 

5-2) There is no include file in Win32, but exists in Solaris.
iCONVAT deletes header. "/*" means all files included in the directory.)

aio.h		inet/*		net/*		re_comp.h
ar.h		ja/*		netconfig.h	regex.h
archives.h	japanese/*	netdb.h		regexp.h
arpa/*		jcode.h		netdir.h	regexpr.h
bsm/*		jctype.h	netinet/*	revolv.h
cpio.h		kerberos/*	nfs/*		rje.h
crypt.h		kstat.h		n1_types.h	rmmount.h
deflt.h		kvm.h		nlist.h		rpc/*
demangle.h	langinfo.h	note.h		rpcsvc/*
des/*		lastlog.h	nss_common.h	sac.h
devmgmt.h	libelf.h	nss_dbdefs.h	sched.h
dial.h		libgen.h	nss_netdir.h	security/*
dirent.h	libgenIO.h	nsswitch.h	semaphore.h
dlfcn.h		libintl.h	panel.h		sgtty.h
elf.h		libw.h		pfmt.h		shadow.h
eti.h		linenum.h	pkgdev.h	siginfo.h
euc.h		link.h		pkginfo.h	std.h
fatal.h		listen.h	pkglocs.h	storclass.h
fmtmsg.h	macros.h	pkgstrct.h	strings.h
fnmatch.h	maillock.h	pkgtrans.h	stropts.h
form.h		menu.h		poll.h		sum.h
ftw.h		mle/*		proc_service.h	syms.h
getwidth.h	mon.h		prof.h		synch.h
glob.h		monetary.h	protocols/*	sys/acct.h
grp.h		mqueue.h	pthread.h	sys/acl.h
ibmjcode.h	nan.h		pw.h		sys/aflt.h
iconv.h         ndbm.h		pwd.h		sys/aio.h
sys/aio_impl.h		sys/cg2reg.h	sys/dbriio.h		sys/elf_386.h         
sys/aio_req.h		sys/cg2var.h	sys/dbrireg.h		sys/elf_M32.h           
sys/archsystem.h	sys/cg3var.h	sys/dbrivar.h		sys/elf_SPARC.h         
sys/ascii.h		sys/cg4reg.h	sys/ddi_impldefs.h	sys/elf_notes.h           
sys/asm_linkage.h	sys/cg4var.h	sys/ddi_implfuncs.h     sys/elf_ppc.h   
sys/asynch.h		sys/cg6fbc.h	sys/ddi_isa.h		sys/elftypes.h          
sys/attr.h		sys/cg6reg.h	sys/ddidmareq.h		sys/err.h              
sys/audio_4231.h	sys/cg6tec.h	sys/ddimapreq.h		sys/errno.h          
sys/audio_4231_debug.h	sys/cg6thc.h	sys/ddipropdefs.h	sys/ertyp.h           
sys/audio_4231_dma.h	sys/cg6var.h	sys/dditypes.h		sys/esunddi.h          
sys/audio_79c30.h	sys/cg8-p4reg.h	sys/debug/*		sys/ethernet.h          
sys/audiodebug.h	sys/cg8-p4var.h	sys/debug.h		sys/euc.h            
sys/audioio.h		sys/cg8reg.h	sys/dedump.h		sys/eucioctl.h           
sys/audiovar.h		sys/cg8var.h	sys/des.h		sys/exec.h            
sys/autoconf.h		sys/cg9reg.h	sys/devops.h		sys/exechdr.h           
sys/auxv.h		sys/cg9var.h	sys/dirent.h		sys/fault.h            
sys/avintr.h		sys/cis.h	sys/disp.h		sys/fbio.h            
sys/be.h		sys/cis_handlers.h	sys/dkbad.h	sys/fbuf.h           
sys/bitmap.h		sys/cisprotos.h		sys/dki_lkinfo.h	sys/fc4/*
sys/bmac.h		sys/class.h		sys/dki_lock.h		sys/fcntl.h            
sys/bootconf.h		sys/cmn_err.h		sys/dkio.h		sys/fdio.h            
sys/bpp_io.h		sys/comvec.h		sys/dklabel.h		sys/fdreg.h          
sys/bpp_reg.h		sys/condvar.h		sys/dkmpio.h		sys/fdvar.h           
sys/bpp_bar.h		sys/condvar_impl.h	sys/dl.h		sys/feature_tests.h      
sys/buf.h		sys/conf.h		sys/dlpi.h		sys/file.h        
sys/bufmod.h		sys/consdev.h		sys/dmaga.h		sys/filio.h          
sys/bustypes.h		sys/core.h		sys/dnlc.h		sys/flock.h          
sys/bw2reg.h		sys/cpu.h		sys/door.h		sys/flock_impl.h       
sys/bw2var.h		sys/cpuvar.h		sys/door_data.h		sys/fpu/*               
sys/byteorder.h		sys/cred.h		sys/dumphdr.h		sys/frame.h        
sys/callib.h		sys/crtctl.h		sys/ecppio.h		sys/fs/*            
sys/callo.h		sys/cs.h		sys/ecppreg.h		sys/fs_subr.h       
sys/cdio.h		sys/cs_priv.h		sys/ecppsys.h		sys/fsid.h           
sys/cdump.h		sys/cs_strings.h	sys/ecppvar.h		sys/fsr.h            
sys/cg14io.h		sys/cs_types.h		sys/eeprom_com.h	sys/fstyp.h          
sys/cg14reg.h		sys/cursor_impl.h	sys/elf.h		sys/gp1cmds.h        
sys/gp1reg.h		sys/kbd.h               sys/mntent.h            sys/ppp_pap.h           
sys/gp1var.h          	sys/kbdreg.h      	sys/mnttab.h            sys/ppp_sys.h          
sys/gpio.h           	sys/kbio.h              sys/modctl.h            sys/priosntl.h            
sys/gprof.h           	sys/klwp.h              sys/mode.h              sys/prioinherit.h         
sys/hdio.h           	sys/kmem.h              sys/mount.h             sys/proc/*                
sys/hme.h          	sys/kmem_impl.h         sys/msacct.h            sys/proc.h             
sys/hme_mac.h        	sys/kobj.h              sys/msg.h               sys/processor.h          
sys/hme_phy.h         	sys/kobj_impl.h         sys/msgbuf.h            sys/procfs.h             
sys/hwconf.h            sys/kstat.h             sys/msio.h              sys/procset.h            
sys/i82586.h        	sys/lstr.h              sys/msreg.h             sys/proctl.h             
sys/ia.h            	sys/ksyms.h             sys/mtio.h              sys/promif.h            
sys/iapriocntl.h       	sys/ksynch.h            sys/mutex.h             sys/promimpl.h         
sys/idrom.h         	sys/kvtopdata.h         sys/netconfig.h         sys/protosw.h           
sys/idvar.h            	sys/lance.h             sys/nexusdefs.h         sys/prsystm.h           
sys/ie.h                sys/ldterm.h            sys/note.h              sys/psw.h               
sys/ieeefp.h            sys/le.h                sys/obpdefs.h           sys/ptem.h              
sys/inline.h            sys/lihdr.h             sys/open.h              sys/ptms.h             
sys/instance.h          sys/link.h              sys/openprom.h          sys/ptrace.h            
sys/ioccom.h            sys/llc1.h              sys/openpromio.h        sys/ptyvar.h            
sys/ioctl.h             sys/lock.h              sys/p4reg.h             sys/pw_dblbuf.h        
sys/iorec.h             sys/lockfs.h            sys/param.h             sys/qe.h                
sys/ipc.h               sys/log.h               sys/pathconf.h          sys/qec.h          
sys/ipd_extern.h        sys/logindmux.h         sys/pathname.h          sys/ramdac.h           
sys/ipd_ioctl.h         sys/lwp.h               sys/pcb.h               sys/reboot.h            
sys/ipd_sys.h           sys/mace.h           	sys/pci.h               sys/reg.h              
sys/ipi3.h              sys/machlock.h         	sys/pcmcia.h            sys/regset.h           
sys/ipi_chan.h     	sys/machsig.h           sys/pctypes.h           sys/resource.h           
sys/ipi_driver.h        sys/machtypes.h         sys/pem.h               sys/rlioctl.h          
sys/ipi.error.h         sys/map.h               sys/pfmod.h             sys/rt.h
sys/isa_defs.h          sys/mem.h               sys/pirec.h             sys/rtpriocntl.h         
sys/isdev.h             sys/memfb.h             sys/poll.h              sys/rwloch.h         
sys/isdnio.h            sys/memlist.h           sys/ppp_chap.h          sys/rwlock_impl.h        
sys/isvar.h             sys/memreg.h            sys/ppp_diag.h          sys/sad.h               
sys/jaio.h              sys/mkdev.h             sys/ppp_extern.h        sys/scsi/*              
sys/jioctl.h            sys/mman.h              sys/ppp_ioctl.h         sys/seg_drv.h            
sys/jleio.h             sys/mmcodecreg.h        sys/ppp_lqm.h           sys/select.h             
sys/sem.h               sys/strredir.h          sys/tnf.h           	sys/vnode.h             
sys/sema_impl.h         sys/strstat.h           sys/tnf_com.h        	sys/vol.h                
sys/semaphore.h         sys/strsubr.h           sys/tnf_probe.h         sys/vtoc.h            
sys/ser_async.h		sys/strsun.h            sys/tnf_writer.h        sys/vtrace.h         
sys/ser_syns.h          sys/strtty.h            sys/trap.h       	sys/vuid_event.h          
sys/ser_zscc.h          sys/swap.h              sys/ts.h           	sys/vuid.queue.h           
sys/session.h           sys/sx.h                sys/tspriocntl.h        sys/vuid_state.h         
sys/shm.h               sys/synch.h             sys/ttcompat.h          sys/vuid_store.h           
sys/siginfo.h           sys/syscall.h           sys/ttold.h          	sys/wait.h              
sys/signal.h		sys/sysconf.h           sys/tty.h        	sys/xdcreg.h         
sys/sleepq.h    	sys/sysconfig.h         sys/ttychars.h      	sys/xderr.h            
sys/sobject.h       	sys/sysconfig_impl.h    sys/ttydev.h       	sys/xdreg.h              
sys/soc_cq_defs.h	sys/sysinfo.h           sys/tuneable.h    	sys/xdvar.h            
sys/socket.h          	sys/syslog.h            sys/turnstile.h 	sys/xtreg.h              
sys/socketvar.h         sys/sysmacros.h         sys/uadmin.h            sys/xtvar.h              
sys/sockio.h            sys/systeminfo.h   	sys/ucontext.h          sys/xycom.h            
sys/sockmod.h           sys/systm.h         	sys/ulimit.h            sys/xycreg.h            
sys/socmap.h            sys/t_kuser.h       	sys/un.h                sys/xyerr.h             
sys/socreg.h            sys/t_lock.h        	sys/unistd.h            sys/xyreg.h             
sys/socvar.h            sys/tblock.h        	sys/user.h              sys/xyvar.h           
sys/spl.h               sys/telioctl.h          sys/ustat.h             sys/zsdev.h           
sys/sservise.h          sys/termio.h            sys/utrap.h             sysexits.h     
sys/stack.h             sys/termios.h           sys/utsname.h           syslog.h       
sys/statfs.h            sys/termiox.h           sys/utssys.h            table.h       
sys/statvfs.h           sys/thread.h            sys/va_list.h           tar.h         
sys/stcconf.h           sys/ticlts.h        	sys/var.h               term.h        
sys/stcio.h             sys/ticots.h         	sys/varargs.h           termio.h 
sys/stcreg.h            sys/ticotsord.h         sys/vfs.h               termios.h
sys/stcvar.h            sys/tihdr.h            	sys/vfstab.h            thread.h      
sys/stermio.h           sys/time.h           	sys/visual_io.h         thread_db.h
sys/stp4020_reg.h       sys/timer.h             sys/vjcomp.h            tiuser.h
sys/stp4020_var.h       sys/times.h             sys/vm.h              	tnf/*
sys/stream.h           	sys/timod.h             sys/vmmac.h             tzfile.h
sys/strlog.h        	sys/tirdwr.h            sys/vmmeter.h           ucontext.h
sys/strmdep.h        	sys/tiuser.h            sys/vmparam.h           ulimit.h
sys/stropts.h         	sys/tl.h                sys/vmsystm.h           unctrl.h
userdefs.h     		utmpx.h    		values.h		wordexp.h
ustat.h        		v7/*           		vm/*      		wordexp.h
utime.h       		v9/*     	        volmgt.h 		wstring.h
utmp.h       		valtools.h   		wait.h       

The end of manual.
