/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
#ifndef OS_BSD_VM_OS_BSD_INLINE_HPP
#define OS_BSD_VM_OS_BSD_INLINE_HPP
#include "runtime/atomic.hpp"
#ifdef TARGET_OS_ARCH_bsd_x86
# include "atomic_bsd_x86.inline.hpp"
# include "orderAccess_bsd_x86.inline.hpp"
#endif
#ifdef TARGET_OS_ARCH_bsd_zero
# include "atomic_bsd_zero.inline.hpp"
# include "orderAccess_bsd_zero.inline.hpp"
#endif
// System includes
#include <unistd.h>
#include <netdb.h>
}
return "/";
}
return "\n";
}
return ":";
}
return "%lld";
}
return "%llu";
}
// File names are case-sensitive on windows only
}
return false;
}
return true;
}
// Since FreeBSD 4 uses malloc() for allocating the thread stack
// there is no need to do anything extra to allocate the guard pages
return false;
#else
// FreeBSD 5+ uses mmap MAP_STACK for allocating the thread stacks.
// Must 'allocate' them or guard pages are ignored.
return true;
#endif
}
// On Bsd, reservations are made on a page by page basis, nothing to do.
}
// Bang the shadow pages if they need to be touched to be mapped.
}
}
{
}
{
}
}
}
return path;
}
}
{
dirent* p;
int status;
// NOTE: Bsd readdir_r (on RH 6.2 and 7.2 at least) is NOT like the POSIX
// version. Here is the doc for this function:
return NULL;
} else
return p;
}
}
// macros for restartable system calls
int _result; \
return _result; \
} while(false)
return res;
}
return res;
}
}
}
}
}
}
}
struct timeval t;
gettimeofday(&t, NULL);
for(;;) {
// On Bsd any value < 0 means "forever"
if(timeout >= 0) {
gettimeofday(&t, NULL);
if(timeout <= 0)
return OS_OK;
}
} else
return res;
}
}
}
}
// At least OpenBSD and FreeBSD can return EINTR from accept.
}
}
}
}
}
}
}
return ::gethostbyname(name);
}
}
}
#endif // OS_BSD_VM_OS_BSD_INLINE_HPP