5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * CDDL HEADER START
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland *
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * The contents of this file are subject to the terms of the
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * Common Development and Distribution License (the "License").
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * You may not use this file except in compliance with the License.
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland *
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * or http://www.opensolaris.org/os/licensing.
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * See the License for the specific language governing permissions
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * and limitations under the License.
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland *
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * When distributing Covered Code, include this CDDL HEADER in each
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * If applicable, add the following below this CDDL HEADER, with the
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * fields enclosed by brackets "[]" replaced with your own identifying
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * information: Portions Copyright [yyyy] [name of copyright owner]
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland *
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * CDDL HEADER END
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * Use is subject to license terms.
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#ifndef _PKGERR_H
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define _PKGERR_H
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * Module: pkgerr.h
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * Description:
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland *
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * Implements error routines to handle the creation,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * management, and destruction of error objects, which
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * hold error messages and codes returned from libpkg
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * routines that support the objects defined herein.
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#include <stdio.h>
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#ifdef __cplusplus
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern "C" {
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#endif
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * Public Definitions
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandtypedef enum {
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_OK = 0,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_EXIST,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_READ,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_CORRUPT,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_PARSE,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_BADPASS,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_BADALIAS,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_INTERNAL,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_UNSUP,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_NOALIAS,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_NOALIASMATCH,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_MULTIPLE,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_INCOMPLETE,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_NOPRIVKEY,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_NOPUBKEY,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_NOCACERT,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_NOMEM,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_CHAIN,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_LOCKED,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_WRITE,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_UNLOCK,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_TIME,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_DUPLICATE,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_WEB,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland PKGERR_VERIFY
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland} PKG_ERR_CODE;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * Public Structures
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* external reference to PKG_ERR object (contents private) */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandtypedef PKG_ERR_CODE pkg_err_t;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandtypedef struct _pkg_err_struct PKG_ERR;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * Public Methods
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah WaterlandPKG_ERR *pkgerr_new();
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandvoid pkgerr_add(PKG_ERR *, PKG_ERR_CODE, char *, ...);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandvoid pkgerr_clear(PKG_ERR *);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandint pkgerr_dump(PKG_ERR *, FILE *);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandint pkgerr_num(PKG_ERR *);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandchar *pkgerr_get(PKG_ERR *, int);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandvoid pkgerr_free(PKG_ERR *);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#ifdef __cplusplus
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland}
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#endif
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#endif /* _PKGERR_H */