#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#

#
# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
#

#
# $Id: mapfile.in,v 1.2 2006/03/02 06:31:36 njacobs Exp $
#

#
# MAPFILE HEADER START
#
# WARNING:  STOP NOW.  DO NOT MODIFY THIS FILE.
# Object versioning must comply with the rules detailed in
#
#	usr/src/lib/README.mapfiles
#
# You should not be making modifications here until you've read the most current
# copy of that file. If you need help, contact a gatekeeper for guidance.
#
# MAPFILE HEADER END
#

$mapfile_version 2

#
# Common interfaces that are most likely to be shared amongst the various
# PAPI implementations.
#

SYMBOL_VERSION SUNW_1.0 {
    global:
	# PAPI Attribute Calls
	papiAttributeListAddValue {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListAddBoolean {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListAddCollection {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListAddDatetime {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListAddInteger {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListAddMetadata {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListAddRange {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListAddResolution {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListAddString {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListDelete {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListGetValue {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListGetNext {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListFind {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListGetBoolean {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListGetCollection {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListGetDatetime {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListGetInteger {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListGetMetadata {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListGetRange {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListGetResolution {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListGetString {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListFromString {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListToString {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListFree {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;

	# PAPI Service Calls
        papiServiceCreate ;
        papiServiceDestroy ;
        papiServiceSetUserName ;
        papiServiceSetPassword ;
        papiServiceSetEncryption ;
        papiServiceSetAuthCB ;
        papiServiceSetAppData ;
        papiServiceGetUserName ;
        papiServiceGetPassword ;
        papiServiceGetEncryption ;
        papiServiceGetAppData ;
        papiServiceGetServiceName ;
        papiServiceGetAttributeList ;
        papiServiceGetStatusMessage ;

	# PAPI Printer Calls
        papiPrintersList ;
        papiPrinterQuery ;
        papiPrinterAdd ;
        papiPrinterModify ;
        papiPrinterRemove ;
        papiPrinterDisable ;
        papiPrinterEnable ;
        papiPrinterPause ;
        papiPrinterResume ;
        papiPrinterPurgeJobs ;
        papiPrinterListJobs ;
        papiPrinterGetAttributeList ;
        papiPrinterFree ;
        papiPrinterListFree ;

	# PAPI Job Calls
        papiJobSubmit ;
        papiJobSubmitByReference ;
        papiJobValidate ;
        papiJobStreamOpen ;
        papiJobStreamWrite ;
        papiJobStreamClose ;
        papiJobQuery ;
        papiJobModify ;
        papiJobMove ;
        papiJobCancel ;
        papiJobHold ;
        papiJobRelease ;
        papiJobRestart ;
        papiJobPromote ;
        papiJobGetAttributeList ;
        papiJobGetPrinterName ;
        papiJobGetId ;
        papiJobGetJobTicket ;
        papiJobFree ;
        papiJobListFree ;

	# Misc. PAPI Calls
	papiStatusString {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiLibrarySupportedCall {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiLibrarySupportedCalls {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
};

SYMBOL_VERSION SUNWprivate_1.0 {
    global:
        papiServiceSetPeer ;	# extension
        papiJobCreate ;
        papiJobStreamAdd ;
        papiJobCommit ;

	# Misc. supporting calls
	#     URI
	uri_from_string {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	uri_to_string {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	uri_free {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	#    list
	list_remove {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	list_append {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	list_concatenate {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	#    NS
	getprinterbyname ;
	is_localhost {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;

	#    extra Attribute Calls
	copy_attributes {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	split_and_copy_attributes {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;
	papiAttributeListPrint {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	} ;

    local:
        * ;
} ;

SYMBOL_VERSION FSG_1.0 {} SUNW_1.0;