22d381367c27910fe82f476a76b9f4ede555e35aLukas Slebodnik Jan Cholasta <jcholast@redhat.com>
22d381367c27910fe82f476a76b9f4ede555e35aLukas Slebodnik Copyright (C) 2012 Red Hat
22d381367c27910fe82f476a76b9f4ede555e35aLukas Slebodnik This program is free software; you can redistribute it and/or modify
22d381367c27910fe82f476a76b9f4ede555e35aLukas Slebodnik it under the terms of the GNU General Public License as published by
22d381367c27910fe82f476a76b9f4ede555e35aLukas Slebodnik the Free Software Foundation; either version 3 of the License, or
22d381367c27910fe82f476a76b9f4ede555e35aLukas Slebodnik (at your option) any later version.
22d381367c27910fe82f476a76b9f4ede555e35aLukas Slebodnik This program is distributed in the hope that it will be useful,
22d381367c27910fe82f476a76b9f4ede555e35aLukas Slebodnik but WITHOUT ANY WARRANTY; without even the implied warranty of
22d381367c27910fe82f476a76b9f4ede555e35aLukas Slebodnik MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22d381367c27910fe82f476a76b9f4ede555e35aLukas Slebodnik GNU General Public License for more details.
22d381367c27910fe82f476a76b9f4ede555e35aLukas Slebodnik You should have received a copy of the GNU General Public License
22d381367c27910fe82f476a76b9f4ede555e35aLukas Slebodnik along with this program. If not, see <http://www.gnu.org/licenses/>.
3a4186ae40d0c3b7be46a4c973166f6048fcfe38Lukas Slebodnik/* Performs a read or write operation in an manner that is seemingly atomic
22d381367c27910fe82f476a76b9f4ede555e35aLukas Slebodnik * to the caller.
3a4186ae40d0c3b7be46a4c973166f6048fcfe38Lukas Slebodnik * Please note that the function does not perform any asynchronous operation
3a4186ae40d0c3b7be46a4c973166f6048fcfe38Lukas Slebodnik * so the operation might potentially block
3a4186ae40d0c3b7be46a4c973166f6048fcfe38Lukas Slebodnikssize_t sss_atomic_io_s(int fd, void *buf, size_t n, bool do_read);
22d381367c27910fe82f476a76b9f4ede555e35aLukas Slebodnik#define sss_atomic_read_s(fd, buf, n) sss_atomic_io_s(fd, buf, n, true)
22d381367c27910fe82f476a76b9f4ede555e35aLukas Slebodnik#define sss_atomic_write_s(fd, buf, n) sss_atomic_io_s(fd, buf, n, false)
22d381367c27910fe82f476a76b9f4ede555e35aLukas Slebodnik#endif /* __SSSD_ATOMIC_IO_H__ */