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 (c) 2018 Peter Tribble.
24  */
25 
26 /*
27  * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved.
28  */
29 
30 #ifndef __PKG_PKGINSTALL_H__
31 #define	__PKG_PKGINSTALL_H__
32 
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
38 /* cppath() variables */
39 #define	DIR_DISPLAY	0x0001	/* display implied directories created */
40 #define	MODE_SRC	0x0002	/* set mode to mode of source file */
41 #define	MODE_SET	0x0004	/* set mode to mode passed in as argument */
42 #define	MODE_0666	0x0008	/* force mode to 0666 */
43 
44 /* special stdin for request scripts */
45 #define	REQ_STDIN	"/dev/tty"
46 
47 /* response file writability status */
48 #define	RESP_WR		0	/* Response file is writable. */
49 #define	RESP_RO		1	/* Read only. */
50 
51 #ifdef __STDC__
52 #ifndef __P
53 #define	__P(x)	x
54 #endif
55 #else
56 #ifndef __P
57 #define	__P(x)	()
58 #endif
59 #endif /* __STDC__ */
60 
61 extern int	cppath __P((int ctrl, char *f1, char *f2, mode_t mode));
62 extern void	backup __P((char *path, int mode));
63 extern void	pkgvolume __P((struct pkgdev *devp, char *pkg, int part,
64 		    int nparts));
65 extern void	quit __P((int exitval));
66 extern void	ckreturn __P((int retcode, char *msg));
67 extern int	sortmap __P((struct cfextra ***extlist, VFP_T *pkgmapVfp,
68 			PKGserver serv, VFP_T *tmpvfp, char *a_zoneName));
69 extern void merginfo __P((struct cl_attr **pclass, int install_from_pspool));
70 extern void	set_infoloc __P((char *real_pkgsav));
71 extern int	pkgenv __P((char *pkginst, char *p_pkginfo, char *p_pkgmap));
72 extern void	instvol __P((struct cfextra **extlist, char *srcinst, int part,
73 			int nparts, PKGserver server, VFP_T **a_cfTmpVfp,
74 			char **r_updated, char *a_zoneName));
75 extern int	reqexec __P((int update, char *script, int non_abi_scripts,
76 			boolean_t enable_root_user));
77 extern int	chkexec __P((int update, char *script));
78 extern int	rdonly_respfile __P((void));
79 extern int	is_a_respfile __P((void));
80 extern char	*get_respfile __P((void));
81 extern int	set_respfile __P((char *respfile, char *pkginst,
82 		    int resp_stat));
83 extern void	predepend __P((char *oldpkg));
84 extern void	cksetPreinstallCheck __P((boolean_t a_preinstallCheck));
85 extern void	cksetZoneName __P((char *a_zoneName));
86 extern int	cksetuid __P((void));
87 extern int	ckconflct __P((void));
88 extern int	ckpkgdirs __P((void));
89 extern int	ckspace __P((void));
90 extern int	ckdepend __P((void));
91 extern int	ckrunlevel __P((void));
92 extern int	ckpartial __P((void));
93 extern int	ckpkgfiles __P((void));
94 extern int	ckpriv __P((void));
95 extern void	is_WOS_arch __P((void));
96 extern void	ckdirs __P((void));
97 extern char	*getinst __P((int *updatingExisting, struct pkginfo *info,
98 			int npkgs, boolean_t a_preinstallCheck));
99 extern int	is_samepkg __P((void));
100 extern int	dockspace __P((char *spacefile));
101 
102 #ifdef __cplusplus
103 }
104 #endif
105 
106 #endif	/* __PKG_PKGINSTALL_H__ */
107