GCC Code Coverage Report


Directory: ./
File: pdserv/src/lib/Pointer.h
Date: 2024-11-17 04:08:36
Exec Total Coverage
Lines: 6 6 100.0%
Branches: 0 0 -%

Line Branch Exec Source
1 /*****************************************************************************
2 *
3 * $Id$
4 *
5 * Copyright 2010 Richard Hacker (lerichi at gmx dot net)
6 *
7 * This file is part of the pdserv library.
8 *
9 * The pdserv library is free software: you can redistribute it and/or modify
10 * it under the terms of the GNU Lesser General Public License as published
11 * by the Free Software Foundation, either version 3 of the License, or (at
12 * your option) any later version.
13 *
14 * The pdserv library is distributed in the hope that it will be useful, but
15 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
17 * License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public License
20 * along with the pdserv library. If not, see <http://www.gnu.org/licenses/>.
21 *
22 *****************************************************************************/
23
24 #ifndef LIB_POINTER_H
25 #define LIB_POINTER_H
26
27 /////////////////////////////////////////////////////////////////////////////
28 template<class T>
29 6561 inline T* ptr_align(void *p)
30 {
31 6561 const unsigned long mask = sizeof(void*) - 1;
32 6561 return reinterpret_cast<T*>(((unsigned long)p + mask) & ~mask);
33 }
34
35 /////////////////////////////////////////////////////////////////////////////
36 310 inline size_t ptr_align(size_t len)
37 {
38 310 const size_t mask = sizeof(void*) - 1;
39 310 return (len + mask) & ~mask;
40 }
41
42 #endif // LIB_POINTER_H
43