//============================================================================= /** * @file Aio_Platform_Test_C.cpp * * Testing the platform for POSIX Asynchronous I/O. This is the C * version of the $ACE_ROOT/tests/Aio_Platform_Test.cpp. Useful * to send bug reports. * * @author Programming for the Real World. Bill O. GallMeister. Modified by Alexander Babu Arulanthu */ //============================================================================= #include #include #include #include #include #include #include #include #include #include int do_sysconf (void); int have_asynchio (void); static int file_handle = -1; char mb1 [BUFSIZ + 1]; char mb2 [BUFSIZ + 1]; aiocb aiocb1, aiocb2; sigset_t completion_signal; // For testing the stuff. int test_aio_calls (void); int issue_aio_calls (void); int query_aio_completions (void); int setup_signal_delivery (void); int do_sysconf (void); int have_asynchio (void); int do_sysconf (void) { // Call sysconf to find out runtime values. errno = 0; #if defined (_SC_LISTIO_AIO_MAX) printf ("Runtime value of LISTIO_AIO_MAX is %d, errno = %d\n", sysconf(_SC_LISTIO_AIO_MAX), errno); #else printf ("Runtime value of AIO_LISTIO_MAX is %d, errno = %d\n", sysconf(_SC_AIO_LISTIO_MAX), errno); #endif errno = 0; printf ("Runtime value of AIO_MAX is %d, errno = %d\n", sysconf (_SC_AIO_MAX), errno); errno = 0; printf ("Runtime value of _POSIX_ASYNCHRONOUS_IO is %d, errno = %d\n", sysconf (_SC_ASYNCHRONOUS_IO), errno); errno = 0; printf ("Runtime value of _POSIX_REALTIME_SIGNALS is %d, errno = %d\n", sysconf (_SC_REALTIME_SIGNALS), errno); errno = 0; printf ("Runtime value of RTSIG_MAX %d, Errno = %d\n", sysconf (_SC_RTSIG_MAX), errno); errno = 0; printf ("Runtime value of SIGQUEUE_MAX %d, Errno = %d\n", sysconf (_SC_SIGQUEUE_MAX), errno); return 0; } int have_asynchio (void) { #if defined (_POSIX_ASYNCHRONOUS_IO) // POSIX Asynch IO is present in this system. #if defined (_POSIX_ASYNC_IO) // If this is defined and it is not -1, POSIX_ASYNCH is supported // everywhere in the system. #if _POSIX_ASYNC_IO == -1 printf ("_POSIX_ASYNC_IO = -1.. ASYNCH IO NOT supported at all\n"); return -1; #else /* Not _POSIX_ASYNC_IO == -1 */ printf ("_POSIX_ASYNC_IO = %d\n ASYNCH IO is supported FULLY\n", _POSIX_ASYNC_IO); #endif /* _POSIX_ASYNC_IO == -1 */ #else /* Not defined _POSIX_ASYNC_IO */ printf ("_POSIX_ASYNC_IO is not defined.\n"); printf ("AIO might *not* be supported on some paths\n"); #endif /* _POSIX_ASYNC_IO */ // System defined POSIX Values. printf ("System claims to have POSIX_ASYNCHRONOUS_IO\n"); printf ("_POSIX_AIO_LISTIO_MAX = %d\n", _POSIX_AIO_LISTIO_MAX); printf ("_POSIX_AIO_MAX = %d\n", _POSIX_AIO_MAX); // Check and print the run time values. do_sysconf (); return 0; #else /* Not _POSIX_ASYNCHRONOUS_IO */ printf ("No support._POSIX_ASYNCHRONOUS_IO itself is not defined\n"); return -1; #endif /* _POSIX_ASYNCHRONOUS_IO */ } int ACE_TMAIN (int, ACE_TCHAR *[]) { if (have_asynchio () == 0) printf ("Test successful\n"); else printf ("Test not successful\n"); return 0; }