try to use send(,,MSG_NOSIGNAL) instead of write() wherever possible (which
[profile/ivi/pulseaudio-panda.git] / src / pulsecore / core-util.h
1 #ifndef foocoreutilhfoo
2 #define foocoreutilhfoo
3
4 /* $Id$ */
5
6 /***
7   This file is part of PulseAudio.
8  
9   PulseAudio is free software; you can redistribute it and/or modify
10   it under the terms of the GNU Lesser General Public License as
11   published by the Free Software Foundation; either version 2.1 of the
12   License, or (at your option) any later version.
13  
14   PulseAudio is distributed in the hope that it will be useful, but
15   WITHOUT ANY WARRANTY; without even the implied warranty of
16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17   Lesser General Public License for more details.
18  
19   You should have received a copy of the GNU Lesser General Public
20   License along with PulseAudio; if not, write to the Free Software
21   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
22   USA.
23 ***/
24
25 #include <sys/types.h>
26 #include <inttypes.h>
27 #include <stdarg.h>
28 #include <stdio.h>
29
30 #include <pulsecore/gccmacro.h>
31
32 struct timeval;
33
34 void pa_make_nonblock_fd(int fd);
35
36 int pa_make_secure_dir(const char* dir);
37 int pa_make_secure_parent_dir(const char *fn);
38
39 ssize_t pa_read(int fd, void *buf, size_t count, int *type);
40 ssize_t pa_write(int fd, const void *buf, size_t count, int *type);
41 ssize_t pa_loop_read(int fd, void*data, size_t size, int *type);
42 ssize_t pa_loop_write(int fd, const void*data, size_t size, int *type);
43
44 void pa_check_signal_is_blocked(int sig);
45
46 char *pa_sprintf_malloc(const char *format, ...) PA_GCC_PRINTF_ATTR(1,2);
47 char *pa_vsprintf_malloc(const char *format, va_list ap);
48
49 char *pa_strlcpy(char *b, const char *s, size_t l);
50
51 char *pa_parent_dir(const char *fn);
52
53 void pa_raise_priority(void);
54 void pa_reset_priority(void);
55
56 int pa_fd_set_cloexec(int fd, int b);
57
58 int pa_parse_boolean(const char *s);
59
60 char *pa_split(const char *c, const char*delimiters, const char **state);
61 char *pa_split_spaces(const char *c, const char **state);
62
63 char *pa_strip_nl(char *s);
64
65 const char *pa_strsignal(int sig);
66
67 int pa_own_uid_in_group(const char *name, gid_t *gid);
68 int pa_uid_in_group(uid_t uid, const char *name);
69
70 int pa_lock_fd(int fd, int b);
71
72 int pa_lock_lockfile(const char *fn);
73 int pa_unlock_lockfile(const char *fn, int fd);
74
75 FILE *pa_open_config_file(const char *global, const char *local, const char *env, char **result, const char *mode);
76
77 char *pa_hexstr(const uint8_t* d, size_t dlength, char *s, size_t slength);
78 size_t pa_parsehex(const char *p, uint8_t *d, size_t dlength);
79
80 int pa_startswith(const char *s, const char *pfx);
81 int pa_endswith(const char *s, const char *sfx);
82
83 char *pa_runtime_path(const char *fn, char *s, size_t l);
84
85 int pa_atoi(const char *s, int32_t *ret_i);
86 int pa_atou(const char *s, uint32_t *ret_u);
87
88 #endif