Solaris(TM) OE Analyzer for CC and Cobol Source Code Migration Analysis Results

 <  Day Day Up  >    

Solaris(TM) OE Analyzer for C/C++ and Cobol Source Code Migration Analysis Results

Table of Contents

  • How To Read This Report

  • Analysis Summary

  • APIs Encountered

  • Detailed Analysis

  • Levels of Porting Difficulty

How To Read This Report

This report is created by the "Solaris(TM) OE Analyzer for C/C++ and Cobol Source Code"after analyzing your source file(s).

The report includes an Analysis Summary which displays your input and options to the tool.

The APIs Encountered section lists the APIs which may pose some issues when porting your C/C++/Cobol source file(s) from other operating environments to the Solaris(TM) OE. The weight information was created to give a sense of how much work it takes to port the issue, thus helping in the estimates. It does not translate directly to any time value, and its value and significance is constantly changing from project to project.

The next section is the Detailed Analysis. It documents in which file and on what line the porting issue was found. The "COMMENT" portion gives a more detailed explanation as to why this particular issue may pose a problem. The comment also gives the recommended solutions. If there is no solution, it simply says that the user may have to write his/her own wrapper for that particular issue.

Back to Top

Analysis Summary

Analysis Date:

07-07-2003 09:59:58 PDT

Input :

C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp

- Number of Sub Directories

5

- Number of C Files

11

- Number of C++ Files

- Number of COBOL Files

Analysis Options :

- Use Database for Analysis

Yes

- Platform Options

Linux

- Show all functions NOT in database

No

- Show all functions NOT checking for issue

No

Back to Top

APIs Encountered

No.

API Name

Level of Difficulty

Occurrences

1

recvfrom

Easy

2

2

connect

Easy

6

3

gettimeofday

Easy

8

4

strftime

Easy

1

5

syslog

Easy

1

6

argz_create_sep

Hard

1

7

getopt_long

Easy

2

8

sendto

Easy

5

9

getsockname

Easy

4

10

setsockopt

Easy

2

11

fsync

Easy

3

12

open

Easy

1

13

openlog

Easy

2

14

select

Medium

4

15

argz_next

Hard

6

16

fstat

Easy

2

17

hosts_ctl

Hard

1

18

argz_count

Hard

1

19

bind

Easy

5

20

argz_extract

Hard

1

 

Your Average Level of Porting Difficulty Is :

Easy

 

Back to Top

Detailed Analysis

Back To APIs Encountered Table

1) recvfrom

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftp_io.c on line number(s) :

237
241

COMMENT :

recvfrom ( 2.0 ) - receive a message from a socket

int recvfrom ( int s, void * buf, int len, unsigned int flags struct sockaddr * from, int * fromlen ) ;

These are the error conditions that may be returned under Solaris 8.0 but not Linux LSB

ECONNRESET A connection was forcibly closed by a peer.

ETIMEDOUT The connection timed out during connection establishment, or due to a transmission timeout on active connection.

EOPNOTSUPP The specified flags are not supported for this socket type.

ETIMEDOUT The connection timed out during connection establishment, or due to a transmission timeout on active connection.

EIO An I/O error occurred while reading from or writing to the file system.

ENOBUFS Insufficient resources available in the system to perform the operation.

ENOMEM Insufficient memory was available to fulfill the request.

Back To APIs Encountered Table

2) connect

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftpd .c on line number(s) :

429

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftp_file.c on line number(s) :

101
201
216
494

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftpd_file.c on line number(s) :

514

COMMENT :

connect ( 2.0 ) - initiate a connection on a socket

int connect ( int socket, const struct sockaddr * address, size_t address_len ) ;

These are error conditions that may be returned under Solaris 8.0 but not Linux LSB

EADDRNOTAVAIL The specified address is not available on the remote machine.

EINVAL The connection attempt was interrupted before any data arrived by the delivery of a signal.

EAFNOSUPPORT Addresses in the specified address family cannot be used with this socket.

EALREADY The socket is non-blocking and a previous connection attempt has not yet been completed.

EINTR The connection attempt was interrupted before any data arrived by the delivery of a signal.

ENOSR There were insufficient STREAMS resources available to complete the operation.

EPROTOTYPE The file referred to by name is a socket of a type other than type s ( for example, s is a SOCK_DGRAM socket, while name refers to a SOCK_STREAM socket ) 0.0

In addition, a different type " is used to define the third parameter on Solaris 8.0

Back To APIs Encountered Table

3) gettimeofday

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftp.c on line number(s) :

541
543
620
622

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ats.c on line number(s) :

41
49
112
127

COMMENT :

There is parameter difference

On Linux LSB

int gettimeofday ( struct timeval * TP, struct timezone * TZP )

On Solaris 8.0

int gettimeofday ( struct timeval * tp, void * ) ;

The second argument to gettimeofday ( ) and settimeofday ( ) should be a pointer to NULL.

Back To APIs Encountered Table

4) strftime

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 µogger.c on line number(s) :

99

COMMENT :

Some of the flags used are GNU extensions and are not available on Solaris 8.0 For example The following flags are all GNU extensions. The first three affect only the output of numbers

' _ '

' - '

' 0.0 '

padding with spaces.

' ^ '

possible ( * note Case Conversion ) 0.0

For detail of these flags, see Linux document " 0.0

On Solaris 8.0, write your own implementation.

Back To APIs Encountered Table

5) syslog

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 µogger.c on line number(s) :

113

COMMENT :

syslog - send messages to the system

There are differences in the options and facility which are available on Linux LSB but not on Solaris 8.0

For options

LOG_PERROR is available on Linux LSB

For facility

LOG_AUTHPRIV - security/authorization messages ( private )

LOG_SYSLOG - messages generated internally by syslogd

Back To APIs Encountered Table

6) argz_create_sep

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftp.c on line number(s) :

312

COMMENT :

error_t argz_create_sep ( const char * STRING, int SEP, char * * ARGZ, size_t * ARGZ_LEN )

The ' argz_create_sep '

STRING into an argz vector ( returned in ARGZ and ARGZ_LEN ) by splitting it into elements at every occurrence of the character SEP.

This function is not available on Solaris 8.0, write your own implementation.

Back To APIs Encountered Table

7) getopt_long

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftpd.c on line number(s) :

573

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftp.c on line number(s) :

815

COMMENT :

int getopt_long ( int ARGC, char * const * ARGV, const char * SHORTOPTS, struct option * LONGOPTS, int * INDEXPTR )

Decode options from the vector ARGV ( whose length is ARGC ) 0.0 The argument SHORTOPTS describes the short options to accept, just as it does in ' getopt '

options to accept ( see above ) 0.0

This function is not available on Solaris 8.0, write your own implementation.

Back To APIs Encountered Table

8) sendto

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftp_io.c on line number(s) :

79
100
140
170
192

COMMENT :

sendto ( 2.0 ) - send a message from a socket

On Linux LSB

int sendto ( int s, const void * msg, int len, unsigned int flags, const struct sockaddr * to, int tolen ) ;

Solaris 8.0 had different return type

#include <sys/socket.h>

ssize_t sendto ( int socket, const void * message, size_t length, int flags, const struct sockaddr * dest_addr, size_t dest_len ) ;

Solaris 8.0 may not have the following error conditions as they exist in Linux LSB

ENOTSOCK The argument s is not a socket.

EFAULT An invalid user space address was specified for a parameter.

EWOULDBLOCK The socket is marked non-blocking and the requested operation would block.

Back To APIs Encountered Table

9) getsockname

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftpd.c on line number(s) :

425
428

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftp.c on line number(s) :

538
617

COMMENT :

getsockname ( 2.0 ) - get socket name

int getsockname ( int s, struct sockaddr * name, int * namelen )

These are the error conditions that may be returned under Solaris 8.0 but not Linux LSB

ENOMEM There was insufficient memory available for the operation to complete.

ENOSR There were insufficient STREAMS resources available for the operation to complete.

Back To APIs Encountered Table

10) setsockopt

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftp_file.c on line number(s) :

361

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftpd_file.c on line number(s) :

503

COMMENT :

setsockopt ( 2.0 ) - get and set options on sockets

#include <sys/socket.h>

int setsockopt ( int socket, int level, int option_name, const void * option_value, size_t option_len ) ;

On Solaris 8.0, it does not define SO_DONTROUTE, SO_SNDLOWAT, SO_RCVLOWAT, SO_SNDTIMEO, SO_RCVTIMEO, SO_TYPE, SO_ERROR, EFAULT

Back To APIs Encountered Table

11) fsync

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftpd.c on line number(s) :

486

Appears in C:  ocuments and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftp.c on line number(s) :

546
625

COMMENT :

fsync ( 2.0 ) - synchronize a file '

int fsync ( int fd ) ;

These are the error conditions that may be returned under Solaris 8.0 but not Linux LSB EINTR A signal was caught during execution of the fsync ( ) function.

ENOSPC There was no free space remaining on the device containing the file.

ETIMEDOUT Remote connection timed out. This occurs when the file is on an NFS file system mounted with the soft option. See mount_nfs ( 1.0 M ) 0.0

Back To APIs Encountered Table

12) open

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 µogger.c on line number(s) :

68

COMMENT :

open ( 2.0 ) - open and possibly create a file or device

Different parameters found in Linux LSB and Solaris 8.0

Linux LSB

int open ( const char * pathname, int flags ) ;

int open ( const char * pathname, int flags, mode_t mode ) ;

Solaris 8.0

int open ( const char * path , int oflag, / * mode_t mode * / 0.0 0.0 0.0 ) ;

These are the error conditions that may be returned under Solaris 8.0 but not Linux LSB

EDQUOT The file does not exist, O_CREAT is specified, and either the directory where the new file entry is being placed cannot be extended

because the user ' that file system has been exhausted, or the user ' where the file is being created has been exhausted.

EINTR A signal was caught during open ( ) 0.0

EIO The path argument names a STREAMS file and a hangup or error occurred during the open ( ) 0.0

EMULTIHOP Components of path require hopping to multiple remote machines and the file system does not allow it.

ENOSR The path argument names a STREAMS-based file and the system is unable to allocate a STREAM.

EOPNOTSUPP An attempt was made to open a path that corresponds to a AF_UNIX socket.

EOVERFLOW The named file is a regular file and either O_LARGEFILE is not set and the size of the file cannot be represented correctly in an object of type off_t or O_LARGEFILE is set and the size of the file cannot be represented correctly in an object of type off64_t.

Back To APIs Encountered Table

13) openlog

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 µogger.c on line number(s) :

62
70

COMMENT :

openlog ( ) - opens a connection to the system logger for a program.

There are differences in the options and facility which are available on Linux LSB but not on Solaris 8.0

For options

LOG_PERROR is available on Linux LSB

For facility

LOG_AUTHPRIV - security/authorization messages ( private )

LOG_SYSLOG - messages generated internally by syslogd

Back To APIs Encountered Table

14) select

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftpd.c on line number(s) :

241
243

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftp.c on line number(s) :

245

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftp_io.c on line number(s) :

225

COMMENT :

select ( 2.0 ) - synchronous I/O multiplexing '

The functions select and pselect wait for a number of file descriptors to change status.

On Linux LSB

#include <sys/time.h>

#include <sys/types.h>

#include <unistd.h>

int select ( int n, fd_set * readfds, fd_set * writefds, fd_set * exceptfds, struct timeval * timeout ) ;

On Solaris 8.0

#include <sys/select.h>

int select ( int, fd_set *, fd_set *, fd_set *, struct timeval * ) ;

Back To APIs Encountered Table

15) argz_next

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2\options.c on line number(s) :

41
47
54
57
76
79

COMMENT :

char * argz_next ( char * ARGZ, size_t ARGZ_LEN, const char * ENTRY )

The ' argz_next ' over the elements in the argz vector ARGZ. It returns a pointer to the next element in ARGZ after the element ENTRY, or ' 0.0 ' there are no elements following ENTRY. If ENTRY is ' 0.0 ' element of ARGZ is returned.

This function is not available on Solaris 8.0, write your own implementation.

Back To APIs Encountered Table

16) fstat

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftp_file.c on line number(s) :

527

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftpd_file.c on line number(s) :

385

COMMENT :

fstat ( 2.0 ) - get file status

int fstat ( int filedes, struct stat * buf ) ;

These are the error conditions that may be returned under Solaris 8.0 but not Linux LSB

EFAULT buf points to an illegal address.

EINTR A signal was caught during the fstat ( ) function.

ENOLINK fildes points to a remote machine and the link to that machine is no longer active.

Back To APIs Encountered Table

17) hosts_ctl

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftpd.c on line number(s) :

401

COMMENT :

host_ctl ( - access Control Library ) is available on Linux LSB.

hosts_ctl is a wrapper around the request_init ( ) and hosts_access ( ) routine with a easier interface.

int hosts_ctl ( daemon, client_name, client_addr, ^ client_user )

char * daemon ;

char * client_name ;

char * client_addr ;

char * client_user ;

On Solaris 8.0, write your own implementation.

Back To APIs Encountered Table

18) argz_count

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftp.c on line number(s) :

318

COMMENT :

size_t argz_count ( const char * ARGZ, size_t ARG_LEN )

Returns the number of elements in the argz vector ARGZ and ARGZ_LEN.

This function is not available on Solaris 8.0, write your own implementation.

Back To APIs Encountered Table

19) bind

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftpd.c on line number(s) :

180
427

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftp.c on line number(s) :

536
615

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftp_file.c on line number(s) :

351

COMMENT :

bind ( 2.0 ) - bind a name to a socket

int bind ( int sockfd, struct sockaddr * my_addr, int addrlen ) ;

bind on Solaris 8.0 use EADDRNOTAVAIL instead of EFAULT, and it does not have ENOMEM. In addition, a different type " is used to define the third parameter on Solaris 8.0

Back To APIs Encountered Table

20) argz_extract

Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftp.c on line number(s) :

326

COMMENT :

void argz_extract ( char * ARGZ, size_t ARGZ_LEN, char * * ARGV )

The ' argz_extract '

ARGZ_LEN into a Unix-style argument vector stored in ARGV, by putting pointers to every element in ARGZ into successive positions in ARGV, followed by a terminator of ' 0.0 ' pre-allocated with enough space to hold all the elements in ARGZ plus the terminating ' ( char * ) 0.0 ' 1.0 ) * sizeof ( char * ) ' string pointers stored into ARGV point into ARGZ--they are not copies--and so ARGZ must be copied if it will be changed while ARGV is still active. This function is useful for passing the elements in ARGZ to an exec function ( * note Executing a File ) 0.0

This function is not available on Solaris 8.0, write your own implementation.

Back to Top

Levels of Porting Difficulty

There are four levels of porting difficulties defined as follows :

Easy -

Depending upon your level of expertise APIs that have this level of difficulty will typically have an estimated porting time of about 2 hours to approximately 4 hours.

Medium -

Depending upon your level of expertise, APIs that have this level of difficulty will typically have an estimated porting time of about 4 hours to approximately 1 working day.

Hard -

Depending upon your expertise, APIs that have this level of difficulty will typically have an estimated porting time of about 1 working day to 2 working days.

Toughest -

Depending upon your expertise, APIs that have this level of dificulty will typically have an estimated porting time of about 3 working days.

Not Known -

Estimate is not calculated.

* NOTE

Your average level of porting difficulty is directly related to the number of APIs discovered which may pose porting issues. Each level of difficulty, Easy, Medium, Hard, Toughest, is assigned a numeric value. Your total level is porting difficulty is calculated by dividing the sum of these numeric values by the total number of APIs discovered .

Back to Top

 <  Day Day Up  >    


Migrating to the Solaris Operating System
Migrating to the Solaris Operating System: The Discipline of UNIX-to-UNIX Migrations
ISBN: 0131502638
EAN: 2147483647
Year: 2003
Pages: 70

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net