1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 
22 /*
23  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
24  * Use is subject to license terms.
25  */
26 
27 #ifndef __PKG_PKGINSTALL_H__
28 #define	__PKG_PKGINSTALL_H__
29 
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 /* cppath() variables */
36 #define	DIR_DISPLAY	0x0001	/* display implied directories created */
37 #define	MODE_SRC	0x0002	/* set mode to mode of source file */
38 #define	MODE_SET	0x0004	/* set mode to mode passed in as argument */
39 #define	MODE_0666	0x0008	/* force mode to 0666 */
40 
41 /* special stdin for request scripts */
42 #define	REQ_STDIN	"/dev/tty"
43 
44 /* response file writability status */
45 #define	RESP_WR		0	/* Response file is writable. */
46 #define	RESP_RO		1	/* Read only. */
47 
48 #ifdef __STDC__
49 #ifndef __P
50 #define	__P(x)	x
51 #endif
52 #else
53 #ifndef __P
54 #define	__P(x)	()
55 #endif
56 #endif /* __STDC__ */
57 
58 extern int	cppath __P((int ctrl, char *f1, char *f2, mode_t mode));
59 extern void	backup __P((char *path, int mode));
60 extern void	pkgvolume __P((struct pkgdev *devp, char *pkg, int part,
61 		    int nparts));
62 extern void	quit __P((int exitval));
63 extern void	ckreturn __P((int retcode, char *msg));
64 extern int	sortmap __P((struct cfextra ***extlist, VFP_T *pkgmapVfp,
65 			VFP_T *mapvfp, VFP_T *tmpvfp, char *a_zoneName));
66 extern void merginfo __P((struct cl_attr **pclass, int install_from_pspool));
67 extern void	set_infoloc __P((char *real_pkgsav));
68 extern int	pkgenv __P((char *pkginst, char *p_pkginfo, char *p_pkgmap));
69 extern void	instvol __P((struct cfextra **extlist, char *srcinst, int part,
70 			int nparts, VFP_T **a_cfVfp, VFP_T **a_cfTmpVfp,
71 			char **r_updated, char **r_skipped,
72 			char *a_zoneName));
73 extern int	reqexec __P((int update, char *script, int non_abi_scripts,
74 			boolean_t enable_root_user));
75 extern int	chkexec __P((int update, char *script));
76 extern int	rdonly_respfile __P((void));
77 extern int	is_a_respfile __P((void));
78 extern char	*get_respfile __P((void));
79 extern int	set_respfile __P((char *respfile, char *pkginst,
80 		    int resp_stat));
81 extern void	predepend __P((char *oldpkg));
82 extern void	cksetPreinstallCheck __P((boolean_t a_preinstallCheck));
83 extern void	cksetZoneName __P((char *a_zoneName));
84 extern int	cksetuid __P((void));
85 extern int	ckconflct __P((void));
86 extern int	ckpkgdirs __P((void));
87 extern int	ckspace __P((void));
88 extern int	ckdepend __P((void));
89 extern int	ckrunlevel __P((void));
90 extern int	ckpartial __P((void));
91 extern int	ckpkgfiles __P((void));
92 extern int	ckpriv __P((void));
93 extern void	is_WOS_arch __P((void));
94 extern void	ckdirs __P((void));
95 extern char	*getinst __P((int *updatingExisting, struct pkginfo *info,
96 			int npkgs, boolean_t a_preinstallCheck));
97 extern int	is_samepkg __P((void));
98 extern int	dockspace __P((char *spacefile));
99 
100 extern int	special_contents_add(int, struct cfextra **, const char *);
101 extern boolean_t	rm_all_pkg_entries(char *, char *);
102 
103 #ifdef __cplusplus
104 }
105 #endif
106 
107 #endif	/* __PKG_PKGINSTALL_H__ */
108