logtest.c++ 2.39 KB
//====================================================================
// logtest.c++
//
// Copyright 1993, Silicon Graphics, Inc.
// All Rights Reserved.
//
// This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
// the contents of this file may not be disclosed to third parties, copied or
// duplicated in any form, in whole or in part, without the prior written
// permission of Silicon Graphics, Inc.
//
// RESTRICTED RIGHTS LEGEND:
// Use, duplication or disclosure by the Government is subject to restrictions
// as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
// and Computer Software clause at DFARS 252.227-7013, and/or in similar or
// successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
// rights reserved under the Copyright Laws of the United States.
//====================================================================

#include <stdarg.h>
#include <errno.h>
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <getopt.h>
#include <bstring.h>
#include <stdlib.h>
#include <getopt.h>
#include <ultralog.h>

static char usage[] = "[-v] <log file>";

void main(int argc, char **argv)
{    
    extern char *optarg;
    extern int  optind;
    int         errflg=0;
    int         c;
    char        *ofile = 0;
    int         verbose;

    u32         *logData;
    s32         logLen;
    FILE        *out;
    
    int         x_int;
    float       x_float;
    
    while ((c = getopt(argc, argv, "v")) != EOF) {        
        switch (c) {
	    case 'v':
                verbose = 1;
		break;
                
            case '?':
                errflg++;
                break;
        }
    }

    if (errflg || optind == argc) {
        (void)fprintf(stderr, "%s %s\n", argv[0], usage);
        exit (2);
    }

    ofile = argv[optind];
    
    out = fopen(ofile, "w");
    if (!out) {
        fprintf(stderr, "could not open %s for writing\n", ofile);
        exit (1);
    }
    
    logLen = 0x1000;
    logData = (u32 *)malloc(logLen);
    
    OSLog log;
    osCreateLog(&log, logData, logLen);

    osLogEvent(&log, 0, 0);

    x_int = 1;
    osLogEvent(&log, 1, 1, x_int);

    x_float = 1.0;    
    osLogEvent(&log, 2, 1, OS_LOG_FLOAT(x_float));
    osLogEvent(&log, 3, 2, x_int, OS_LOG_FLOAT(x_float));
    osLogEvent(&log, 4, 4, 0, 1, 2, 3);
    
    fwrite(logData, sizeof(char), logLen, out);
    fflush(out);
    fclose(out);
}