Пример #1
0
int epicsShareAPI logAlarmsReport (
    int interest
) {
    char        inetAddr[32];
    int		serverId;

    if (!initialized) {
	printf ("logAlarms utility is not initialized! Use logAlarmsInit.\n");
	return OK;
    }

    printf ("logAlarmsReport! use level parameter of [0..4]\n");
    printf ("\n%d servers are configured\n", numServersConfigured);
    printf ("%d messages have been lost\n", msgLost);

    if (serverSelected >= 0)
	printf ("\nThe server number %d is selected\n", serverSelected);
    else
	printf ("\nNo server is selected\n");

    if (interest > 0 && numServersConfigured > 0) {
	if (numServersConfigured > 0)
	printf ("\nConfigured Servers\n");
	for (serverId=0; serverId < numServersConfigured; serverId++) {
	    ipAddrToA (&msgServerAddr[serverId], inetAddr, 32);
	    printf ("Server %d: %s ", serverId, inetAddr);
	    if (serverId == serverSelected) printf ("selected + ");
	    if (serverStatus[serverId].up)
		printf ("online\n");
	    else
		printf ("offline\n");
	}
	printf ("\nMessage port: %d  Command port: %d\n", msg_port, cmd_port);
    }

    if (interest > 1) {
	printf ("\nRing buffer size is %d messages\n", ringSize);
	printf ("Ring base area is %d messages, extention is %d\n",
	  ringHighWater, ringSize - ringHighWater);
    }

    printf ("\nRing buffer usage: %ld messages are waiting in the ring buffer\n",
      (long)RINGPOS(pRingWrite));

    if (interest > 3) {
	printf ("\nRing address is 0x%lx\n", (unsigned long)pRingBottom);
	printf ("Read pointer: 0x%lx  Write pointer: 0x%lx\n",
	  (unsigned long)pRingRead, (unsigned long)pRingWrite);
	printf ("\nTiming: Initial wait time: %ld ticks\n", tickInitWait);
	printf ("        Max time between beacons: %ld ticks\n", tickMaxSilent);
	printf ("        Timeout waiting for message replies: %ld ticks\n", tickMessageReplyTmo);
	printf ("        Timeout waiting for beacon replies: %ld ticks\n", tickBeaconReplyTmo);
    }

    if (interest > 2) {
	printf ("\nThe hash facility to find messages in the ring buffer:\n");
	if (pbuck)
	    bucketShow (pbuck);
	else
	    printf ("Hash table not created\n");
    }
    return OK;
}
Пример #2
0
/*
 *  casr()
 */
void epicsShareAPI casr (unsigned level)
{
    size_t bytes_reserved;
    struct client *client;

    if ( ! clientQlock ) {
        return;
    }

    printf ("Channel Access Server V%s\n",
        CA_VERSION_STRING ( CA_MINOR_PROTOCOL_REVISION ) );

    LOCK_CLIENTQ
    client = (struct client *) ellNext ( &clientQ.node );
    if (client) {
        printf("Connected circuits:\n");
    }
    else {
        printf("No clients connected.\n");
    }
    while (client) {
        log_one_client(client, level);
        client = (struct client *) ellNext(&client->node);
    }
    UNLOCK_CLIENTQ

    if (level>=2 && prsrv_cast_client) {
        printf( "UDP Server:\n" );
        log_one_client(prsrv_cast_client, level);
    }
    
    if (level>=2u) {
        bytes_reserved = 0u;
        bytes_reserved += sizeof (struct client) * 
                    freeListItemsAvail (rsrvClientFreeList);
        bytes_reserved += sizeof (struct channel_in_use) *
                    freeListItemsAvail (rsrvChanFreeList);
        bytes_reserved += sizeof(struct event_ext) *
                    freeListItemsAvail (rsrvEventFreeList);
        bytes_reserved += MAX_TCP * 
                    freeListItemsAvail ( rsrvSmallBufFreeListTCP );
        bytes_reserved += rsrvSizeofLargeBufTCP * 
                    freeListItemsAvail ( rsrvLargeBufFreeListTCP );
        bytes_reserved += rsrvSizeOfPutNotify ( 0 ) * 
                    freeListItemsAvail ( rsrvPutNotifyFreeList );
        printf( "There are currently %u bytes on the server's free list\n",
            (unsigned int) bytes_reserved);
        printf( "%u client(s), %u channel(s), %u event(s) (monitors) %u putNotify(s)\n",
            (unsigned int) freeListItemsAvail ( rsrvClientFreeList ),
            (unsigned int) freeListItemsAvail ( rsrvChanFreeList ),
            (unsigned int) freeListItemsAvail ( rsrvEventFreeList ),
            (unsigned int) freeListItemsAvail ( rsrvPutNotifyFreeList ));
        printf( "%u small buffers (%u bytes ea), and %u jumbo buffers (%u bytes ea)\n",
            (unsigned int) freeListItemsAvail ( rsrvSmallBufFreeListTCP ),
            MAX_TCP,
            (unsigned int) freeListItemsAvail ( rsrvLargeBufFreeListTCP ),
            rsrvSizeofLargeBufTCP );
        if(pCaBucket){
            printf( "The server's resource id conversion table:\n");
            LOCK_CLIENTQ;
            bucketShow (pCaBucket);
            UNLOCK_CLIENTQ;
        }
        printf ( "The server's array size limit is %u bytes max\n",
            rsrvSizeofLargeBufTCP );

        printChannelAccessAddressList (&beaconAddrList);
    }
}