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