| Commit | Line | Data |
|---|---|---|
| 984263bc MD |
1 | /* |
| 2 | * Copyright (c) 1996 Peter Wemm <peter@FreeBSD.org>. | |
| 3 | * All rights reserved. | |
| f7e3064f PA |
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 | |
| 9 | * Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035 | |
| 10 | * ("CBOSS"), as part of the DARPA CHATS research program. | |
| 984263bc MD |
11 | * |
| 12 | * Redistribution and use in source and binary forms, with or without | |
| 13 | * modification, is permitted provided that the following conditions | |
| 14 | * are met: | |
| 15 | * 1. Redistributions of source code must retain the above copyright | |
| 16 | * notice, this list of conditions and the following disclaimer. | |
| 17 | * 2. Redistributions in binary form must reproduce the above copyright | |
| 18 | * notice, this list of conditions and the following disclaimer in the | |
| 19 | * documentation and/or other materials provided with the distribution. | |
| f7e3064f PA |
20 | * 3. The name of the author may not be used to endorse or promote |
| 21 | * products derived from this software without specific prior written | |
| 22 | * permission. | |
| 984263bc MD |
23 | * |
| 24 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |
| 25 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
| 26 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
| 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |
| 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: src/lib/libutil/libutil.h,v 1.26.2.3 2000/11/22 03:49:49 murray Exp $ | |
| 37 | */ | |
| 38 | ||
| 39 | #ifndef _LIBUTIL_H_ | |
| 40 | #define _LIBUTIL_H_ | |
| 41 | ||
| ee8287f8 JS |
42 | #ifdef _PWD_H_ |
| 43 | #define _PWSCAN_MASTER 0x01 | |
| 44 | #define _PWSCAN_WARN 0x02 | |
| 45 | #endif | |
| 46 | ||
| 984263bc MD |
47 | #define PROPERTY_MAX_NAME 64 |
| 48 | #define PROPERTY_MAX_VALUE 512 | |
| 49 | ||
| 50 | /* for properties.c */ | |
| 51 | typedef struct _property { | |
| 52 | struct _property *next; | |
| 53 | char *name; | |
| 54 | char *value; | |
| 55 | } *properties; | |
| 56 | ||
| 57 | /* Avoid pulling in all the include files for no need */ | |
| 58 | struct termios; | |
| 59 | struct winsize; | |
| 60 | struct utmp; | |
| 59a92d18 | 61 | struct utmpx; |
| 984263bc | 62 | struct in_addr; |
| c10563f0 | 63 | struct sockaddr; |
| 984263bc MD |
64 | |
| 65 | __BEGIN_DECLS | |
| 3997c939 | 66 | int flopen(const char *, int, ...); |
| c10563f0 | 67 | void login(struct utmp *); |
| 59a92d18 | 68 | void loginx(const struct utmpx *); |
| c10563f0 CP |
69 | int login_tty(int); |
| 70 | int logout(const char *); | |
| 59a92d18 | 71 | int logoutx(const char *, int, int); |
| c10563f0 | 72 | void logwtmp(const char *, const char *, const char *); |
| 59a92d18 | 73 | void logwtmpx(const char *, const char *, const char *, int, int); |
| c10563f0 CP |
74 | void trimdomain(char *, int); |
| 75 | int openpty(int *, int *, char *, struct termios *, struct winsize *); | |
| 76 | int forkpty(int *, char *, struct termios *, struct winsize *); | |
| 748eeed1 | 77 | int dehumanize_number(const char *, int64_t *); |
| c10563f0 | 78 | int humanize_number(char *, size_t, int64_t, const char *, int, int); |
| 12aea7ca MD |
79 | int humanize_unsigned(char *buf, size_t len, uint64_t bytes, |
| 80 | const char *suffix, int divisor); | |
| 81 | int format_bytes(char *buf, size_t len, uint64_t bytes); | |
| c10563f0 CP |
82 | const char *uu_lockerr(int); |
| 83 | int uu_lock(const char *); | |
| 84 | int uu_unlock(const char *); | |
| 85 | int uu_lock_txfr(const char *, pid_t); | |
| 86 | int _secure_path(const char *, uid_t, gid_t); | |
| b73d5b1a | 87 | int pidfile(const char *); |
| c10563f0 CP |
88 | properties properties_read(int fd); |
| 89 | void properties_free(properties); | |
| 90 | char *property_find(properties, const char *); | |
| 91 | char *auth_getval(const char *); | |
| 92 | int realhostname(char *, size_t, const struct in_addr *); | |
| 93 | int realhostname_sa(char *, size_t, struct sockaddr *, int); | |
| 984263bc | 94 | #ifdef _STDIO_H_ /* avoid adding new includes */ |
| c10563f0 | 95 | char *fparseln(FILE *, size_t *, size_t *, const char[3], int); |
| 984263bc | 96 | #endif |
| ee8287f8 JS |
97 | |
| 98 | #ifdef _PWD_H_ | |
| ee8287f8 JS |
99 | int pw_copy(int _ffd, int _tfd, const struct passwd *_pw, struct passwd *_old_pw); |
| 100 | struct passwd *pw_dup(const struct passwd *_pw); | |
| 101 | int pw_edit(int _notsetuid); | |
| 102 | int pw_equal(const struct passwd *_pw1, const struct passwd *_pw2); | |
| 103 | void pw_fini(void); | |
| 104 | int pw_init(const char *_dir, const char *_master); | |
| 105 | char *pw_make(const struct passwd *_pw); | |
| 106 | int pw_mkdb(const char *_user); | |
| 107 | int pw_lock(void); | |
| 108 | struct passwd *pw_scan(const char *_line, int _flags); | |
| 109 | const char *pw_tempname(void); | |
| 110 | int pw_tmp(int _mfd); | |
| 111 | #endif | |
| ba2075d1 VS |
112 | |
| 113 | /* Error checked functions */ | |
| 114 | void (*esetfunc(void (*)(int, const char *, ...))) | |
| 115 | (int, const char *, ...); | |
| 116 | size_t estrlcpy(char *, const char *, size_t); | |
| 117 | size_t estrlcat(char *, const char *, size_t); | |
| 118 | char *estrdup(const char *); | |
| 119 | char *estrndup(const char *, size_t); | |
| 120 | void *ecalloc(size_t, size_t); | |
| 121 | void *emalloc(size_t); | |
| 122 | void *erealloc(void *, size_t); | |
| 123 | int easprintf(char ** __restrict, const char * __restrict, ...) | |
| 124 | __printflike(2, 3); | |
| 984263bc MD |
125 | __END_DECLS |
| 126 | ||
| 127 | #define UU_LOCK_INUSE (1) | |
| 128 | #define UU_LOCK_OK (0) | |
| 129 | #define UU_LOCK_OPEN_ERR (-1) | |
| 130 | #define UU_LOCK_READ_ERR (-2) | |
| 131 | #define UU_LOCK_CREAT_ERR (-3) | |
| 132 | #define UU_LOCK_WRITE_ERR (-4) | |
| 133 | #define UU_LOCK_LINK_ERR (-5) | |
| 134 | #define UU_LOCK_TRY_ERR (-6) | |
| 135 | #define UU_LOCK_OWNER_ERR (-7) | |
| 136 | ||
| 137 | /* return values from realhostname() */ | |
| 138 | #define HOSTNAME_FOUND (0) | |
| 139 | #define HOSTNAME_INCORRECTNAME (1) | |
| 140 | #define HOSTNAME_INVALIDADDR (2) | |
| 141 | #define HOSTNAME_INVALIDNAME (3) | |
| 142 | ||
| 143 | /* fparseln(3) */ | |
| 144 | #define FPARSELN_UNESCESC 0x01 | |
| 145 | #define FPARSELN_UNESCCONT 0x02 | |
| 146 | #define FPARSELN_UNESCCOMM 0x04 | |
| 147 | #define FPARSELN_UNESCREST 0x08 | |
| 148 | #define FPARSELN_UNESCALL 0x0f | |
| 149 | ||
| feed9a49 PA |
150 | /* pw_scan() */ |
| 151 | #define PWSCAN_MASTER 0x01 | |
| 152 | #define PWSCAN_WARN 0x02 | |
| 153 | ||
| f41183ad MD |
154 | /* humanize_number(3) */ |
| 155 | #define HN_DECIMAL 0x01 | |
| 156 | #define HN_NOSPACE 0x02 | |
| 157 | #define HN_B 0x04 | |
| 158 | #define HN_DIVISOR_1000 0x08 | |
| 159 | #define HN_GETSCALE 0x10 | |
| 160 | #define HN_AUTOSCALE 0x20 | |
| 161 | ||
| 984263bc | 162 | #endif /* !_LIBUTIL_H_ */ |