xref: /haiku/headers/posix/shadow.h (revision 25a7b01d15612846f332751841da3579db313082)
1 /*
2  * Copyright 2008-2012 Haiku, Inc. All Rights Reserved.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef _SHADOW_H_
6 #define _SHADOW_H_
7 
8 
9 #include <stddef.h>
10 #include <stdio.h>
11 
12 struct spwd {
13 	char*	sp_namp;	/* login name */
14 	char*	sp_pwdp;	/* encrypted password */
15 	int		sp_lstchg;	/* date of last change (days since 1970) */
16 	int		sp_min;		/* min days between password changes */
17 	int		sp_max;		/* max days between password changes */
18 	int		sp_warn;	/* days to warn before password expired */
19 	int		sp_inact;	/* days of inactivity until account expiration */
20 	int		sp_expire;	/* date when the account expires (days since 1970) */
21 	int		sp_flag;	/* unused */
22 };
23 
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 
30 extern struct spwd*	getspent(void);
31 extern int getspent_r(struct spwd* spwd, char* buffer, size_t bufferSize,
32 				struct spwd** _result);
33 extern void	setspent(void);
34 extern void	endspent(void);
35 
36 extern struct spwd*	getspnam(const char* name);
37 extern int getspnam_r(const char* name, struct spwd* spwd, char* buffer,
38 				size_t bufferSize, struct spwd** _result);
39 
40 extern struct spwd* sgetspent(const char* line);
41 extern int sgetspent_r(const char* line, struct spwd *spwd, char *buffer,
42 				size_t bufferSize, struct spwd** _result);
43 
44 extern struct spwd* fgetspent(FILE* file);
45 extern int fgetspent_r(FILE* file, struct spwd* spwd, char* buffer,
46 				size_t bufferSize, struct spwd** _result);
47 
48 
49 #ifdef __cplusplus
50 }
51 #endif
52 
53 
54 #endif	/* _SHADOW_H_ */
55