Project

General

Profile

Statistics
| Revision:

root / lab4 / .minix-src / include / util.h @ 14

History | View | Annotate | Download (5.87 KB)

1
/*        $NetBSD: util.h,v 1.68 2015/09/24 14:39:37 christos Exp $        */
2

    
3
/*-
4
 * Copyright (c) 1995
5
 *        The Regents of the University of California.  All rights reserved.
6
 *
7
 * Redistribution and use in source and binary forms, with or without
8
 * modification, are permitted provided that the following conditions
9
 * are met:
10
 * 1. Redistributions of source code must retain the above copyright
11
 *    notice, this list of conditions and the following disclaimer.
12
 * 2. Redistributions in binary form must reproduce the above copyright
13
 *    notice, this list of conditions and the following disclaimer in the
14
 *    documentation and/or other materials provided with the distribution.
15
 * 3. Neither the name of the University nor the names of its contributors
16
 *    may be used to endorse or promote products derived from this software
17
 *    without specific prior written permission.
18
 *
19
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29
 * SUCH DAMAGE.
30
 */
31

    
32
#ifndef _UTIL_H_
33
#define        _UTIL_H_
34

    
35
#include <sys/cdefs.h>
36
#include <sys/types.h>
37
#include <sys/ansi.h>
38
#include <sys/inttypes.h>
39

    
40
#ifdef  _BSD_TIME_T_
41
typedef _BSD_TIME_T_    time_t;
42
#undef  _BSD_TIME_T_
43
#endif
44
#ifdef  _BSD_SIZE_T_
45
typedef _BSD_SIZE_T_    size_t;
46
#undef  _BSD_SIZE_T_
47
#endif
48
 
49
#if defined(_POSIX_C_SOURCE)
50
#ifndef __VA_LIST_DECLARED
51
typedef __va_list va_list;
52
#define __VA_LIST_DECLARED
53
#endif
54
#endif
55

    
56
#define        PIDLOCK_NONBLOCK        1
57
#define        PIDLOCK_USEHOSTNAME        2
58

    
59
#define        PW_POLICY_BYSTRING        0
60
#define        PW_POLICY_BYPASSWD        1
61
#define        PW_POLICY_BYGROUP        2
62

    
63
__BEGIN_DECLS
64
struct disklabel;
65
struct iovec;
66
struct passwd;
67
struct termios;
68
struct utmp;
69
struct utmpx;
70
struct winsize;
71
struct sockaddr;
72

    
73
char               *flags_to_string(unsigned long, const char *);
74
pid_t                forkpty(int *, char *, struct termios *, struct winsize *);
75
const char     *getbootfile(void);
76
int                getbyteorder(void);
77
off_t                getlabeloffset(void);
78
int                getlabelsector(void);
79
int                getlabelusesmbr(void);
80
int                getmaxpartitions(void);
81
int                getrawpartition(void);
82
const char     *getdiskrawname(char *, size_t, const char *);
83
const char     *getdiskcookedname(char *, size_t, const char *);
84
const char     *getfstypename(int);
85
const char     *getfsspecname(char *, size_t, const char *);
86
struct kinfo_vmentry *kinfo_getvmmap(pid_t, size_t *);
87
#ifndef __LIBC12_SOURCE__
88
void                login(const struct utmp *) __RENAME(__login50);
89
void                loginx(const struct utmpx *) __RENAME(__loginx50);
90
#endif
91
int                login_tty(int);
92
int                logout(const char *);
93
int                logoutx(const char *, int, int);
94
void                logwtmp(const char *, const char *, const char *);
95
void                logwtmpx(const char *, const char *, const char *, int, int);
96
int                opendisk(const char *, int, char *, size_t, int);
97
int                opendisk1(const char *, int, char *, size_t, int,
98
                          int (*)(const char *, int, ...));
99
int                openpty(int *, int *, char *, struct termios *,
100
    struct winsize *);
101
#ifndef __LIBC12_SOURCE__
102
time_t                parsedate(const char *, const time_t *, const int *)
103
    __RENAME(__parsedate50);
104
#endif
105
int                pidfile(const char *);
106
int                pidlock(const char *, int, pid_t *, const char *);
107
int                pw_abort(void);
108
#ifndef __LIBC12_SOURCE__
109
void                pw_copy(int, int, struct passwd *, struct passwd *)
110
    __RENAME(__pw_copy50);
111
int                pw_copyx(int, int, struct passwd *, struct passwd *,
112
    char *, size_t) __RENAME(__pw_copyx50);
113
#endif
114
void                pw_edit(int, const char *);
115
__dead void        pw_error(const char *, int, int);
116
void                pw_getconf(char *, size_t, const char *, const char *);
117
#ifndef __LIBC12_SOURCE__
118
void                pw_getpwconf(char *, size_t, const struct passwd *,
119
    const char *) __RENAME(__pw_getpwconf50);
120
#endif
121
const char     *pw_getprefix(void);
122
void                pw_init(void);
123
int                pw_lock(int);
124
int                pw_mkdb(const char *, int);
125
void                pw_prompt(void);
126
int                pw_setprefix(const char *);
127
int                raise_default_signal(int);
128
int                secure_path(const char *);
129
int                snprintb_m(char *, size_t, const char *, uint64_t, size_t);
130
int                snprintb(char *, size_t, const char *, uint64_t);
131
int                sockaddr_snprintf(char *, size_t, const char *,
132
    const struct sockaddr *);
133
char                *strpct(char *, size_t, uintmax_t, uintmax_t, size_t);
134
char                *strspct(char *, size_t, intmax_t, intmax_t, size_t);
135
int                string_to_flags(char **, unsigned long *, unsigned long *);
136
int                ttyaction(const char *, const char *, const char *);
137
int                ttylock(const char *, int, pid_t *);
138
char               *ttymsg(struct iovec *, int, const char *, int);
139
int                ttyunlock(const char *);
140

    
141
uint16_t        disklabel_dkcksum(struct disklabel *);
142
int                disklabel_scan(struct disklabel *, char *, size_t);
143

    
144
/* Error checked functions */
145
void                (*esetfunc(void (*)(int, const char *, ...)))
146
    (int, const char *, ...);
147
size_t                 estrlcpy(char *, const char *, size_t);
148
size_t                 estrlcat(char *, const char *, size_t);
149
char                 *estrdup(const char *);
150
char                 *estrndup(const char *, size_t);
151
intmax_t        estrtoi(const char *, int, intmax_t, intmax_t);
152
uintmax_t        estrtou(const char *, int, uintmax_t, uintmax_t);
153
void                 *ecalloc(size_t, size_t);
154
void                 *emalloc(size_t);
155
void                 *erealloc(void *, size_t);
156
void                 ereallocarr(void *, size_t, size_t);
157
struct __sFILE        *efopen(const char *, const char *);
158
int                 easprintf(char ** __restrict, const char * __restrict, ...)
159
                        __printflike(2, 3);
160
int                evasprintf(char ** __restrict, const char * __restrict,
161
    __va_list) __printflike(2, 0);
162
__END_DECLS
163

    
164
#endif /* !_UTIL_H_ */