]> git.cameronkatri.com Git - pw-darwin.git/blobdiff - libutil/libutil.h
Add a family of functions for reliable pidfiles handling.
[pw-darwin.git] / libutil / libutil.h
index fbc68c07fb6ee46e2685ea333760cb442717c46b..961fa1b984770fb2fdfeac77cf221cf050f3da82 100644 (file)
@@ -49,6 +49,16 @@ typedef struct _property {
        char *value;
 } *properties;
 
+#ifdef _SYS_PARAM_H_
+/* for pidfile.c */
+struct pidfh {
+       int     pf_fd;
+       char    pf_path[MAXPATHLEN + 1];
+       __dev_t pf_dev;
+       ino_t   pf_ino;
+};
+#endif
+
 /* Avoid pulling in all the include files for no need */
 struct termios;
 struct winsize;
@@ -69,6 +79,8 @@ int   openpty(int *_amaster, int *_aslave, char *_name,
                     struct termios *_termp, struct winsize *_winp);
 int    forkpty(int *_amaster, char *_name,
                     struct termios *_termp, struct winsize *_winp);
+int    humanize_number(char *_buf, size_t _len, int64_t _number,
+           const char *_suffix, int _scale, int _flags);
 const char *uu_lockerr(int _uu_lockresult);
 int    uu_lock(const char *_ttyname);
 int    uu_unlock(const char *_ttyname);
@@ -100,6 +112,13 @@ struct passwd *pw_scan(const char *_line, int _flags);
 const char *pw_tempname(void);
 int    pw_tmp(int _mfd);
 #endif
+
+#ifdef _SYS_PARAM_H_
+struct pidfh *pidfile_open(const char *path, mode_t mode, pid_t *pidptr);
+int pidfile_write(struct pidfh *pfh);
+int pidfile_close(struct pidfh *pfh);
+int pidfile_remove(struct pidfh *pfh);
+#endif
 __END_DECLS
 
 #define UU_LOCK_INUSE (1)
@@ -129,4 +148,13 @@ __END_DECLS
 #define PWSCAN_MASTER          0x01
 #define PWSCAN_WARN            0x02
 
+/* humanize_number(3) */
+#define HN_DECIMAL             0x01
+#define HN_NOSPACE             0x02
+#define HN_B                   0x04
+#define HN_DIVISOR_1000                0x08
+
+#define HN_GETSCALE            0x10
+#define HN_AUTOSCALE           0x20
+
 #endif /* !_LIBUTIL_H_ */