xref: /onnv-gate/usr/src/cmd/svr4pkg/hdrs/libinst.h (revision 12734:76969fc28795)
19781SMoriah.Waterland@Sun.COM /*
29781SMoriah.Waterland@Sun.COM  * CDDL HEADER START
39781SMoriah.Waterland@Sun.COM  *
49781SMoriah.Waterland@Sun.COM  * The contents of this file are subject to the terms of the
59781SMoriah.Waterland@Sun.COM  * Common Development and Distribution License (the "License").
69781SMoriah.Waterland@Sun.COM  * You may not use this file except in compliance with the License.
79781SMoriah.Waterland@Sun.COM  *
89781SMoriah.Waterland@Sun.COM  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
99781SMoriah.Waterland@Sun.COM  * or http://www.opensolaris.org/os/licensing.
109781SMoriah.Waterland@Sun.COM  * See the License for the specific language governing permissions
119781SMoriah.Waterland@Sun.COM  * and limitations under the License.
129781SMoriah.Waterland@Sun.COM  *
139781SMoriah.Waterland@Sun.COM  * When distributing Covered Code, include this CDDL HEADER in each
149781SMoriah.Waterland@Sun.COM  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
159781SMoriah.Waterland@Sun.COM  * If applicable, add the following below this CDDL HEADER, with the
169781SMoriah.Waterland@Sun.COM  * fields enclosed by brackets "[]" replaced with your own identifying
179781SMoriah.Waterland@Sun.COM  * information: Portions Copyright [yyyy] [name of copyright owner]
189781SMoriah.Waterland@Sun.COM  *
199781SMoriah.Waterland@Sun.COM  * CDDL HEADER END
209781SMoriah.Waterland@Sun.COM  */
219781SMoriah.Waterland@Sun.COM 
229781SMoriah.Waterland@Sun.COM /*
23*12734Sgary.pennington@oracle.com  * Copyright (c) 1993, 2010, Oracle and/or its affiliates. All rights reserved.
249781SMoriah.Waterland@Sun.COM  */
259781SMoriah.Waterland@Sun.COM 
269781SMoriah.Waterland@Sun.COM #ifndef	__HDRS_LIBINST_H__
279781SMoriah.Waterland@Sun.COM #define	__HDRS_LIBINST_H__
289781SMoriah.Waterland@Sun.COM 
299781SMoriah.Waterland@Sun.COM 
309781SMoriah.Waterland@Sun.COM #ifdef __cplusplus
319781SMoriah.Waterland@Sun.COM extern "C" {
329781SMoriah.Waterland@Sun.COM #endif
339781SMoriah.Waterland@Sun.COM 
349781SMoriah.Waterland@Sun.COM #include <stdio.h>
359781SMoriah.Waterland@Sun.COM #include <fcntl.h>
369781SMoriah.Waterland@Sun.COM #include <sys/types.h>
379781SMoriah.Waterland@Sun.COM #include <sys/stat.h>
389781SMoriah.Waterland@Sun.COM #include <pkgstrct.h>
399781SMoriah.Waterland@Sun.COM #include <pkginfo.h>
409781SMoriah.Waterland@Sun.COM #include "pkglib.h"
419781SMoriah.Waterland@Sun.COM #include <cfext.h>
429781SMoriah.Waterland@Sun.COM #include "install.h"
439781SMoriah.Waterland@Sun.COM 
449781SMoriah.Waterland@Sun.COM #define	DEF_NONE_SCR	"i.CompCpio"
459781SMoriah.Waterland@Sun.COM 
469781SMoriah.Waterland@Sun.COM #define	BL_ALL		-1	/* refers to all allocated lists */
479781SMoriah.Waterland@Sun.COM 
489781SMoriah.Waterland@Sun.COM /* signal handler function definition */
499781SMoriah.Waterland@Sun.COM 
509781SMoriah.Waterland@Sun.COM typedef void (sighdlrFunc_t)(int);
519781SMoriah.Waterland@Sun.COM 
529781SMoriah.Waterland@Sun.COM /* maximum parameter length */
539781SMoriah.Waterland@Sun.COM 
549781SMoriah.Waterland@Sun.COM #define	MAX_PKG_PARAM_LENGTH	(64+1)	/* +1 for null termination */
559781SMoriah.Waterland@Sun.COM 
569781SMoriah.Waterland@Sun.COM /* flag for check_applicability */
579781SMoriah.Waterland@Sun.COM 
589781SMoriah.Waterland@Sun.COM typedef unsigned long CAF_T;
599781SMoriah.Waterland@Sun.COM 
609781SMoriah.Waterland@Sun.COM /* flags for check_applicability */
619781SMoriah.Waterland@Sun.COM 
629781SMoriah.Waterland@Sun.COM #define	CAF_IN_GLOBAL_ZONE	0x00000001	/* in global zone */
639781SMoriah.Waterland@Sun.COM #define	CAF_SCOPE_GLOBAL	0x00000002	/* -G specified */
649781SMoriah.Waterland@Sun.COM #define	CAF_SCOPE_NONGLOBAL	0x00000004	/* -Z specified */
659781SMoriah.Waterland@Sun.COM 
669781SMoriah.Waterland@Sun.COM /* path to the request file in the package directory */
679781SMoriah.Waterland@Sun.COM 
689781SMoriah.Waterland@Sun.COM #define	REQUEST_FILE	"install/request"
699781SMoriah.Waterland@Sun.COM 
709781SMoriah.Waterland@Sun.COM /* path to the copyright file in the package directory */
719781SMoriah.Waterland@Sun.COM 
729781SMoriah.Waterland@Sun.COM #define	COPYRIGHT_FILE	"install/copyright"
739781SMoriah.Waterland@Sun.COM 
749781SMoriah.Waterland@Sun.COM /* path to the depend file in the package directory */
759781SMoriah.Waterland@Sun.COM 
769781SMoriah.Waterland@Sun.COM #define	DEPEND_FILE	"install/depend"
779781SMoriah.Waterland@Sun.COM 
789781SMoriah.Waterland@Sun.COM /*
799781SMoriah.Waterland@Sun.COM  * name of environment variable set to non-global zone name being installed:
809781SMoriah.Waterland@Sun.COM  * pkgadd/pkginstall expects this name and passes it on to any scripts that
819781SMoriah.Waterland@Sun.COM  * are run if it is set.
829781SMoriah.Waterland@Sun.COM  */
839781SMoriah.Waterland@Sun.COM 
849781SMoriah.Waterland@Sun.COM #define	PKG_ZONENAME_VARIABLE	"SUNW_PKG_INSTALL_ZONENAME"
859781SMoriah.Waterland@Sun.COM 
869781SMoriah.Waterland@Sun.COM /*
879781SMoriah.Waterland@Sun.COM  * name of environment variable set to indicate this package should be installed
889781SMoriah.Waterland@Sun.COM  * in the current zone only - see PSARC/2004/789 - New Pkginfo(4) attributes
899781SMoriah.Waterland@Sun.COM  * for zones
909781SMoriah.Waterland@Sun.COM  */
919781SMoriah.Waterland@Sun.COM 
929781SMoriah.Waterland@Sun.COM #define	PKG_THISZONE_VARIABLE	"SUNW_PKG_THISZONE"
939781SMoriah.Waterland@Sun.COM 
949781SMoriah.Waterland@Sun.COM /*
959781SMoriah.Waterland@Sun.COM  * name of environment variable set to indicate this package should be installed
969781SMoriah.Waterland@Sun.COM  * in all zones, and only from the global zone - see PSARC/2003/460
979781SMoriah.Waterland@Sun.COM  */
989781SMoriah.Waterland@Sun.COM 
999781SMoriah.Waterland@Sun.COM #define	PKG_ALLZONES_VARIABLE	"SUNW_PKG_ALLZONES"
1009781SMoriah.Waterland@Sun.COM 
1019781SMoriah.Waterland@Sun.COM /*
1029781SMoriah.Waterland@Sun.COM  * name of environment variable set to indicate this package should be installed
1039781SMoriah.Waterland@Sun.COM  * hollow (db update only) when installed in nonglobal zone - see PSARC/2003/460
1049781SMoriah.Waterland@Sun.COM  */
1059781SMoriah.Waterland@Sun.COM 
1069781SMoriah.Waterland@Sun.COM #define	PKG_HOLLOW_VARIABLE	"SUNW_PKG_HOLLOW"
1079781SMoriah.Waterland@Sun.COM 
1089781SMoriah.Waterland@Sun.COM /*
1099781SMoriah.Waterland@Sun.COM  * General purpose return codes used for functions which don't return a basic
1109781SMoriah.Waterland@Sun.COM  * success or failure. For those functions wherein a yes/no result is
1119781SMoriah.Waterland@Sun.COM  * possible, then 1 means OK and 0 means FAIL.
1129781SMoriah.Waterland@Sun.COM  */
1139781SMoriah.Waterland@Sun.COM #define	RESULT_OK	0x0
1149781SMoriah.Waterland@Sun.COM #define	RESULT_WRN	0x1
1159781SMoriah.Waterland@Sun.COM #define	RESULT_ERR	0x2
1169781SMoriah.Waterland@Sun.COM 
1179781SMoriah.Waterland@Sun.COM /* These are the file status indicators for the contents file */
1189781SMoriah.Waterland@Sun.COM #define	INST_RDY	'+'	/* entry is ready to installf -f */
1199781SMoriah.Waterland@Sun.COM #define	RM_RDY		'-'	/* entry is ready for removef -f */
1209781SMoriah.Waterland@Sun.COM #define	NOT_FND		'!'	/* entry (or part of entry) was not found */
1219781SMoriah.Waterland@Sun.COM #define	SERVED_FILE	'%'	/* using the file server's RO partition */
1229781SMoriah.Waterland@Sun.COM #define	STAT_NEXT	'@'	/* this is awaiting eptstat */
1239781SMoriah.Waterland@Sun.COM #define	DUP_ENTRY	'#'	/* there's a duplicate of this */
1249781SMoriah.Waterland@Sun.COM #define	CONFIRM_CONT	'*'	/* need to confirm contents */
1259781SMoriah.Waterland@Sun.COM #define	CONFIRM_ATTR	'~'	/* need to confirm attributes */
1269781SMoriah.Waterland@Sun.COM #define	ENTRY_OK	'\0'	/* entry is a confirmed file */
1279781SMoriah.Waterland@Sun.COM 
1289781SMoriah.Waterland@Sun.COM /* control bits for pkgdbmerg() */
1299781SMoriah.Waterland@Sun.COM #define	NO_COPY		0x0001
1309781SMoriah.Waterland@Sun.COM #define	CLIENT_PATHS	0x0002	/* working with a client database */
1319781SMoriah.Waterland@Sun.COM 
1329781SMoriah.Waterland@Sun.COM /* control bits for file verification by class */
1339781SMoriah.Waterland@Sun.COM #define	DEFAULT		0x0	/* standard full verification */
1349781SMoriah.Waterland@Sun.COM #define	NOVERIFY	0x1	/* do not verify */
1359781SMoriah.Waterland@Sun.COM #define	QKVERIFY	0x2	/* do a quick verification instead */
1369781SMoriah.Waterland@Sun.COM 
1379781SMoriah.Waterland@Sun.COM /* control bit for path type to pass to CAS */
1389781SMoriah.Waterland@Sun.COM #define	DEFAULT		0x0	/* standard server-relative absolute path */
1399781SMoriah.Waterland@Sun.COM #define	REL_2_CAS	0x1	/* pass pkgmap-type relative path */
1409781SMoriah.Waterland@Sun.COM 
1419781SMoriah.Waterland@Sun.COM /* findscripts() argument */
1429781SMoriah.Waterland@Sun.COM #define	I_ONLY		0x0	/* find install class action scripts */
1439781SMoriah.Waterland@Sun.COM #define	R_ONLY		0x1	/* find removal class action scripts */
1449781SMoriah.Waterland@Sun.COM 
1459781SMoriah.Waterland@Sun.COM struct cl_attr {
1469781SMoriah.Waterland@Sun.COM 	char	name[CLSSIZ+1];	/* name of class */
1479781SMoriah.Waterland@Sun.COM 	char	*inst_script;	/* install class action script */
1489781SMoriah.Waterland@Sun.COM 	char	*rem_script;	/* remove class action script */
1499781SMoriah.Waterland@Sun.COM 	unsigned	src_verify:3;	/* source verification level */
1509781SMoriah.Waterland@Sun.COM 	unsigned 	dst_verify:4;	/* destination verification level */
1519781SMoriah.Waterland@Sun.COM 	unsigned	relpath_2_CAS:1;	/* CAS gets relative paths */
1529781SMoriah.Waterland@Sun.COM };
1539781SMoriah.Waterland@Sun.COM 
1549781SMoriah.Waterland@Sun.COM #if defined(__STDC__)
1559781SMoriah.Waterland@Sun.COM #define	__P(protos) protos
1569781SMoriah.Waterland@Sun.COM #else	/* __STDC__ */
1579781SMoriah.Waterland@Sun.COM #define	__P(protos) ()
1589781SMoriah.Waterland@Sun.COM #endif	/* __STDC__ */
1599781SMoriah.Waterland@Sun.COM 
1609781SMoriah.Waterland@Sun.COM /* Common quit declaration used across many package commands */
1619781SMoriah.Waterland@Sun.COM extern void	quit(int) __NORETURN;
1629781SMoriah.Waterland@Sun.COM 
1639781SMoriah.Waterland@Sun.COM 
1649781SMoriah.Waterland@Sun.COM /* listmgr.c */
1659781SMoriah.Waterland@Sun.COM extern int	bl_create __P((int count_per_block, int struct_size,
1669781SMoriah.Waterland@Sun.COM 		    char *desc));
1679781SMoriah.Waterland@Sun.COM extern char	*bl_next_avail __P((int list_handle));
1689781SMoriah.Waterland@Sun.COM extern char	*bl_get_record __P((int list_handle, int recno));
1699781SMoriah.Waterland@Sun.COM extern void	bl_free __P((int list_handle));
1709781SMoriah.Waterland@Sun.COM extern int	ar_create __P((int count_per_block, int struct_size,
1719781SMoriah.Waterland@Sun.COM 		    char *desc));
1729781SMoriah.Waterland@Sun.COM extern char	**ar_next_avail __P((int list_handle));
1739781SMoriah.Waterland@Sun.COM extern char	**ar_get_head __P((int list_handle));
1749781SMoriah.Waterland@Sun.COM extern int	ar_delete __P((int list_handle, int index));
1759781SMoriah.Waterland@Sun.COM extern void	ar_free __P((int list_handle));
1769781SMoriah.Waterland@Sun.COM 
1779781SMoriah.Waterland@Sun.COM /* doulimit.c */
1789781SMoriah.Waterland@Sun.COM extern int	set_ulimit __P((char *script, char *err_msg));
1799781SMoriah.Waterland@Sun.COM extern int	clr_ulimit __P((void));
1809781SMoriah.Waterland@Sun.COM extern int	assign_ulimit __P((char *fslimit));
1819781SMoriah.Waterland@Sun.COM 
1829781SMoriah.Waterland@Sun.COM /* dryrun.c */
1839781SMoriah.Waterland@Sun.COM extern void	set_continue_not_ok __P((void));
1849781SMoriah.Waterland@Sun.COM extern int	continue_is_ok __P((void));
1859781SMoriah.Waterland@Sun.COM extern int	in_dryrun_mode __P((void));
1869781SMoriah.Waterland@Sun.COM extern int	in_continue_mode __P((void));
1879781SMoriah.Waterland@Sun.COM extern void	init_dryrunfile __P((char *dr_dir));
1889781SMoriah.Waterland@Sun.COM extern void	init_contfile __P((char *cn_dir));
1899781SMoriah.Waterland@Sun.COM extern void	set_dr_exitmsg __P((char *value));
1909781SMoriah.Waterland@Sun.COM extern void	set_dr_info __P((int type, int value));
1919781SMoriah.Waterland@Sun.COM extern void	write_dryrun_file __P((struct cfextra **extlist));
1929781SMoriah.Waterland@Sun.COM 
1939781SMoriah.Waterland@Sun.COM /* instvol.c */
1949781SMoriah.Waterland@Sun.COM extern void	regfiles_free __P((void));
1959781SMoriah.Waterland@Sun.COM 
1969781SMoriah.Waterland@Sun.COM /* lockinst.c */
1979781SMoriah.Waterland@Sun.COM extern int	lockinst __P((char *util_name, char *pkg_name, char *place));
1989781SMoriah.Waterland@Sun.COM extern void	lockupd __P((char *place));
1999781SMoriah.Waterland@Sun.COM extern void	unlockinst __P((void));
2009781SMoriah.Waterland@Sun.COM 
2019781SMoriah.Waterland@Sun.COM extern char	*pathdup __P((char *s));
2029781SMoriah.Waterland@Sun.COM extern char	*pathalloc __P((int n));
2039781SMoriah.Waterland@Sun.COM extern char	*fixpath __P((char *path));
2049781SMoriah.Waterland@Sun.COM extern char	*get_info_basedir __P((void));
2059781SMoriah.Waterland@Sun.COM extern char	*get_basedir __P((void));
2069781SMoriah.Waterland@Sun.COM extern char	*get_client_basedir __P((void));
2079781SMoriah.Waterland@Sun.COM extern int	set_basedirs __P((int reloc, char *adm_basedir,
2089781SMoriah.Waterland@Sun.COM 		    char *pkginst, int nointeract));
2099781SMoriah.Waterland@Sun.COM extern int	eval_path __P((char **server_ptr, char **client_ptr,
2109781SMoriah.Waterland@Sun.COM 		    char **map_ptr, char *path));
2119781SMoriah.Waterland@Sun.COM extern int	get_orig_offset __P((void));
2129781SMoriah.Waterland@Sun.COM extern char	*get_inst_root __P((void));
2139781SMoriah.Waterland@Sun.COM extern char	*get_mount_point __P((short n));
2149781SMoriah.Waterland@Sun.COM extern char	*get_remote_path __P((short n));
2159781SMoriah.Waterland@Sun.COM extern void	set_env_cbdir __P((void));
2169781SMoriah.Waterland@Sun.COM extern int	set_inst_root __P((char *path));
2179781SMoriah.Waterland@Sun.COM extern void	put_path_params __P((void));
2189781SMoriah.Waterland@Sun.COM extern int	mkpath __P((char *p));
2199781SMoriah.Waterland@Sun.COM extern void	mkbasedir __P((int flag, char *path));
2209781SMoriah.Waterland@Sun.COM extern int	is_an_inst_root __P((void));
2219781SMoriah.Waterland@Sun.COM extern int	is_a_basedir __P((void));
2229781SMoriah.Waterland@Sun.COM extern int	is_a_cl_basedir __P((void));
2239781SMoriah.Waterland@Sun.COM extern int	is_relocatable __P((void));
2249781SMoriah.Waterland@Sun.COM extern char	*orig_path __P((char *path));
2259781SMoriah.Waterland@Sun.COM extern char	*orig_path_ptr __P((char *path));
2269781SMoriah.Waterland@Sun.COM extern char	*qreason __P((int caller, int retcode, int started,
2279781SMoriah.Waterland@Sun.COM 			int includeZonename));
2289781SMoriah.Waterland@Sun.COM extern char	*qstrdup __P((char *s));
2299781SMoriah.Waterland@Sun.COM extern char	*srcpath __P((char *d, char *p, int part, int nparts));
23010619SPhaniram.Krishnamurthy@Sun.COM extern char	*trans_srcp_pi __P((char *local_path));
2319781SMoriah.Waterland@Sun.COM extern int	copyf __P((char *from, char *to, time_t mytime));
2329781SMoriah.Waterland@Sun.COM extern int	copyFile __P((int, int, char *, char *, struct stat *, long));
2339781SMoriah.Waterland@Sun.COM extern int	openLocal __P((char *a_path, int a_oflag, char *a_tmpdir));
2349781SMoriah.Waterland@Sun.COM extern int	dockdeps __P((char *depfile, int removeFlag,
2359781SMoriah.Waterland@Sun.COM 			boolean_t a_preinstallCheck));
2369781SMoriah.Waterland@Sun.COM extern int	finalck __P((struct cfent *ept, int attrchg, int contchg,
2379781SMoriah.Waterland@Sun.COM 			boolean_t a_warning));
2389781SMoriah.Waterland@Sun.COM 
2399781SMoriah.Waterland@Sun.COM /* dockdeps.c */
2409781SMoriah.Waterland@Sun.COM extern void setUpdate __P((void));
2419781SMoriah.Waterland@Sun.COM extern int  isUpdate __P((void));
2429781SMoriah.Waterland@Sun.COM extern void setPatchUpdate __P((void));
2439781SMoriah.Waterland@Sun.COM extern int  isPatchUpdate __P((void));
2449781SMoriah.Waterland@Sun.COM 
2459781SMoriah.Waterland@Sun.COM /* mntinfo.c */
2469781SMoriah.Waterland@Sun.COM extern int	get_mntinfo __P((int map_client, char *vfstab_file));
2479781SMoriah.Waterland@Sun.COM extern short	fsys __P((char *path));
2489781SMoriah.Waterland@Sun.COM extern struct fstable *get_fs_entry __P((short n));
2499781SMoriah.Waterland@Sun.COM extern int	mount_client __P((void));
2509781SMoriah.Waterland@Sun.COM extern int	unmount_client __P((void));
2519781SMoriah.Waterland@Sun.COM extern short	resolved_fsys __P((char *path));
2529781SMoriah.Waterland@Sun.COM extern char	*get_server_host __P((short n));
2539781SMoriah.Waterland@Sun.COM extern char	*server_map __P((char *path, short fsys_value));
2549781SMoriah.Waterland@Sun.COM extern int	use_srvr_map __P((char *path, short *fsys_value));
2559781SMoriah.Waterland@Sun.COM extern int	use_srvr_map_n __P((short n));
2569781SMoriah.Waterland@Sun.COM extern int	is_fs_writeable __P((char *path, short *fsys_value));
2579781SMoriah.Waterland@Sun.COM extern int	is_remote_fs __P((char *path, short *fsys_value));
2589781SMoriah.Waterland@Sun.COM extern int	is_served __P((char *path, short *fsys_value));
2599781SMoriah.Waterland@Sun.COM extern int	is_mounted __P((char *path, short *fsys_value));
2609781SMoriah.Waterland@Sun.COM extern int	is_fs_writeable_n __P((short n));
2619781SMoriah.Waterland@Sun.COM extern int	is_remote_fs_n __P((short n));
2629781SMoriah.Waterland@Sun.COM extern int	is_served_n __P((short n));
2639781SMoriah.Waterland@Sun.COM extern int	is_mounted_n __P((short n));
2649781SMoriah.Waterland@Sun.COM extern fsblkcnt_t	get_blk_size_n __P((short n));
2659781SMoriah.Waterland@Sun.COM extern fsblkcnt_t	get_frag_size_n __P((short n));
2669781SMoriah.Waterland@Sun.COM extern fsblkcnt_t	get_blk_used_n __P((short n));
2679781SMoriah.Waterland@Sun.COM extern fsblkcnt_t	get_blk_free_n __P((short n));
2689781SMoriah.Waterland@Sun.COM extern fsblkcnt_t	get_inode_used_n __P((short n));
2699781SMoriah.Waterland@Sun.COM extern fsblkcnt_t	get_inode_free_n __P((short n));
2709781SMoriah.Waterland@Sun.COM extern void	set_blk_used_n __P((short n, fsblkcnt_t value));
2719781SMoriah.Waterland@Sun.COM extern char	*get_source_name_n __P((short n));
2729781SMoriah.Waterland@Sun.COM extern char	*get_fs_name_n __P((short n));
2739781SMoriah.Waterland@Sun.COM extern int	load_fsentry __P((struct fstable *fs_entry, char *name,
2749781SMoriah.Waterland@Sun.COM 		    char *fstype, char *remote_name));
2759781SMoriah.Waterland@Sun.COM extern int	isreloc __P((char *pkginstdir));
2769781SMoriah.Waterland@Sun.COM extern int	is_local_host __P((char *hostname));
2779781SMoriah.Waterland@Sun.COM extern void	fs_tab_free __P((void));
2789781SMoriah.Waterland@Sun.COM 
2799781SMoriah.Waterland@Sun.COM /* pkgdbmerg.c */
2809869SCasper.Dik@Sun.COM extern int	pkgdbmerg __P((PKGserver server, VFP_T *tmpvfp,
2819869SCasper.Dik@Sun.COM 		    struct cfextra **extlist));
2829781SMoriah.Waterland@Sun.COM extern int	files_installed __P((void));
2839781SMoriah.Waterland@Sun.COM 
2849781SMoriah.Waterland@Sun.COM /* ocfile.c */
2859781SMoriah.Waterland@Sun.COM extern int	trunc_tcfile __P((int fd));
2869869SCasper.Dik@Sun.COM extern int	ocfile __P((PKGserver *serverp, VFP_T **tmpvfp,
2879781SMoriah.Waterland@Sun.COM 			fsblkcnt_t map_blks));
2889869SCasper.Dik@Sun.COM extern int	swapcfile __P((PKGserver server, VFP_T **a_tmpvfp,
2899781SMoriah.Waterland@Sun.COM 			char *pkginst, int dbchg));
2909781SMoriah.Waterland@Sun.COM extern int	set_cfdir __P((char *cfdir));
2919869SCasper.Dik@Sun.COM extern int	socfile __P((PKGserver *server, boolean_t quiet));
2929781SMoriah.Waterland@Sun.COM extern int	relslock __P((void));
2939869SCasper.Dik@Sun.COM extern int	pkgWlock __P((int verbose));
2949781SMoriah.Waterland@Sun.COM extern int	iscfile __P((void));
2959781SMoriah.Waterland@Sun.COM extern int	vcfile __P((void));
2969781SMoriah.Waterland@Sun.COM 
2979781SMoriah.Waterland@Sun.COM extern fsblkcnt_t	nblk __P((fsblkcnt_t size, ulong_t bsize,
2989781SMoriah.Waterland@Sun.COM 			ulong_t frsize));
2999781SMoriah.Waterland@Sun.COM extern struct	cfent **procmap __P((VFP_T *vfp, int mapflag, char *ir));
3009781SMoriah.Waterland@Sun.COM extern void	repl_cfent __P((struct cfent *new, struct cfent *old));
3019781SMoriah.Waterland@Sun.COM extern struct	cfextra **pkgobjmap __P((VFP_T *vfp, int mapflag, char *ir));
3029781SMoriah.Waterland@Sun.COM extern void	pkgobjinit __P((void));
3039781SMoriah.Waterland@Sun.COM extern int	seed_pkgobjmap __P((struct cfextra *ext_entry, char *path,
3049781SMoriah.Waterland@Sun.COM 		    char *local));
3059781SMoriah.Waterland@Sun.COM extern int	init_pkgobjspace __P((void));
3069781SMoriah.Waterland@Sun.COM 
3079781SMoriah.Waterland@Sun.COM /* eptstat.c */
3089781SMoriah.Waterland@Sun.COM extern void	pinfo_free __P((void));
3099781SMoriah.Waterland@Sun.COM extern struct	pinfo *eptstat __P((struct cfent *entry, char *pkg, char c));
3109781SMoriah.Waterland@Sun.COM 
3119781SMoriah.Waterland@Sun.COM /* echo.c */
3129781SMoriah.Waterland@Sun.COM /*PRINTFLIKE1*/
3139781SMoriah.Waterland@Sun.COM extern void	echo __P((char *a_fmt, ...));
3149781SMoriah.Waterland@Sun.COM /*PRINTFLIKE1*/
3159781SMoriah.Waterland@Sun.COM extern void	echoDebug __P((char *a_fmt, ...));
3169781SMoriah.Waterland@Sun.COM extern boolean_t	echoGetFlag __P((void));
3179781SMoriah.Waterland@Sun.COM extern boolean_t	echoDebugGetFlag __P((void));
3189781SMoriah.Waterland@Sun.COM extern boolean_t	echoSetFlag __P((boolean_t a_debugFlag));
3199781SMoriah.Waterland@Sun.COM extern boolean_t	echoDebugSetFlag __P((boolean_t a_debugFlag));
3209781SMoriah.Waterland@Sun.COM 
3219781SMoriah.Waterland@Sun.COM /* psvr4ck.c */
3229781SMoriah.Waterland@Sun.COM extern void	psvr4cnflct __P((void));
3239781SMoriah.Waterland@Sun.COM extern void	psvr4mail __P((char *list, char *msg, int retcode, char *pkg));
3249781SMoriah.Waterland@Sun.COM extern void	psvr4pkg __P((char **ppkg));
3259781SMoriah.Waterland@Sun.COM 
3269781SMoriah.Waterland@Sun.COM /* ptext.c */
3279781SMoriah.Waterland@Sun.COM /*PRINTFLIKE2*/
3289781SMoriah.Waterland@Sun.COM extern void	ptext __P((FILE *fp, char *fmt, ...));
3299781SMoriah.Waterland@Sun.COM 
3309781SMoriah.Waterland@Sun.COM /* putparam.c */
3319781SMoriah.Waterland@Sun.COM extern void	putparam __P((char *param, char *value));
3329781SMoriah.Waterland@Sun.COM extern void	getuserlocale __P((void));
3339781SMoriah.Waterland@Sun.COM extern void	putuserlocale __P((void));
3349781SMoriah.Waterland@Sun.COM extern void	putConditionInfo __P((char *, char *));
3359781SMoriah.Waterland@Sun.COM 
3369781SMoriah.Waterland@Sun.COM /* setadmin.c */
3379781SMoriah.Waterland@Sun.COM extern void		setadminFile __P((char *file));
3389781SMoriah.Waterland@Sun.COM extern char		*setadminSetting __P((char *a_paramName,
3399781SMoriah.Waterland@Sun.COM 				char *a_paramValue));
3409781SMoriah.Waterland@Sun.COM extern char		*set_keystore_admin __P((void));
3419781SMoriah.Waterland@Sun.COM extern boolean_t	get_proxy_port_admin __P((char **, ushort_t *));
3429781SMoriah.Waterland@Sun.COM extern boolean_t	check_keystore_admin __P((char **));
3439781SMoriah.Waterland@Sun.COM extern int		web_ck_retries __P((void));
3449781SMoriah.Waterland@Sun.COM extern int		web_ck_timeout __P((void));
3459781SMoriah.Waterland@Sun.COM extern int		web_ck_authentication __P((void));
3469781SMoriah.Waterland@Sun.COM 
3479781SMoriah.Waterland@Sun.COM /* setlist.c */
3489781SMoriah.Waterland@Sun.COM extern char	*cl_iscript __P((int idx));
3499781SMoriah.Waterland@Sun.COM extern char	*cl_rscript __P((int idx));
3509781SMoriah.Waterland@Sun.COM extern void	find_CAS __P((int CAS_type, char *bin_ptr, char *inst_ptr));
3519781SMoriah.Waterland@Sun.COM extern int	setlist __P((struct cl_attr ***plist, char *slist));
3529781SMoriah.Waterland@Sun.COM extern void	addlist __P((struct cl_attr ***plist, char *item));
3539781SMoriah.Waterland@Sun.COM extern char	*cl_nam __P((int cl_idx));
3549781SMoriah.Waterland@Sun.COM extern char	*flex_device(char *device_name, int dev_ok);
3559781SMoriah.Waterland@Sun.COM extern int	cl_getn __P((void));
3569781SMoriah.Waterland@Sun.COM extern int	cl_idx __P((char *cl_nam));
3579781SMoriah.Waterland@Sun.COM extern void	cl_sets __P((char *slist));
3589781SMoriah.Waterland@Sun.COM extern void	cl_setl __P((struct cl_attr **cl_lst));
3599781SMoriah.Waterland@Sun.COM extern void	cl_putl __P((char *parm_name, struct cl_attr **list));
3609781SMoriah.Waterland@Sun.COM extern int	cl_deliscript __P((int i));
3619781SMoriah.Waterland@Sun.COM extern unsigned	cl_svfy __P((int i));
3629781SMoriah.Waterland@Sun.COM extern unsigned	cl_dvfy __P((int i));
3639781SMoriah.Waterland@Sun.COM extern unsigned	cl_pthrel __P((int i));
3649781SMoriah.Waterland@Sun.COM 
3659781SMoriah.Waterland@Sun.COM /* passwd.c */
3669781SMoriah.Waterland@Sun.COM extern int	pkg_passphrase_cb __P((char *, int, int, void *));
3679781SMoriah.Waterland@Sun.COM extern void	set_passarg __P((char *));
3689781SMoriah.Waterland@Sun.COM extern void	set_prompt __P((char *));
3699781SMoriah.Waterland@Sun.COM 
3709781SMoriah.Waterland@Sun.COM /* fixpath.c */
3719781SMoriah.Waterland@Sun.COM extern void __P(export_client_env(char *));
3729781SMoriah.Waterland@Sun.COM extern void __P(set_partial_inst(void));
3739781SMoriah.Waterland@Sun.COM extern int __P(is_partial_inst(void));
3749781SMoriah.Waterland@Sun.COM extern void __P(set_depend_pkginfo_DB(boolean_t a_setting));
3759781SMoriah.Waterland@Sun.COM extern boolean_t __P(is_depend_pkginfo_DB(void));
3769781SMoriah.Waterland@Sun.COM extern void __P(disable_spool_create(void));
3779781SMoriah.Waterland@Sun.COM extern int __P(is_spool_create(void));
3789781SMoriah.Waterland@Sun.COM 
3799781SMoriah.Waterland@Sun.COM /* open_package_datastream.c */
3809781SMoriah.Waterland@Sun.COM extern boolean_t	open_package_datastream(int a_argc, char **a_argv,
3819781SMoriah.Waterland@Sun.COM 				char *a_spoolto, char *a_device,
3829781SMoriah.Waterland@Sun.COM 				int *r_repeat, char **r_idsName,
3839781SMoriah.Waterland@Sun.COM 				char *a_tmpdir, struct pkgdev *a_pkgdev,
3849781SMoriah.Waterland@Sun.COM 				int a_optind);
3859781SMoriah.Waterland@Sun.COM 
3869781SMoriah.Waterland@Sun.COM /* setup_temporary_directory.c */
3879781SMoriah.Waterland@Sun.COM extern boolean_t	setup_temporary_directory(char **r_dirname,
3889781SMoriah.Waterland@Sun.COM 				char *a_tmpdir, char *a_suffix);
3899781SMoriah.Waterland@Sun.COM 
3909781SMoriah.Waterland@Sun.COM /* unpack_package_from_stream.c */
3919781SMoriah.Waterland@Sun.COM extern boolean_t	unpack_package_from_stream(char *a_idsName,
3929781SMoriah.Waterland@Sun.COM 				char *a_pkginst, char *a_tempDir);
3939781SMoriah.Waterland@Sun.COM 
3949781SMoriah.Waterland@Sun.COM /* pkgops.c */
3959781SMoriah.Waterland@Sun.COM 
3969781SMoriah.Waterland@Sun.COM extern boolean_t	pkgAddPackageToGzonlyList(char *a_pkgInst,
3979781SMoriah.Waterland@Sun.COM 				char *a_rootPath);
3989781SMoriah.Waterland@Sun.COM extern void		pkgAddThisZonePackage(char *a_pkgInst);
3999781SMoriah.Waterland@Sun.COM extern boolean_t	pkgRemovePackageFromGzonlyList(char *a_rootPath,
4009781SMoriah.Waterland@Sun.COM 				char *a_pkgInst);
4019781SMoriah.Waterland@Sun.COM extern FILE		*pkgOpenInGzOnlyFile(char *a_rootPath);
4029781SMoriah.Waterland@Sun.COM extern void		pkginfoFree(struct pkginfo **r_info);
4039781SMoriah.Waterland@Sun.COM extern boolean_t	pkginfoIsPkgInstalled(struct pkginfo **r_pinfo,
4049781SMoriah.Waterland@Sun.COM 				char *a_pkgInst);
4059781SMoriah.Waterland@Sun.COM extern boolean_t	pkgIsPkgInGzOnly(char *a_rootPath, char *a_pkgInst);
4069781SMoriah.Waterland@Sun.COM extern boolean_t	pkgIsPkgInGzOnlyFP(FILE *a_fp, char *a_pkgInst);
4079781SMoriah.Waterland@Sun.COM extern boolean_t	pkginfoParamTruth(FILE *a_fp, char *a_param,
4089781SMoriah.Waterland@Sun.COM 				char *a_value, boolean_t a_default);
4099781SMoriah.Waterland@Sun.COM extern int		pkgGetPackageList(char ***r_pkgList, char **a_argv,
4109781SMoriah.Waterland@Sun.COM 				int a_optind, char *a_categories,
4119781SMoriah.Waterland@Sun.COM 				char **a_categoryList, struct pkgdev *a_pkgdev);
4129781SMoriah.Waterland@Sun.COM extern void		pkgLocateHighestInst(char *r_path, int r_pathLen,
4139781SMoriah.Waterland@Sun.COM 				char *r_pkgInst, int r_pkgInstLen,
4149781SMoriah.Waterland@Sun.COM 				char *a_rootPath, char *a_pkgInst);
4159781SMoriah.Waterland@Sun.COM extern boolean_t	pkgPackageIsThisZone(char *a_pkgInst);
4169781SMoriah.Waterland@Sun.COM extern char		*pkgGetGzOnlyPath(void);
4179781SMoriah.Waterland@Sun.COM extern boolean_t	pkgTestInstalled(char *a_packageName, char *a_rootPath);
4189781SMoriah.Waterland@Sun.COM 
4199781SMoriah.Waterland@Sun.COM /* depchk.c */
4209781SMoriah.Waterland@Sun.COM 
4219781SMoriah.Waterland@Sun.COM struct depckErrorRecord {
4229781SMoriah.Waterland@Sun.COM 	int	ier_numZones;
4239781SMoriah.Waterland@Sun.COM 	char	*ier_packageName;
4249781SMoriah.Waterland@Sun.COM 	char	**ier_zones;
4259781SMoriah.Waterland@Sun.COM 	char	**ier_values;
4269781SMoriah.Waterland@Sun.COM };
4279781SMoriah.Waterland@Sun.COM 
4289781SMoriah.Waterland@Sun.COM typedef struct depckErrorRecord depckErrorRecord_t;
4299781SMoriah.Waterland@Sun.COM 
4309781SMoriah.Waterland@Sun.COM struct depckError {
4319781SMoriah.Waterland@Sun.COM 	int			er_numEntries;
4329781SMoriah.Waterland@Sun.COM 	depckErrorRecord_t	*er_theEntries;
4339781SMoriah.Waterland@Sun.COM };
4349781SMoriah.Waterland@Sun.COM 
4359781SMoriah.Waterland@Sun.COM typedef struct depckError depckError_t;
4369781SMoriah.Waterland@Sun.COM 
4379781SMoriah.Waterland@Sun.COM typedef int (depcklFunc_t)(char *a_msg, char *a_pkg);
4389781SMoriah.Waterland@Sun.COM 
4399781SMoriah.Waterland@Sun.COM /*
4409781SMoriah.Waterland@Sun.COM  * ignore_values:
4419781SMoriah.Waterland@Sun.COM  *	== NULL - record one message for each instance of "name" found
4429781SMoriah.Waterland@Sun.COM  *	== "" - record multiple instances
4439781SMoriah.Waterland@Sun.COM  *	!= "" - record multiple instances if value not in ignore_values
4449781SMoriah.Waterland@Sun.COM  */
4459781SMoriah.Waterland@Sun.COM 
4469781SMoriah.Waterland@Sun.COM struct depckl_struct {
4479781SMoriah.Waterland@Sun.COM 	char		*name;
4489781SMoriah.Waterland@Sun.COM 	char		*ignore_values;
4499781SMoriah.Waterland@Sun.COM 	char		**err_msg;
4509781SMoriah.Waterland@Sun.COM 	depcklFunc_t	*depcklFunc;
4519781SMoriah.Waterland@Sun.COM 	depckError_t	*record;
4529781SMoriah.Waterland@Sun.COM };
4539781SMoriah.Waterland@Sun.COM 
4549781SMoriah.Waterland@Sun.COM typedef struct depckl_struct depckl_t;
4559781SMoriah.Waterland@Sun.COM 
4569781SMoriah.Waterland@Sun.COM extern int		depchkReportErrors(depckl_t *depckl);
4579781SMoriah.Waterland@Sun.COM extern void		depchkRecordError(depckError_t *a_erc,
4589781SMoriah.Waterland@Sun.COM 				char *a_pkginst, char *a_zoneName,
4599781SMoriah.Waterland@Sun.COM 				char *a_value);
4609781SMoriah.Waterland@Sun.COM 
4619781SMoriah.Waterland@Sun.COM /* log.c */
4629781SMoriah.Waterland@Sun.COM 
4639781SMoriah.Waterland@Sun.COM /* types of log messages we recognize */
4649781SMoriah.Waterland@Sun.COM typedef enum {
4659781SMoriah.Waterland@Sun.COM 	LOG_MSG_ERR,
4669781SMoriah.Waterland@Sun.COM 	LOG_MSG_WRN,
4679781SMoriah.Waterland@Sun.COM 	LOG_MSG_INFO,
4689781SMoriah.Waterland@Sun.COM 	LOG_MSG_DEBUG
4699781SMoriah.Waterland@Sun.COM } LogMsgType;
4709781SMoriah.Waterland@Sun.COM 
4719781SMoriah.Waterland@Sun.COM /*PRINTFLIKE2*/
4729781SMoriah.Waterland@Sun.COM extern	void		log_msg(LogMsgType, const char *, ...);
4739781SMoriah.Waterland@Sun.COM extern	void		log_set_verbose(boolean_t);
4749781SMoriah.Waterland@Sun.COM extern	boolean_t	log_get_verbose(void);
4759781SMoriah.Waterland@Sun.COM 
4769781SMoriah.Waterland@Sun.COM /*
4779781SMoriah.Waterland@Sun.COM  * typedef for the 'ckreturn' function
4789781SMoriah.Waterland@Sun.COM  */
4799781SMoriah.Waterland@Sun.COM typedef void (ckreturnFunc_t)(int a_retcode);
4809781SMoriah.Waterland@Sun.COM 
4819781SMoriah.Waterland@Sun.COM /* sml.c */
4829781SMoriah.Waterland@Sun.COM 
4839781SMoriah.Waterland@Sun.COM /* null reference to SML_TAG object */
4849781SMoriah.Waterland@Sun.COM 
4859781SMoriah.Waterland@Sun.COM #define	SML_TAG__NULL		((SML_TAG*)NULL)
4869781SMoriah.Waterland@Sun.COM 
4879781SMoriah.Waterland@Sun.COM /* null reference to SML_TAG * object */
4889781SMoriah.Waterland@Sun.COM 
4899781SMoriah.Waterland@Sun.COM #define	SML_TAG__R_NULL		((SML_TAG**)NULL)
4909781SMoriah.Waterland@Sun.COM 
4919781SMoriah.Waterland@Sun.COM /* is reference to SML_TAG object valid? */
4929781SMoriah.Waterland@Sun.COM 
4939781SMoriah.Waterland@Sun.COM #define	SML_TAG__ISVALID(tag)	((tag) != (SML_TAG__NULL))
4949781SMoriah.Waterland@Sun.COM 
4959781SMoriah.Waterland@Sun.COM /* is indirect reference to SML_TAG object valid? */
4969781SMoriah.Waterland@Sun.COM 
4979781SMoriah.Waterland@Sun.COM #define	SML_TAG__R_ISVALID(r_tag)	\
4989781SMoriah.Waterland@Sun.COM 	((r_tag) != ((SML_TAG**)(SML_TAG__NULL)))
4999781SMoriah.Waterland@Sun.COM 
5009781SMoriah.Waterland@Sun.COM /* definitions for sml passed from pkginstall to pkgcond */
5019781SMoriah.Waterland@Sun.COM 
5029781SMoriah.Waterland@Sun.COM #define	PKGCOND_GLOBAL_VARIABLE	"SUNW_PKGCOND_GLOBAL_DATA"
5039781SMoriah.Waterland@Sun.COM #define	TAG_COND_TOPLEVEL	"environmentConditionInformation"
5049781SMoriah.Waterland@Sun.COM #define	TAG_COND_PARENT_ZONE	"parentZone"
5059781SMoriah.Waterland@Sun.COM #define	TAG_COND_CURRENT_ZONE	"currentZone"
5069781SMoriah.Waterland@Sun.COM #define	TAG_COND_ZONE_NAME	"zoneName"
5079781SMoriah.Waterland@Sun.COM #define	TAG_COND_ZONE_TYPE	"zoneType"
5089781SMoriah.Waterland@Sun.COM #define	TAG_COND_FS_NAME	"fileSystemName"
5099781SMoriah.Waterland@Sun.COM #define	TAG_VALUE_GLOBAL_ZONE	"global"
5109781SMoriah.Waterland@Sun.COM #define	TAG_VALUE_NONGLOBAL_ZONE	"nonglobal"
5119781SMoriah.Waterland@Sun.COM 
5129781SMoriah.Waterland@Sun.COM typedef struct _sml_tag_struct SML_TAG;
5139781SMoriah.Waterland@Sun.COM typedef struct _sml_parameter_struct SML_PARAM;
5149781SMoriah.Waterland@Sun.COM 
5159781SMoriah.Waterland@Sun.COM struct _sml_tag_struct {
5169781SMoriah.Waterland@Sun.COM 	char		*name;		/* tag name */
5179781SMoriah.Waterland@Sun.COM 	int		params_num;	/* # params in *params */
5189781SMoriah.Waterland@Sun.COM 	SML_PARAM	*params;	/* tag parameters */
5199781SMoriah.Waterland@Sun.COM 	int		tags_num;	/* # subtags in *tags */
5209781SMoriah.Waterland@Sun.COM 	SML_TAG		*tags;		/* tag subtags */
5219781SMoriah.Waterland@Sun.COM };
5229781SMoriah.Waterland@Sun.COM 
5239781SMoriah.Waterland@Sun.COM struct _sml_parameter_struct {
5249781SMoriah.Waterland@Sun.COM 	char	*name;		/* tag name */
5259781SMoriah.Waterland@Sun.COM 	char	*value;		/* parameters */
5269781SMoriah.Waterland@Sun.COM };
5279781SMoriah.Waterland@Sun.COM 
5289781SMoriah.Waterland@Sun.COM SML_TAG		*smlAddTag(SML_TAG **r_tag, int a_index,
5299781SMoriah.Waterland@Sun.COM 			SML_TAG *a_subTag);
5309781SMoriah.Waterland@Sun.COM boolean_t	smlFstatCompareEq(struct stat *statbuf,
5319781SMoriah.Waterland@Sun.COM 				SML_TAG *tag, char *path);
5329781SMoriah.Waterland@Sun.COM char		*smlConvertTagToString(SML_TAG *tag);
5339781SMoriah.Waterland@Sun.COM /*PRINTFLIKE2*/
5349781SMoriah.Waterland@Sun.COM void		smlDbgPrintTag(SML_TAG *a_tag, char *a_format, ...);
5359781SMoriah.Waterland@Sun.COM void		smlDelTag(SML_TAG *tag, SML_TAG *sub_tag);
5369781SMoriah.Waterland@Sun.COM void		smlDelParam(SML_TAG *tag, char *name);
5379781SMoriah.Waterland@Sun.COM SML_TAG		*smlDup(SML_TAG *tag);
5389781SMoriah.Waterland@Sun.COM boolean_t	smlFindAndDelTag(SML_TAG *tag, char *findTag);
5399781SMoriah.Waterland@Sun.COM void		smlFreeTag(SML_TAG *tag);
5409781SMoriah.Waterland@Sun.COM char		*smlGetElementName(SML_TAG *a_tag);
5419781SMoriah.Waterland@Sun.COM int		smlGetNumParams(SML_TAG *a_tag);
5429781SMoriah.Waterland@Sun.COM char		*smlGetParam(SML_TAG *tag, char *name);
5439781SMoriah.Waterland@Sun.COM /*PRINTFLIKE2*/
5449781SMoriah.Waterland@Sun.COM char		*smlGetParamF(SML_TAG *tag, char *format, ...);
5459781SMoriah.Waterland@Sun.COM void		smlGetParam_r(SML_TAG *tag, char *name, char *buf,
5469781SMoriah.Waterland@Sun.COM 			int bufLen);
5479781SMoriah.Waterland@Sun.COM char		*smlGetParamByTag(SML_TAG *tag, int index,
5489781SMoriah.Waterland@Sun.COM 			char *tagName, char *parmName);
5499781SMoriah.Waterland@Sun.COM char		*smlGetParamByTagParam(SML_TAG *tag, int index,
5509781SMoriah.Waterland@Sun.COM 			char *tagName, char *parmName, char *parmValue,
5519781SMoriah.Waterland@Sun.COM 			char *parmReturn);
5529781SMoriah.Waterland@Sun.COM char		*smlGetParamName(SML_TAG *tag, int index);
5539781SMoriah.Waterland@Sun.COM SML_TAG		*smlGetTag(SML_TAG *tag, int index);
5549781SMoriah.Waterland@Sun.COM SML_TAG		*smlGetTagByName(SML_TAG *tag, int index, char *name);
5559781SMoriah.Waterland@Sun.COM SML_TAG		*smlGetTagByTagParam(SML_TAG *tag, int index,
5569781SMoriah.Waterland@Sun.COM 			char *tagName, char *paramName, char *paramValue);
5579781SMoriah.Waterland@Sun.COM boolean_t	smlGetVerbose(void);
5589781SMoriah.Waterland@Sun.COM int		smlLoadTagFromFile(SML_TAG **r_tag, char *a_fileName);
5599781SMoriah.Waterland@Sun.COM SML_TAG		*smlNewTag(char *name);
5609781SMoriah.Waterland@Sun.COM boolean_t	smlParamEq(SML_TAG *tag, char *findTag,
5619781SMoriah.Waterland@Sun.COM 			char *findParam, char *str);
5629781SMoriah.Waterland@Sun.COM /*PRINTFLIKE4*/
5639781SMoriah.Waterland@Sun.COM boolean_t	smlParamEqF(SML_TAG *tag, char *findTag, char *findParam,
5649781SMoriah.Waterland@Sun.COM 			char *format, ...);
5659781SMoriah.Waterland@Sun.COM void		smlPrintTag(SML_TAG *tag);
5669781SMoriah.Waterland@Sun.COM int		smlReadOneTag(SML_TAG **r_tag, char *a_str);
5679781SMoriah.Waterland@Sun.COM int		smlConvertStringToTag(SML_TAG **r_tag, char *str);
5689781SMoriah.Waterland@Sun.COM void		smlSetFileStatInfo(SML_TAG **tag,
5699781SMoriah.Waterland@Sun.COM 				struct stat *statbuf, char *path);
5709781SMoriah.Waterland@Sun.COM void		smlSetParam(SML_TAG *tag, char *name, char *value);
5719781SMoriah.Waterland@Sun.COM /*PRINTFLIKE3*/
5729781SMoriah.Waterland@Sun.COM void		smlSetParamF(SML_TAG *tag, char *name, char *format, ...);
5739781SMoriah.Waterland@Sun.COM void		smlSetVerbose(boolean_t a_setting);
5749781SMoriah.Waterland@Sun.COM int		smlWriteTagToFd(SML_TAG *tag, int fd);
5759781SMoriah.Waterland@Sun.COM int		smlWriteTagToFile(SML_TAG *tag, char *filename);
5769781SMoriah.Waterland@Sun.COM /*PRINTFLIKE3*/
5779781SMoriah.Waterland@Sun.COM void		sml_strPrintf_r(char *a_buf, int a_bufLen, char *a_format, ...);
5789781SMoriah.Waterland@Sun.COM /*PRINTFLIKE1*/
5799781SMoriah.Waterland@Sun.COM char 		*sml_strPrintf(char *a_format, ...);
5809781SMoriah.Waterland@Sun.COM char		*sml_XmlEncodeString(char *a_plainTextString);
5819781SMoriah.Waterland@Sun.COM char		*sml_XmlDecodeString(char *a_xmlEncodedString);
5829781SMoriah.Waterland@Sun.COM 
5839781SMoriah.Waterland@Sun.COM #if defined(lint) && !defined(gettext)
5849781SMoriah.Waterland@Sun.COM #define	gettext(x)	x
5859781SMoriah.Waterland@Sun.COM #endif	/* defined(lint) && !defined(gettext) */
5869781SMoriah.Waterland@Sun.COM 
5879781SMoriah.Waterland@Sun.COM #ifdef __cplusplus
5889781SMoriah.Waterland@Sun.COM }
5899781SMoriah.Waterland@Sun.COM #endif
5909781SMoriah.Waterland@Sun.COM 
5919781SMoriah.Waterland@Sun.COM #endif	/* __HDRS_LIBINST_H__ */
592