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/*
6e1ae2a33c618c4c2b14aec7d2f21743ddea5837Gary Pennington * Copyright (c) 1993, 2010, Oracle and/or its affiliates. All rights reserved.
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#ifndef __HDRS_LIBINST_H__
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define __HDRS_LIBINST_H__
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#ifdef __cplusplus
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern "C" {
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#endif
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#include <stdio.h>
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#include <fcntl.h>
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#include <sys/types.h>
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#include <sys/stat.h>
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#include <pkgstrct.h>
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#include <pkginfo.h>
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#include "pkglib.h"
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#include <cfext.h>
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#include "install.h"
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define DEF_NONE_SCR "i.CompCpio"
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define BL_ALL -1 /* refers to all allocated lists */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* signal handler function definition */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandtypedef void (sighdlrFunc_t)(int);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* maximum parameter length */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define MAX_PKG_PARAM_LENGTH (64+1) /* +1 for null termination */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* flag for check_applicability */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandtypedef unsigned long CAF_T;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* flags for check_applicability */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define CAF_IN_GLOBAL_ZONE 0x00000001 /* in global zone */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define CAF_SCOPE_GLOBAL 0x00000002 /* -G specified */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define CAF_SCOPE_NONGLOBAL 0x00000004 /* -Z specified */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* path to the request file in the package directory */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define REQUEST_FILE "install/request"
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* path to the copyright file in the package directory */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define COPYRIGHT_FILE "install/copyright"
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* path to the depend file in the package directory */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define DEPEND_FILE "install/depend"
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * name of environment variable set to non-global zone name being installed:
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * pkgadd/pkginstall expects this name and passes it on to any scripts that
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * are run if it is set.
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define PKG_ZONENAME_VARIABLE "SUNW_PKG_INSTALL_ZONENAME"
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * name of environment variable set to indicate this package should be installed
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * in the current zone only - see PSARC/2004/789 - New Pkginfo(4) attributes
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * for zones
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define PKG_THISZONE_VARIABLE "SUNW_PKG_THISZONE"
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * name of environment variable set to indicate this package should be installed
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * in all zones, and only from the global zone - see PSARC/2003/460
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define PKG_ALLZONES_VARIABLE "SUNW_PKG_ALLZONES"
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * name of environment variable set to indicate this package should be installed
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * hollow (db update only) when installed in nonglobal zone - see PSARC/2003/460
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define PKG_HOLLOW_VARIABLE "SUNW_PKG_HOLLOW"
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * General purpose return codes used for functions which don't return a basic
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * success or failure. For those functions wherein a yes/no result is
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * possible, then 1 means OK and 0 means FAIL.
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define RESULT_OK 0x0
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define RESULT_WRN 0x1
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define RESULT_ERR 0x2
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* These are the file status indicators for the contents file */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define INST_RDY '+' /* entry is ready to installf -f */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define RM_RDY '-' /* entry is ready for removef -f */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define NOT_FND '!' /* entry (or part of entry) was not found */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define SERVED_FILE '%' /* using the file server's RO partition */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define STAT_NEXT '@' /* this is awaiting eptstat */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define DUP_ENTRY '#' /* there's a duplicate of this */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define CONFIRM_CONT '*' /* need to confirm contents */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define CONFIRM_ATTR '~' /* need to confirm attributes */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define ENTRY_OK '\0' /* entry is a confirmed file */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* control bits for pkgdbmerg() */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define NO_COPY 0x0001
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define CLIENT_PATHS 0x0002 /* working with a client database */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* control bits for file verification by class */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define DEFAULT 0x0 /* standard full verification */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define NOVERIFY 0x1 /* do not verify */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define QKVERIFY 0x2 /* do a quick verification instead */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* control bit for path type to pass to CAS */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define DEFAULT 0x0 /* standard server-relative absolute path */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define REL_2_CAS 0x1 /* pass pkgmap-type relative path */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* findscripts() argument */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define I_ONLY 0x0 /* find install class action scripts */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define R_ONLY 0x1 /* find removal class action scripts */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandstruct cl_attr {
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char name[CLSSIZ+1]; /* name of class */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *inst_script; /* install class action script */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *rem_script; /* remove class action script */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland unsigned src_verify:3; /* source verification level */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland unsigned dst_verify:4; /* destination verification level */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland unsigned relpath_2_CAS:1; /* CAS gets relative paths */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland};
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#if defined(__STDC__)
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define __P(protos) protos
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#else /* __STDC__ */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define __P(protos) ()
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#endif /* __STDC__ */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* Common quit declaration used across many package commands */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void quit(int) __NORETURN;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* listmgr.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int bl_create __P((int count_per_block, int struct_size,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *desc));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *bl_next_avail __P((int list_handle));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *bl_get_record __P((int list_handle, int recno));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void bl_free __P((int list_handle));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int ar_create __P((int count_per_block, int struct_size,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *desc));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char **ar_next_avail __P((int list_handle));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char **ar_get_head __P((int list_handle));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int ar_delete __P((int list_handle, int index));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void ar_free __P((int list_handle));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* doulimit.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int set_ulimit __P((char *script, char *err_msg));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int clr_ulimit __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int assign_ulimit __P((char *fslimit));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* dryrun.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void set_continue_not_ok __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int continue_is_ok __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int in_dryrun_mode __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int in_continue_mode __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void init_dryrunfile __P((char *dr_dir));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void init_contfile __P((char *cn_dir));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void set_dr_exitmsg __P((char *value));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void set_dr_info __P((int type, int value));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void write_dryrun_file __P((struct cfextra **extlist));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* instvol.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void regfiles_free __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* lockinst.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int lockinst __P((char *util_name, char *pkg_name, char *place));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void lockupd __P((char *place));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void unlockinst __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *pathdup __P((char *s));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *pathalloc __P((int n));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *fixpath __P((char *path));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *get_info_basedir __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *get_basedir __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *get_client_basedir __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int set_basedirs __P((int reloc, char *adm_basedir,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *pkginst, int nointeract));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int eval_path __P((char **server_ptr, char **client_ptr,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char **map_ptr, char *path));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int get_orig_offset __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *get_inst_root __P((void));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern char *get_mount_point __P((uint32_t n));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern char *get_remote_path __P((uint32_t n));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void set_env_cbdir __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int set_inst_root __P((char *path));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void put_path_params __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int mkpath __P((char *p));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void mkbasedir __P((int flag, char *path));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int is_an_inst_root __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int is_a_basedir __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int is_a_cl_basedir __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int is_relocatable __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *orig_path __P((char *path));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *orig_path_ptr __P((char *path));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *qreason __P((int caller, int retcode, int started,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland int includeZonename));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *qstrdup __P((char *s));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *srcpath __P((char *d, char *p, int part, int nparts));
d676c6678e0d7d3d3a700014d359b227edba0042phaniram rampura krishnamurthy - Sun Microsystems - Bangalore Indiaextern char *trans_srcp_pi __P((char *local_path));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int copyf __P((char *from, char *to, time_t mytime));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int copyFile __P((int, int, char *, char *, struct stat *, long));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int openLocal __P((char *a_path, int a_oflag, char *a_tmpdir));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int dockdeps __P((char *depfile, int removeFlag,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland boolean_t a_preinstallCheck));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int finalck __P((struct cfent *ept, int attrchg, int contchg,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland boolean_t a_warning));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* dockdeps.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void setUpdate __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int isUpdate __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* mntinfo.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int get_mntinfo __P((int map_client, char *vfstab_file));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern uint32_t fsys __P((char *path));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern struct fstable *get_fs_entry __P((uint32_t n));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int mount_client __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int unmount_client __P((void));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern uint32_t resolved_fsys __P((char *path));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern char *get_server_host __P((uint32_t n));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern char *server_map __P((char *path, uint32_t fsys_value));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern int use_srvr_map __P((char *path, uint32_t *fsys_value));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern int use_srvr_map_n __P((uint32_t n));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern int is_fs_writeable __P((char *path, uint32_t *fsys_value));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern int is_remote_fs __P((char *path, uint32_t *fsys_value));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern int is_served __P((char *path, uint32_t *fsys_value));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern int is_mounted __P((char *path, uint32_t *fsys_value));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern int is_fs_writeable_n __P((uint32_t n));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern int is_remote_fs_n __P((uint32_t n));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern int is_served_n __P((uint32_t n));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern int is_mounted_n __P((uint32_t n));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern fsblkcnt_t get_blk_size_n __P((uint32_t n));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern fsblkcnt_t get_frag_size_n __P((uint32_t n));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern fsblkcnt_t get_blk_used_n __P((uint32_t n));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern fsblkcnt_t get_blk_free_n __P((uint32_t n));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern fsblkcnt_t get_inode_used_n __P((uint32_t n));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern fsblkcnt_t get_inode_free_n __P((uint32_t n));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern void set_blk_used_n __P((uint32_t n, fsblkcnt_t value));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern char *get_source_name_n __P((uint32_t n));
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkertextern char *get_fs_name_n __P((uint32_t n));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int load_fsentry __P((struct fstable *fs_entry, char *name,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *fstype, char *remote_name));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int isreloc __P((char *pkginstdir));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int is_local_host __P((char *hostname));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void fs_tab_free __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* pkgdbmerg.c */
62224350e5355e6834f7deb9d8a7d062a50cb7c2Casper H.S. Dikextern int pkgdbmerg __P((PKGserver server, VFP_T *tmpvfp,
62224350e5355e6834f7deb9d8a7d062a50cb7c2Casper H.S. Dik struct cfextra **extlist));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int files_installed __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* ocfile.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int trunc_tcfile __P((int fd));
62224350e5355e6834f7deb9d8a7d062a50cb7c2Casper H.S. Dikextern int ocfile __P((PKGserver *serverp, VFP_T **tmpvfp,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland fsblkcnt_t map_blks));
62224350e5355e6834f7deb9d8a7d062a50cb7c2Casper H.S. Dikextern int swapcfile __P((PKGserver server, VFP_T **a_tmpvfp,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *pkginst, int dbchg));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int set_cfdir __P((char *cfdir));
62224350e5355e6834f7deb9d8a7d062a50cb7c2Casper H.S. Dikextern int socfile __P((PKGserver *server, boolean_t quiet));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int relslock __P((void));
62224350e5355e6834f7deb9d8a7d062a50cb7c2Casper H.S. Dikextern int pkgWlock __P((int verbose));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int iscfile __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int vcfile __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern fsblkcnt_t nblk __P((fsblkcnt_t size, ulong_t bsize,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland ulong_t frsize));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern struct cfent **procmap __P((VFP_T *vfp, int mapflag, char *ir));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void repl_cfent __P((struct cfent *new, struct cfent *old));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern struct cfextra **pkgobjmap __P((VFP_T *vfp, int mapflag, char *ir));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void pkgobjinit __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int seed_pkgobjmap __P((struct cfextra *ext_entry, char *path,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *local));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int init_pkgobjspace __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* eptstat.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void pinfo_free __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern struct pinfo *eptstat __P((struct cfent *entry, char *pkg, char c));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* echo.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*PRINTFLIKE1*/
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void echo __P((char *a_fmt, ...));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*PRINTFLIKE1*/
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void echoDebug __P((char *a_fmt, ...));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern boolean_t echoGetFlag __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern boolean_t echoDebugGetFlag __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern boolean_t echoSetFlag __P((boolean_t a_debugFlag));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern boolean_t echoDebugSetFlag __P((boolean_t a_debugFlag));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* ptext.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*PRINTFLIKE2*/
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void ptext __P((FILE *fp, char *fmt, ...));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* putparam.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void putparam __P((char *param, char *value));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void getuserlocale __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void putuserlocale __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void putConditionInfo __P((char *, char *));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* setadmin.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void setadminFile __P((char *file));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *setadminSetting __P((char *a_paramName,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *a_paramValue));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *set_keystore_admin __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern boolean_t get_proxy_port_admin __P((char **, ushort_t *));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern boolean_t check_keystore_admin __P((char **));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int web_ck_retries __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int web_ck_timeout __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int web_ck_authentication __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* setlist.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *cl_iscript __P((int idx));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *cl_rscript __P((int idx));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void find_CAS __P((int CAS_type, char *bin_ptr, char *inst_ptr));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int setlist __P((struct cl_attr ***plist, char *slist));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void addlist __P((struct cl_attr ***plist, char *item));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *cl_nam __P((int cl_idx));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *flex_device(char *device_name, int dev_ok);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int cl_getn __P((void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int cl_idx __P((char *cl_nam));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void cl_sets __P((char *slist));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void cl_setl __P((struct cl_attr **cl_lst));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void cl_putl __P((char *parm_name, struct cl_attr **list));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int cl_deliscript __P((int i));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern unsigned cl_svfy __P((int i));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern unsigned cl_dvfy __P((int i));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern unsigned cl_pthrel __P((int i));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* passwd.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int pkg_passphrase_cb __P((char *, int, int, void *));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void set_passarg __P((char *));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void set_prompt __P((char *));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* fixpath.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void __P(export_client_env(char *));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void __P(set_partial_inst(void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int __P(is_partial_inst(void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void __P(set_depend_pkginfo_DB(boolean_t a_setting));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern boolean_t __P(is_depend_pkginfo_DB(void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void __P(disable_spool_create(void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int __P(is_spool_create(void));
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* open_package_datastream.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern boolean_t open_package_datastream(int a_argc, char **a_argv,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *a_spoolto, char *a_device,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland int *r_repeat, char **r_idsName,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *a_tmpdir, struct pkgdev *a_pkgdev,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland int a_optind);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* setup_temporary_directory.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern boolean_t setup_temporary_directory(char **r_dirname,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *a_tmpdir, char *a_suffix);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* unpack_package_from_stream.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern boolean_t unpack_package_from_stream(char *a_idsName,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *a_pkginst, char *a_tempDir);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* pkgops.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern boolean_t pkgAddPackageToGzonlyList(char *a_pkgInst,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *a_rootPath);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void pkgAddThisZonePackage(char *a_pkgInst);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern boolean_t pkgRemovePackageFromGzonlyList(char *a_rootPath,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *a_pkgInst);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern FILE *pkgOpenInGzOnlyFile(char *a_rootPath);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void pkginfoFree(struct pkginfo **r_info);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern boolean_t pkginfoIsPkgInstalled(struct pkginfo **r_pinfo,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *a_pkgInst);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern boolean_t pkgIsPkgInGzOnly(char *a_rootPath, char *a_pkgInst);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern boolean_t pkgIsPkgInGzOnlyFP(FILE *a_fp, char *a_pkgInst);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern boolean_t pkginfoParamTruth(FILE *a_fp, char *a_param,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *a_value, boolean_t a_default);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int pkgGetPackageList(char ***r_pkgList, char **a_argv,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland int a_optind, char *a_categories,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char **a_categoryList, struct pkgdev *a_pkgdev);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void pkgLocateHighestInst(char *r_path, int r_pathLen,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *r_pkgInst, int r_pkgInstLen,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *a_rootPath, char *a_pkgInst);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern boolean_t pkgPackageIsThisZone(char *a_pkgInst);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern char *pkgGetGzOnlyPath(void);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern boolean_t pkgTestInstalled(char *a_packageName, char *a_rootPath);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* depchk.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandstruct depckErrorRecord {
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland int ier_numZones;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *ier_packageName;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char **ier_zones;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char **ier_values;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland};
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandtypedef struct depckErrorRecord depckErrorRecord_t;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandstruct depckError {
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland int er_numEntries;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland depckErrorRecord_t *er_theEntries;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland};
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandtypedef struct depckError depckError_t;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandtypedef int (depcklFunc_t)(char *a_msg, char *a_pkg);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * ignore_values:
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * == NULL - record one message for each instance of "name" found
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * == "" - record multiple instances
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * != "" - record multiple instances if value not in ignore_values
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandstruct depckl_struct {
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *name;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *ignore_values;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char **err_msg;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland depcklFunc_t *depcklFunc;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland depckError_t *record;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland};
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandtypedef struct depckl_struct depckl_t;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern int depchkReportErrors(depckl_t *depckl);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void depchkRecordError(depckError_t *a_erc,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *a_pkginst, char *a_zoneName,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *a_value);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* log.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* types of log messages we recognize */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandtypedef enum {
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland LOG_MSG_ERR,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland LOG_MSG_WRN,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland LOG_MSG_INFO,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland LOG_MSG_DEBUG
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland} LogMsgType;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*PRINTFLIKE2*/
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void log_msg(LogMsgType, const char *, ...);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern void log_set_verbose(boolean_t);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern boolean_t log_get_verbose(void);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * typedef for the 'ckreturn' function
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandtypedef void (ckreturnFunc_t)(int a_retcode);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* sml.c */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* null reference to SML_TAG object */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define SML_TAG__NULL ((SML_TAG*)NULL)
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* null reference to SML_TAG * object */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define SML_TAG__R_NULL ((SML_TAG**)NULL)
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* is reference to SML_TAG object valid? */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define SML_TAG__ISVALID(tag) ((tag) != (SML_TAG__NULL))
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* is indirect reference to SML_TAG object valid? */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define SML_TAG__R_ISVALID(r_tag) \
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland ((r_tag) != ((SML_TAG**)(SML_TAG__NULL)))
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/* definitions for sml passed from pkginstall to pkgcond */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define PKGCOND_GLOBAL_VARIABLE "SUNW_PKGCOND_GLOBAL_DATA"
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define TAG_COND_TOPLEVEL "environmentConditionInformation"
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define TAG_COND_PARENT_ZONE "parentZone"
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define TAG_COND_CURRENT_ZONE "currentZone"
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define TAG_COND_ZONE_NAME "zoneName"
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define TAG_COND_ZONE_TYPE "zoneType"
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define TAG_COND_FS_NAME "fileSystemName"
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define TAG_VALUE_GLOBAL_ZONE "global"
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define TAG_VALUE_NONGLOBAL_ZONE "nonglobal"
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandtypedef struct _sml_tag_struct SML_TAG;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandtypedef struct _sml_parameter_struct SML_PARAM;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandstruct _sml_tag_struct {
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *name; /* tag name */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland int params_num; /* # params in *params */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland SML_PARAM *params; /* tag parameters */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland int tags_num; /* # subtags in *tags */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland SML_TAG *tags; /* tag subtags */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland};
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandstruct _sml_parameter_struct {
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *name; /* tag name */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *value; /* parameters */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland};
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah WaterlandSML_TAG *smlAddTag(SML_TAG **r_tag, int a_index,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland SML_TAG *a_subTag);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandboolean_t smlFstatCompareEq(struct stat *statbuf,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland SML_TAG *tag, char *path);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandchar *smlConvertTagToString(SML_TAG *tag);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*PRINTFLIKE2*/
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandvoid smlDbgPrintTag(SML_TAG *a_tag, char *a_format, ...);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandvoid smlDelTag(SML_TAG *tag, SML_TAG *sub_tag);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandvoid smlDelParam(SML_TAG *tag, char *name);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah WaterlandSML_TAG *smlDup(SML_TAG *tag);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandboolean_t smlFindAndDelTag(SML_TAG *tag, char *findTag);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandvoid smlFreeTag(SML_TAG *tag);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandchar *smlGetElementName(SML_TAG *a_tag);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandint smlGetNumParams(SML_TAG *a_tag);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandchar *smlGetParam(SML_TAG *tag, char *name);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*PRINTFLIKE2*/
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandchar *smlGetParamF(SML_TAG *tag, char *format, ...);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandvoid smlGetParam_r(SML_TAG *tag, char *name, char *buf,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland int bufLen);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandchar *smlGetParamByTag(SML_TAG *tag, int index,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *tagName, char *parmName);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandchar *smlGetParamByTagParam(SML_TAG *tag, int index,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *tagName, char *parmName, char *parmValue,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *parmReturn);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandchar *smlGetParamName(SML_TAG *tag, int index);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah WaterlandSML_TAG *smlGetTag(SML_TAG *tag, int index);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah WaterlandSML_TAG *smlGetTagByName(SML_TAG *tag, int index, char *name);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah WaterlandSML_TAG *smlGetTagByTagParam(SML_TAG *tag, int index,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *tagName, char *paramName, char *paramValue);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandboolean_t smlGetVerbose(void);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandint smlLoadTagFromFile(SML_TAG **r_tag, char *a_fileName);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah WaterlandSML_TAG *smlNewTag(char *name);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandboolean_t smlParamEq(SML_TAG *tag, char *findTag,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *findParam, char *str);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*PRINTFLIKE4*/
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandboolean_t smlParamEqF(SML_TAG *tag, char *findTag, char *findParam,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *format, ...);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandvoid smlPrintTag(SML_TAG *tag);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandint smlReadOneTag(SML_TAG **r_tag, char *a_str);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandint smlConvertStringToTag(SML_TAG **r_tag, char *str);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandvoid smlSetFileStatInfo(SML_TAG **tag,
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland struct stat *statbuf, char *path);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandvoid smlSetParam(SML_TAG *tag, char *name, char *value);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*PRINTFLIKE3*/
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandvoid smlSetParamF(SML_TAG *tag, char *name, char *format, ...);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandvoid smlSetVerbose(boolean_t a_setting);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandint smlWriteTagToFd(SML_TAG *tag, int fd);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandint smlWriteTagToFile(SML_TAG *tag, char *filename);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*PRINTFLIKE3*/
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandvoid sml_strPrintf_r(char *a_buf, int a_bufLen, char *a_format, ...);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*PRINTFLIKE1*/
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandchar *sml_strPrintf(char *a_format, ...);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandchar *sml_XmlEncodeString(char *a_plainTextString);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandchar *sml_XmlDecodeString(char *a_xmlEncodedString);
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#if defined(lint) && !defined(gettext)
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define gettext(x) x
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#endif /* defined(lint) && !defined(gettext) */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#ifdef __cplusplus
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland}
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#endif
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#endif /* __HDRS_LIBINST_H__ */