#
# 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) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
#
# Generic interface definition for usr/src/cmd/lp/lib/papi
#

#
# 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

SYMBOL_VERSION SUNW_1.0 {
    global:
        # PAPI Attribute Calls
        papiAttributeListAdd;
        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 {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	};
        papiJobPromote;
        papiJobGetAttributeList;
        papiJobGetPrinterName;
        papiJobGetId;
        papiJobGetJobTicket {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	};
        papiJobFree;
        papiJobListFree;

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

SYMBOL_VERSION SUNWprivate_1.0 {
    global:
	papiServiceSetPeer;	# used by to pass peer connection
        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 {
		TYPE = FUNCTION;
		FILTER = libpapi-common.so;
	};
	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:
        *;
};
