libutil.h (233837) | libutil.h (233855) |
---|---|
1/* 2 * Copyright (c) 1996 Peter Wemm <peter@FreeBSD.org>. 3 * All rights reserved. 4 * Copyright (c) 2002 Networks Associates Technology, Inc. 5 * All rights reserved. 6 * 7 * Portions of this software were developed for the FreeBSD Project by 8 * ThinkSec AS and NAI Labs, the Security Research Division of Network --- 19 unchanged lines hidden (view full) --- 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * | 1/* 2 * Copyright (c) 1996 Peter Wemm <peter@FreeBSD.org>. 3 * All rights reserved. 4 * Copyright (c) 2002 Networks Associates Technology, Inc. 5 * All rights reserved. 6 * 7 * Portions of this software were developed for the FreeBSD Project by 8 * ThinkSec AS and NAI Labs, the Security Research Division of Network --- 19 unchanged lines hidden (view full) --- 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * |
36 * $FreeBSD: stable/9/lib/libutil/libutil.h 233837 2012-04-03 15:42:08Z ghelmer $ | 36 * $FreeBSD: stable/9/lib/libutil/libutil.h 233855 2012-04-03 20:49:26Z ghelmer $ |
37 */ 38 39#ifndef _LIBUTIL_H_ 40#define _LIBUTIL_H_ 41 42#include <sys/cdefs.h> 43#include <sys/_types.h> 44#include <sys/_stdint.h> 45 46#ifndef _GID_T_DECLARED 47typedef __gid_t gid_t; 48#define _GID_T_DECLARED 49#endif 50 | 37 */ 38 39#ifndef _LIBUTIL_H_ 40#define _LIBUTIL_H_ 41 42#include <sys/cdefs.h> 43#include <sys/_types.h> 44#include <sys/_stdint.h> 45 46#ifndef _GID_T_DECLARED 47typedef __gid_t gid_t; 48#define _GID_T_DECLARED 49#endif 50 |
51#ifndef _MODE_T_DECLARED 52typedef __mode_t mode_t; 53#define _MODE_T_DECLARED 54#endif 55 |
|
51#ifndef _PID_T_DECLARED 52typedef __pid_t pid_t; 53#define _PID_T_DECLARED 54#endif 55 56#ifndef _SIZE_T_DECLARED 57typedef __size_t size_t; 58#define _SIZE_T_DECLARED 59#endif 60 61#ifndef _UID_T_DECLARED 62typedef __uid_t uid_t; 63#define _UID_T_DECLARED 64#endif 65 | 56#ifndef _PID_T_DECLARED 57typedef __pid_t pid_t; 58#define _PID_T_DECLARED 59#endif 60 61#ifndef _SIZE_T_DECLARED 62typedef __size_t size_t; 63#define _SIZE_T_DECLARED 64#endif 65 66#ifndef _UID_T_DECLARED 67typedef __uid_t uid_t; 68#define _UID_T_DECLARED 69#endif 70 |
66#define PROPERTY_MAX_NAME 64 67#define PROPERTY_MAX_VALUE 512 | 71#define PROPERTY_MAX_NAME 64 72#define PROPERTY_MAX_VALUE 512 |
68 | 73 |
69/* for properties.c */ | 74/* For properties.c. */ |
70typedef struct _property { 71 struct _property *next; | 75typedef struct _property { 76 struct _property *next; |
72 char *name; 73 char *value; | 77 char *name; 78 char *value; |
74} *properties; 75 | 79} *properties; 80 |
76#ifdef _SYS_PARAM_H_ 77/* for pidfile.c */ 78struct pidfh { 79 int pf_fd; 80 char pf_path[MAXPATHLEN + 1]; 81 __dev_t pf_dev; 82 ino_t pf_ino; 83}; 84#endif 85 86/* Avoid pulling in all the include files for no need */ | 81/* Avoid pulling in all the include files for no need. */ 82struct in_addr; 83struct pidfh; 84struct sockaddr; |
87struct termios; 88struct winsize; | 85struct termios; 86struct winsize; |
89struct in_addr; 90struct kinfo_file; 91struct kinfo_proc; 92struct kinfo_vmentry; | |
93 94__BEGIN_DECLS | 87 88__BEGIN_DECLS |
89char *auth_getval(const char *_name); |
|
95void clean_environment(const char * const *_white, 96 const char * const *_more_white); | 90void clean_environment(const char * const *_white, 91 const char * const *_more_white); |
92int expand_number(const char *_buf, uint64_t *_num); |
|
97int extattr_namespace_to_string(int _attrnamespace, char **_string); 98int extattr_string_to_namespace(const char *_string, int *_attrnamespace); 99int flopen(const char *_path, int _flags, ...); | 93int extattr_namespace_to_string(int _attrnamespace, char **_string); 94int extattr_string_to_namespace(const char *_string, int *_attrnamespace); 95int flopen(const char *_path, int _flags, ...); |
100void hexdump(const void *ptr, int length, const char *hdr, int flags); 101int login_tty(int _fd); 102void trimdomain(char *_fullhost, int _hostsize); 103int openpty(int *_amaster, int *_aslave, char *_name, 104 struct termios *_termp, struct winsize *_winp); | |
105int forkpty(int *_amaster, char *_name, | 96int forkpty(int *_amaster, char *_name, |
106 struct termios *_termp, struct winsize *_winp); | 97 struct termios *_termp, struct winsize *_winp); 98void hexdump(const void *_ptr, int _length, const char *_hdr, int _flags); |
107int humanize_number(char *_buf, size_t _len, int64_t _number, 108 const char *_suffix, int _scale, int _flags); | 99int humanize_number(char *_buf, size_t _len, int64_t _number, 100 const char *_suffix, int _scale, int _flags); |
109int expand_number(const char *_buf, uint64_t *_num); 110const char *uu_lockerr(int _uu_lockresult); 111int uu_lock(const char *_ttyname); 112int uu_unlock(const char *_ttyname); 113int uu_lock_txfr(const char *_ttyname, pid_t _pid); 114int _secure_path(const char *_path, uid_t _uid, gid_t _gid); 115properties properties_read(int fd); 116void properties_free(properties list); 117char *property_find(properties list, const char *name); 118char *auth_getval(const char *name); 119int realhostname(char *host, size_t hsize, const struct in_addr *ip); 120struct sockaddr; 121int realhostname_sa(char *host, size_t hsize, struct sockaddr *addr, 122 int addrlen); 123 124int kld_isloaded(const char *name); 125int kld_load(const char *name); | |
126struct kinfo_file * 127 kinfo_getfile(pid_t _pid, int *_cntp); 128struct kinfo_vmentry * 129 kinfo_getvmmap(pid_t _pid, int *_cntp); 130struct kinfo_proc * 131 kinfo_getallproc(int *_cntp); 132struct kinfo_proc * 133 kinfo_getproc(pid_t _pid); | 101struct kinfo_file * 102 kinfo_getfile(pid_t _pid, int *_cntp); 103struct kinfo_vmentry * 104 kinfo_getvmmap(pid_t _pid, int *_cntp); 105struct kinfo_proc * 106 kinfo_getallproc(int *_cntp); 107struct kinfo_proc * 108 kinfo_getproc(pid_t _pid); |
109int kld_isloaded(const char *_name); 110int kld_load(const char *_name); 111int login_tty(int _fd); 112int openpty(int *_amaster, int *_aslave, char *_name, 113 struct termios *_termp, struct winsize *_winp); 114int pidfile_close(struct pidfh *_pfh); 115int pidfile_fileno(const struct pidfh *_pfh); 116struct pidfh * 117 pidfile_open(const char *_path, mode_t _mode, pid_t *_pidptr); 118int pidfile_remove(struct pidfh *_pfh); 119int pidfile_write(struct pidfh *_pfh); 120void properties_free(properties _list); 121char *property_find(properties _list, const char *_name); 122properties 123 properties_read(int _fd); 124int realhostname(char *_host, size_t _hsize, const struct in_addr *_ip); 125int realhostname_sa(char *_host, size_t _hsize, struct sockaddr *_addr, 126 int _addrlen); 127int _secure_path(const char *_path, uid_t _uid, gid_t _gid); 128void trimdomain(char *_fullhost, int _hostsize); 129const char * 130 uu_lockerr(int _uu_lockresult); 131int uu_lock(const char *_ttyname); 132int uu_unlock(const char *_ttyname); 133int uu_lock_txfr(const char *_ttyname, pid_t _pid); |
|
134 | 134 |
135#ifdef _STDIO_H_ /* avoid adding new includes */ 136char *fparseln(FILE *, size_t *, size_t *, const char[3], int); | 135/* 136 * Conditionally prototype the following functions if the include 137 * files upon which they depend have been included. 138 */ 139#ifdef _STDIO_H_ 140char *fparseln(FILE *_fp, size_t *_len, size_t *_lineno, 141 const char _delim[3], int _flags); |
137#endif 138 139#ifdef _PWD_H_ | 142#endif 143 144#ifdef _PWD_H_ |
140int pw_copy(int _ffd, int _tfd, const struct passwd *_pw, struct passwd *_old_pw); 141struct passwd *pw_dup(const struct passwd *_pw); | 145int pw_copy(int _ffd, int _tfd, const struct passwd *_pw, 146 struct passwd *_old_pw); 147struct passwd 148 *pw_dup(const struct passwd *_pw); |
142int pw_edit(int _notsetuid); 143int pw_equal(const struct passwd *_pw1, const struct passwd *_pw2); 144void pw_fini(void); 145int pw_init(const char *_dir, const char *_master); 146char *pw_make(const struct passwd *_pw); 147int pw_mkdb(const char *_user); 148int pw_lock(void); | 149int pw_edit(int _notsetuid); 150int pw_equal(const struct passwd *_pw1, const struct passwd *_pw2); 151void pw_fini(void); 152int pw_init(const char *_dir, const char *_master); 153char *pw_make(const struct passwd *_pw); 154int pw_mkdb(const char *_user); 155int pw_lock(void); |
149struct passwd *pw_scan(const char *_line, int _flags); 150const char *pw_tempname(void); | 156struct passwd * 157 pw_scan(const char *_line, int _flags); 158const char * 159 pw_tempname(void); |
151int pw_tmp(int _mfd); 152#endif 153 154#ifdef _GRP_H_ | 160int pw_tmp(int _mfd); 161#endif 162 163#ifdef _GRP_H_ |
155int gr_equal(const struct group *gr1, const struct group *gr2); 156char *gr_make(const struct group *gr); 157struct group *gr_dup(const struct group *gr); 158struct group *gr_scan(const char *line); | 164struct group * 165 gr_dup(const struct group *_gr); 166int gr_equal(const struct group *_gr1, const struct group *_gr2); 167char *gr_make(const struct group *_gr); 168struct group * 169 gr_scan(const char *_line); |
159#endif 160 | 170#endif 171 |
161#ifdef _SYS_PARAM_H_ 162struct pidfh *pidfile_open(const char *path, mode_t mode, pid_t *pidptr); 163int pidfile_write(struct pidfh *pfh); 164int pidfile_close(struct pidfh *pfh); 165int pidfile_remove(struct pidfh *pfh); 166int pidfile_fileno(struct pidfh *pfh); 167#endif 168 | |
169#ifdef _UFS_UFS_QUOTA_H_ | 172#ifdef _UFS_UFS_QUOTA_H_ |
170struct quotafile; | |
171struct fstab; | 173struct fstab; |
172struct quotafile *quota_open(struct fstab *, int, int); 173void quota_close(struct quotafile *); 174int quota_on(struct quotafile *); 175int quota_off(struct quotafile *); 176const char *quota_fsname(const struct quotafile *); 177const char *quota_qfname(const struct quotafile *); 178int quota_maxid(struct quotafile *); 179int quota_check_path(const struct quotafile *, const char *path); 180int quota_read(struct quotafile *, struct dqblk *, int); 181int quota_write_limits(struct quotafile *, struct dqblk *, int); 182int quota_write_usage(struct quotafile *, struct dqblk *, int); 183int quota_convert(struct quotafile *, int); | 174struct quotafile; 175int quota_check_path(const struct quotafile *_qf, const char *_path); 176void quota_close(struct quotafile *_qf); 177int quota_convert(struct quotafile *_qf, int _wordsize); 178const char * 179 quota_fsname(const struct quotafile *_qf); 180int quota_maxid(struct quotafile *_qf); 181int quota_off(struct quotafile *_qf); 182int quota_on(struct quotafile *_qf); 183struct quotafile * 184 quota_open(struct fstab *_fs, int _quotatype, int _openflags); 185const char * 186 quota_qfname(const struct quotafile *_qf); 187int quota_read(struct quotafile *_qf, struct dqblk *_dqb, int _id); 188int quota_write_limits(struct quotafile *_qf, struct dqblk *_dqb, int _id); 189int quota_write_usage(struct quotafile *_qf, struct dqblk *_dqb, int _id); |
184#endif 185 186__END_DECLS 187 | 190#endif 191 192__END_DECLS 193 |
188#define UU_LOCK_INUSE (1) 189#define UU_LOCK_OK (0) 190#define UU_LOCK_OPEN_ERR (-1) 191#define UU_LOCK_READ_ERR (-2) 192#define UU_LOCK_CREAT_ERR (-3) 193#define UU_LOCK_WRITE_ERR (-4) 194#define UU_LOCK_LINK_ERR (-5) 195#define UU_LOCK_TRY_ERR (-6) 196#define UU_LOCK_OWNER_ERR (-7) 197 198/* return values from realhostname() */ 199#define HOSTNAME_FOUND (0) 200#define HOSTNAME_INCORRECTNAME (1) 201#define HOSTNAME_INVALIDADDR (2) 202#define HOSTNAME_INVALIDNAME (3) 203 | |
204/* fparseln(3) */ 205#define FPARSELN_UNESCESC 0x01 206#define FPARSELN_UNESCCONT 0x02 207#define FPARSELN_UNESCCOMM 0x04 208#define FPARSELN_UNESCREST 0x08 209#define FPARSELN_UNESCALL 0x0f 210 | 194/* fparseln(3) */ 195#define FPARSELN_UNESCESC 0x01 196#define FPARSELN_UNESCCONT 0x02 197#define FPARSELN_UNESCCOMM 0x04 198#define FPARSELN_UNESCREST 0x08 199#define FPARSELN_UNESCALL 0x0f 200 |
211/* pw_scan() */ 212#define PWSCAN_MASTER 0x01 213#define PWSCAN_WARN 0x02 214 215/* humanize_number(3) */ 216#define HN_DECIMAL 0x01 217#define HN_NOSPACE 0x02 218#define HN_B 0x04 219#define HN_DIVISOR_1000 0x08 220#define HN_IEC_PREFIXES 0x10 221 222/* maxscale = 0x07 */ 223#define HN_GETSCALE 0x10 224#define HN_AUTOSCALE 0x20 225 226/* hexdump(3) */ | 201/* Flags for hexdump(3). */ |
227#define HD_COLUMN_MASK 0xff 228#define HD_DELIM_MASK 0xff00 229#define HD_OMIT_COUNT (1 << 16) 230#define HD_OMIT_HEX (1 << 17) 231#define HD_OMIT_CHARS (1 << 18) 232 | 202#define HD_COLUMN_MASK 0xff 203#define HD_DELIM_MASK 0xff00 204#define HD_OMIT_COUNT (1 << 16) 205#define HD_OMIT_HEX (1 << 17) 206#define HD_OMIT_CHARS (1 << 18) 207 |
208/* Values for humanize_number(3)'s flags parameter. */ 209#define HN_DECIMAL 0x01 210#define HN_NOSPACE 0x02 211#define HN_B 0x04 212#define HN_DIVISOR_1000 0x08 213#define HN_IEC_PREFIXES 0x10 214 215/* Values for humanize_number(3)'s scale parameter. */ 216#define HN_GETSCALE 0x10 217#define HN_AUTOSCALE 0x20 218 219/* Return values from realhostname(). */ 220#define HOSTNAME_FOUND 0 221#define HOSTNAME_INCORRECTNAME 1 222#define HOSTNAME_INVALIDADDR 2 223#define HOSTNAME_INVALIDNAME 3 224 225/* Flags for pw_scan(). */ 226#define PWSCAN_MASTER 0x01 227#define PWSCAN_WARN 0x02 228 229/* Return values from uu_lock(). */ 230#define UU_LOCK_INUSE 1 231#define UU_LOCK_OK 0 232#define UU_LOCK_OPEN_ERR (-1) 233#define UU_LOCK_READ_ERR (-2) 234#define UU_LOCK_CREAT_ERR (-3) 235#define UU_LOCK_WRITE_ERR (-4) 236#define UU_LOCK_LINK_ERR (-5) 237#define UU_LOCK_TRY_ERR (-6) 238#define UU_LOCK_OWNER_ERR (-7) 239 |
|
233#endif /* !_LIBUTIL_H_ */ | 240#endif /* !_LIBUTIL_H_ */ |