auditxml_jni revision 0bd81b6f8fb7804214192b87b0aa3f03fcf87c45
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# CDDL HEADER START
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# The contents of this file are subject to the terms of the
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# Common Development and Distribution License (the "License").
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# You may not use this file except in compliance with the License.
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# See the License for the specific language governing permissions
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# and limitations under the License.
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# When distributing Covered Code, include this CDDL HEADER in each
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# If applicable, add the following below this CDDL HEADER, with the
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# fields enclosed by brackets "[]" replaced with your own identifying
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# information: Portions Copyright [yyyy] [name of copyright owner]
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# CDDL HEADER END
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# Use is subject to license terms.
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# auditxml_jni [-d] <xml input file>
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# auditxml takes the audit record description (.xml file) and
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# generates the files needed for the Java
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox Userour $debug = 0; # normal use is to set via the file being parsed.
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User # <debug set="on"/> or <debug set="off"/> or <debug/>
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User # if the set attribute is omitted, debug state is toggled
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # Override with appDebug, but toggle won't do what you
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usermy $appDebug = 0; # used after return from "new auditxml";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox UserDO NOT EDIT. This file is auto generated by the Solaris Audit
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# where everything comes from and where it goes:
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox Usermy $buildPathJ = "$jniBuildPath/com/sun/audit";
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usermy $auditEventJ = "$buildPathJ/AuditEvent.java";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox Usermy $mapFile = "$jniBuildPath/common/mapfile-vers";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox Usermy $doc = new auditxml ($ARGV[0]); # input XML file
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox UserreadAuditEventFile("$bsmBuildPath/audit_event.txt");
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User generateTableC($event, $eventId, $eventType, undef, $omit);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User generateMsgLists($textList); # enum -> text mappings
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox UserprintJavaFiles($jniC, $auditEventJ, $buildPathJ, $mapFile);
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # warning: time_t is equated to jlong since there is no
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User my %java_jni = ('ADT_DATE' => ['long', 'jlong'],
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# ADT_PRIVSTAR omitted -- not implemented and the audit records that
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# use it must be coded to emit no java. We'll cross that bridge
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# when someone in Java land needs to generate a priv token.
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User 'ADT_TERMIDSTAR' => ['String', 'jstring'], # hostname -> termid
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# ADT_UINT32ARRAY omitted; no Java implementation yet
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User die "can't open output file ($jniFile): $!\n";
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User die "can't open output file ($javaFile): $!\n";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User die "can't open output file ($mapFile): $!\n";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $notice =~ s/\n/\n * /gs;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $notice =~ s/\s+\n/\n/gs;
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#include "../../libbsm/common/adt_xlate.h"
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#include <jni.h>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#include "../com/sun/audit/AuditSession.h" /* javah output */
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#include "adt_jni.h"
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User#include <stdlib.h>
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User#include <string.h>
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox Userstatic char *except_class = "java/lang/Exception";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox Userpackage com.sun.audit;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox Userpublic class AuditEvent {
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User protected AuditSession sh; // associated session object
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User public AuditEvent(AuditSession auSession)
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User sh = auSession;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User // Manifest values: keep them in sync with generated <bsm/adt_event.h>.
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User // It is generated by \$SRC/lib/libbsm/auditxml
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User public static final int ADT_SUCCESS = 0; // generated
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User public static final int ADT_FAILURE = -1; // generated
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User // See the subclasses of AuditEvent for mapping message codes
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox UserSUNWprivate_1.1 {
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User Java_com_sun_audit_AuditSession_bsmAuditOn;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User Java_com_sun_audit_AuditSession_startSession;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User Java_com_sun_audit_AuditSession_endSession;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User Java_com_sun_audit_AuditSession_dupSession;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User Java_com_sun_audit_AuditSession_getSessionId;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User Java_com_sun_audit_AuditSession_exportSessionData;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User Java_com_sun_audit_AuditSession_sessionAttr;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User# One subclass of AuditEvent per audit record...
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User # generate java final int classes to line up with string/enums
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User my ($listRef, $headref) = @{$msg_list{$listName}};
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User my ($header, $enumValue, $public, $deprecated) = @$headref;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User print Jfile "\tpublic static final int ADT_$shortName",
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User print Jfile "\t// Deprecated message list\n" if $deprecated;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User my ($id, $text) = split(/\s*::\s*/, $listValue);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User print Jfile "\tpublic static final int ADT_$shortName";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User # generate event creation and access functions and event
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User foreach my $eventId (sort keys %jniEventTable) {
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User my ($ref1, $eventType, $allowedIds, $header) = @{$jniEventTable{$eventId}};
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $eventCode{$eventId} = -1 if ($eventType eq 'generic');
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User my $jniPutEvent = "Java_com_sun_audit_AuditEvent$putMethod" . "_$javaPutEvent";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User # the subclass file template isn't used; it may be needed to get
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User # the right file header stuff in place. The subclassPath is
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User unless (open(Sfile, ">$subclassPath/AuditEvent_$root.java")) {
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User print STDERR "can't open class file AuditEvent_$root.java: $!\n";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox Userpackage com.sun.audit;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User// audit event: $eventId = $eventCode{"AUE_$root"}
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox Userpublic class AuditEvent_$root extends AuditEvent {
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User print STDERR "no event code for $eventId. Is audit_event current?\n";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $jniDefine = "union union_of_events *event;\n" .
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $jniADTalloc = '(union union_of_events *)adt_alloc_event';
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User length = (*env)->GetArrayLength(env, $id);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User (int *)malloc(length * sizeof (int));
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User if ($p_event == NULL) {
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User locale = I18N_SETUP;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User local_throw(env, except_class,
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User (void) setlocale(LC_MESSAGES, locale);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User goto cleanup;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User (*env)->GetIntArrayRegion(env, $id, 0, length,
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User (int *)$p_event);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $jniFreeList .= "\n\tif ($p_event != NULL)\n" .
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $cType = 'gid_t' if ($type eq 'ADT_GIDSTAR');
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User length = (*env)->GetArrayLength(env, $id);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User ($cType *)malloc(length * sizeof ($cType));
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User if ($p_event == NULL) {
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User locale = I18N_SETUP;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User local_throw(env, except_class,
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User (void) setlocale(LC_MESSAGES, locale);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User goto cleanup;
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User (*env)->GetIntArrayRegion(env, $id, 0, length,
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User (int *)$p_event);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User } elsif ($type eq 'ADT_UINT64STAR') { # long array
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User length = (*env)->GetArrayLength(env, $id);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User (long *)malloc(length * sizeof (long long));
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User if ($p_event == NULL) {
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User locale = I18N_SETUP;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User local_throw(env, except_class,
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User (void) setlocale(LC_MESSAGES, locale);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User goto cleanup;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User (*env)->GetLongArrayRegion(env, $id, 0, length,
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $jniFreeList .= "\n\tif ($p_event != NULL)\n" .
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User } elsif ($type eq 'ADT_CHAR') { # string in Java, char in C
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User c = (char *)(*env)->GetStringUTFChars(env, $id, NULL);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User if (c == NULL)
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User goto cleanup; /* exception thrown */
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $p_event = *c;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User (*env)->ReleaseStringUTFChars(env, $id, c);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User if ($id != NULL) {
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User string = (char *)(*env)->GetStringUTFChars(
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User env, $id, NULL);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User if (string == NULL)
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User goto cleanup; /* exception thrown */
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $p_event = strdup(string);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User (*env)->ReleaseStringUTFChars(env, $id, string);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User if ($p_event == NULL) {
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User locale = I18N_SETUP;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User local_throw(env, except_class,
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User (void) setlocale(LC_MESSAGES, locale);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User goto cleanup;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $jniFreeList .= "\n\tif ($p_event != NULL)\n" .
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User } elsif ($type eq 'ADT_CHAR2STAR') { # array of string
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User length = (*env)->GetArrayLength(env, $id);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $p_event = (char **)malloc(length
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User * sizeof (char *));
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User if ($p_event == NULL) {
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User locale = I18N_SETUP;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User local_throw(env, except_class,
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User (void) setlocale(LC_MESSAGES, locale);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User goto cleanup;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User p = $p_event;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User for (i = 0; i < length; i++) {
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User jString = (*env)->GetObjectArrayElement(env, $id, i);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User string = (char *)(*env)->GetStringUTFChars(
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User env, jString, NULL);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User if (string == NULL)
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User goto cleanup; /* exception thrown */
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User *p = strdup(string);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User (*env)->ReleaseStringUTFChars(env, jString, string);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User if (*p == NULL) {
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User locale = I18N_SETUP;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User local_throw(env, except_class,
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User (void) setlocale(LC_MESSAGES, locale);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User while (p >= $p_event)
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User goto cleanup;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User char *string;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User jstring jString;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $nativeParameterList .= ",\n\t String[]\t$id";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User hostname$cntTermidDef = (char *)(*env)->GetStringUTFChars(env, $id, NULL);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User if (adt_load_hostname((const char *)hostname$cntTermidDef, &termid$cntTermidDef)) {
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User local_throw(env, except_class,
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User gettext("hostname lookup failed"));
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $p_event = termid$cntTermidDef;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User (*env)->ReleaseStringUTFChars(env, $id, hostname$cntTermidDef);
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $jniFreeList .= "\n\tif (hostname$cntTermidDef != NULL)\n" .
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $jniFreeList .= "\n\tif (termid$cntTermidDef != NULL)\n" .
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $jniDefine .= "\tchar\t\t\t*hostname$cntTermidDef;\n";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $jniDefine .= "\tadt_termid_t\t\t*termid$cntTermidDef;\n"; #djdj
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User my ($nativeParameter, $jniParameter) = @{$java_jni{$type}};
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $nativeParameterList .= ",\n\t $nativeParameter\t$id";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $jniParameterList .= ",\n $jniParameter\t$id";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User my ($nativeParameter, $jniParameter) = @{$java_jni{$type}};
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $nativeParameterList .= ",\n\t $nativeParameter\t$id";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $jniParameterList .= ",\n $jniParameter\t$id";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User char *locale;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $jniFreeList = "\tcleanup:\n" . $jniFreeList if $needCleanupTarget;
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User (void) j2c_pointer(env, jsession, (char **)&session);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User (void) adt_put_event((adt_event_data_t *)event, status, ret_val);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User print Sfile "\t// Allowed values for eventId in putEvent:\n";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User print Sfile "\tstatic final int $allowed[$i] = ",
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User print STDERR "Generic event with no allowed instances: $eventId\n";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User private native void $javaPutEvent(byte[]session, $overrideParameter
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User int status, int ret_val$nativeParameterList);
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User public AuditEvent_$root(AuditSession session)
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User throws Exception
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User super(session);
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User my ($id, $type, $format, $jComment, $required) = @$ref2;
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # and the corresponding C method implementation
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User my $javaStorageName = $javaMethodName . '_val';
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $comment = "\t// (required) formatted: $format";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $comment = "\t// (optional) formatted: $format";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $storage = "int[] $javaStorageName" . ($required ?
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $javaParameterList .= ",\n\t\t\t $javaStorageName";
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User } elsif ($type eq 'ADT_UINT64STAR') { # long array
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User $storage = "long[] $javaStorageName" . ($required ?
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt $javaParameterList .= ",\n\t\t\t $javaStorageName";
if $jComment;
my $event = shift;
my $eventId = shift;
my $eventType = shift;
my $eventHeader = shift;
my $omit = shift;
my $entryRef;
my @inputOrder;
$firstTokenIndex = $j;
last;
my $sequence = 0;
$enumGroup =~ s/^msg\s*//i;
my $tsol = 0;
my $token;
my $tokenName;
print STDERR
$sequence++;
$jniEventTable{$eventId} = [\@jniEntryList, $eventType,
my $xlateLabelInc = 0;
my $dataType;
my $dataSize;
my $entryType = ${$entryDef{$type}}[0];
my $typeCount = 1;
$type =~ s/\[\]//;
my $dataType;
my $entryType = ${$entryDef{$dtype}}[0];
$type =~ s/\[\]//;
my $textList = shift;
my $entry;
my @entry;
[\@entry, [$header, $start, $public, $deprecated]];
my $eventListFile = shift;
next if $value < 6000;
$eventCode{$name} = $value;