< Day Day Up > |
Solaris(TM) OE Analyzer for C/C++ and Cobol Source Code Migration Analysis ResultsTable of Contents
How To Read This ReportThis 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
Back to Top APIs Encountered
Back to Top Detailed AnalysisBack 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 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 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 Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ats.c on line number(s) : 41 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 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 Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftp.c on line number(s) : 538 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 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 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 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 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 Appears in C:\Documents and Settings\Administrator\My Documents\My Downloads\zzftp\zzftp-0.6.2 ftp.c on line number(s) : 536 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 DifficultyThere 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 > |