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