1de503941SPawel Jakub Dawidek /*- 2de503941SPawel Jakub Dawidek * Copyright (c) 2012 The FreeBSD Foundation 3de503941SPawel Jakub Dawidek * All rights reserved. 4de503941SPawel Jakub Dawidek * 5de503941SPawel Jakub Dawidek * This software was developed by Pawel Jakub Dawidek under sponsorship from 6de503941SPawel Jakub Dawidek * the FreeBSD Foundation. 7de503941SPawel Jakub Dawidek * 8de503941SPawel Jakub Dawidek * Redistribution and use in source and binary forms, with or without 9de503941SPawel Jakub Dawidek * modification, are permitted provided that the following conditions 10de503941SPawel Jakub Dawidek * are met: 11de503941SPawel Jakub Dawidek * 1. Redistributions of source code must retain the above copyright 12de503941SPawel Jakub Dawidek * notice, this list of conditions and the following disclaimer. 13de503941SPawel Jakub Dawidek * 2. Redistributions in binary form must reproduce the above copyright 14de503941SPawel Jakub Dawidek * notice, this list of conditions and the following disclaimer in the 15de503941SPawel Jakub Dawidek * documentation and/or other materials provided with the distribution. 16de503941SPawel Jakub Dawidek * 17de503941SPawel Jakub Dawidek * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND 18de503941SPawel Jakub Dawidek * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19de503941SPawel Jakub Dawidek * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20de503941SPawel Jakub Dawidek * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE 21de503941SPawel Jakub Dawidek * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22de503941SPawel Jakub Dawidek * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23de503941SPawel Jakub Dawidek * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24de503941SPawel Jakub Dawidek * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25de503941SPawel Jakub Dawidek * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26de503941SPawel Jakub Dawidek * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27de503941SPawel Jakub Dawidek * SUCH DAMAGE. 28de503941SPawel Jakub Dawidek */ 29de503941SPawel Jakub Dawidek 30de503941SPawel Jakub Dawidek #ifndef _MISC_H_ 31de503941SPawel Jakub Dawidek #define _MISC_H_ 32de503941SPawel Jakub Dawidek 33de503941SPawel Jakub Dawidek #define OK() do { \ 34de503941SPawel Jakub Dawidek int _serrno = errno; \ 35de503941SPawel Jakub Dawidek printf("ok # line %u\n", __LINE__); \ 36de503941SPawel Jakub Dawidek fflush(stdout); \ 37de503941SPawel Jakub Dawidek errno = _serrno; \ 38de503941SPawel Jakub Dawidek } while (0) 39de503941SPawel Jakub Dawidek #define NOK() do { \ 40de503941SPawel Jakub Dawidek int _serrno = errno; \ 41de503941SPawel Jakub Dawidek printf("not ok # line %u\n", __LINE__); \ 42de503941SPawel Jakub Dawidek fflush(stdout); \ 43de503941SPawel Jakub Dawidek errno = _serrno; \ 44de503941SPawel Jakub Dawidek } while (0) 45de503941SPawel Jakub Dawidek #define CHECK(cond) do { \ 46de503941SPawel Jakub Dawidek if ((cond)) \ 47de503941SPawel Jakub Dawidek OK(); \ 48de503941SPawel Jakub Dawidek else \ 49de503941SPawel Jakub Dawidek NOK(); \ 50de503941SPawel Jakub Dawidek } while (0) 51de503941SPawel Jakub Dawidek 52de503941SPawel Jakub Dawidek /* 53de503941SPawel Jakub Dawidek * This can be removed once pdwait4(2) is implemented. 54de503941SPawel Jakub Dawidek */ 55de503941SPawel Jakub Dawidek int pdwait(int pfd); 56de503941SPawel Jakub Dawidek 57de503941SPawel Jakub Dawidek int descriptor_send(int sock, int fd); 58de503941SPawel Jakub Dawidek int descriptor_recv(int sock, int *fdp); 59de503941SPawel Jakub Dawidek 60de503941SPawel Jakub Dawidek #endif /* !_MISC_H_ */ 61