src/os/windows/vm/hpi_windows.hpp

Thu, 02 Oct 2008 12:01:08 -0700

author
jmasa
date
Thu, 02 Oct 2008 12:01:08 -0700
changeset 824
ee21eaa8ffe1
parent 657
2a1a77d3458f
child 1907
c18cbe5936b8
permissions
-rw-r--r--

6660681: Incrementally reserve pages on win server 2003 for better large page affinity
Summary: For windows server 2003 added option to reserve large pages individually.
Reviewed-by: alanb, jcoomes, tonyp, apetrusenko

duke@435 1 /*
duke@435 2 * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
duke@435 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
duke@435 4 *
duke@435 5 * This code is free software; you can redistribute it and/or modify it
duke@435 6 * under the terms of the GNU General Public License version 2 only, as
duke@435 7 * published by the Free Software Foundation.
duke@435 8 *
duke@435 9 * This code is distributed in the hope that it will be useful, but WITHOUT
duke@435 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
duke@435 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
duke@435 12 * version 2 for more details (a copy is included in the LICENSE file that
duke@435 13 * accompanied this code).
duke@435 14 *
duke@435 15 * You should have received a copy of the GNU General Public License version
duke@435 16 * 2 along with this work; if not, write to the Free Software Foundation,
duke@435 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
duke@435 18 *
duke@435 19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
duke@435 20 * CA 95054 USA or visit www.sun.com if you need additional information or
duke@435 21 * have any questions.
duke@435 22 *
duke@435 23 */
duke@435 24
duke@435 25 // Win32 delegates these to the HPI. Solaris provides its own
duke@435 26 // implementation without using the HPI (for Interrupitble I/O).
duke@435 27
duke@435 28 // HPI_FileInterface
duke@435 29
duke@435 30 HPIDECL(close, "close", _file, Close, int, "%d",
duke@435 31 (int fd),
duke@435 32 ("fd = %d", fd),
duke@435 33 (fd));
duke@435 34
duke@435 35 HPIDECL(read, "read", _file, Read, size_t, "%ld",
duke@435 36 (int fd, void *buf, unsigned int nBytes),
duke@435 37 ("fd = %d, buf = %p, nBytes = %u", fd, buf, nBytes),
duke@435 38 (fd, buf, nBytes));
duke@435 39
duke@435 40 HPIDECL(write, "write", _file, Write, size_t, "%ld",
duke@435 41 (int fd, const void *buf, unsigned int nBytes),
duke@435 42 ("fd = %d, buf = %p, nBytes = %u", fd, buf, nBytes),
duke@435 43 (fd, buf, nBytes));
duke@435 44
duke@435 45
duke@435 46 // HPI_SocketInterface
duke@435 47
duke@435 48 HPIDECL(socket_close, "socket_close", _socket, Close, int, "%d",
duke@435 49 (int fd),
duke@435 50 ("fd = %d", fd),
duke@435 51 (fd));
duke@435 52
duke@435 53 HPIDECL(socket_available, "socket_available", _socket, Available,
duke@435 54 int, "%d",
duke@435 55 (int fd, jint *pbytes),
duke@435 56 ("fd = %d, pbytes = %p", fd, pbytes),
duke@435 57 (fd, pbytes));
duke@435 58
duke@435 59 HPIDECL(socket, "socket", _socket, Socket, int, "%d",
duke@435 60 (int domain, int type, int protocol),
duke@435 61 ("domain = %d, type = %d, protocol = %d", domain, type, protocol),
duke@435 62 (domain, type, protocol));
duke@435 63
duke@435 64 HPIDECL(listen, "listen", _socket, Listen, int, "%d",
duke@435 65 (int fd, int count),
duke@435 66 ("fd = %d, count = %d", fd, count),
duke@435 67 (fd, count));
duke@435 68
duke@435 69 HPIDECL(connect, "connect", _socket, Connect, int, "%d",
duke@435 70 (int fd, struct sockaddr *him, int len),
duke@435 71 ("fd = %d, him = %p, len = %d", fd, him, len),
duke@435 72 (fd, him, len));
duke@435 73
duke@435 74 HPIDECL(accept, "accept", _socket, Accept, int, "%d",
duke@435 75 (int fd, struct sockaddr *him, int *len),
duke@435 76 ("fd = %d, him = %p, len = %p", fd, him, len),
duke@435 77 (fd, him, len));
duke@435 78
duke@435 79 HPIDECL(sendto, "sendto", _socket, SendTo, int, "%d",
duke@435 80 (int fd, char *buf, int len, int flags,
duke@435 81 struct sockaddr *to, int tolen),
duke@435 82 ("fd = %d, buf = %p, len = %d, flags = %d, to = %p, tolen = %d",
duke@435 83 fd, buf, len, flags, to, tolen),
duke@435 84 (fd, buf, len, flags, to, tolen));
duke@435 85
duke@435 86 HPIDECL(recvfrom, "recvfrom", _socket, RecvFrom, int, "%d",
duke@435 87 (int fd, char *buf, int nbytes, int flags,
duke@435 88 struct sockaddr *from, int *fromlen),
duke@435 89 ("fd = %d, buf = %p, len = %d, flags = %d, frm = %p, frmlen = %d",
duke@435 90 fd, buf, nbytes, flags, from, fromlen),
duke@435 91 (fd, buf, nbytes, flags, from, fromlen));
duke@435 92
duke@435 93 HPIDECL(recv, "recv", _socket, Recv, int, "%d",
duke@435 94 (int fd, char *buf, int nBytes, int flags),
duke@435 95 ("fd = %d, buf = %p, nBytes = %d, flags = %d",
duke@435 96 fd, buf, nBytes, flags),
duke@435 97 (fd, buf, nBytes, flags));
duke@435 98
duke@435 99 HPIDECL(send, "send", _socket, Send, int, "%d",
duke@435 100 (int fd, char *buf, int nBytes, int flags),
duke@435 101 ("fd = %d, buf = %p, nBytes = %d, flags = %d",
duke@435 102 fd, buf, nBytes, flags),
duke@435 103 (fd, buf, nBytes, flags));
duke@435 104
never@657 105 inline int hpi::raw_send(int fd, char *buf, int nBytes, int flags) {
never@657 106 return send(fd, buf, nBytes, flags);
never@657 107 }
never@657 108
duke@435 109 HPIDECL(timeout, "timeout", _socket, Timeout, int, "%d",
duke@435 110 (int fd, long timeout),
duke@435 111 ("fd = %d, timeout = %ld", fd, timeout),
duke@435 112 (fd, timeout));
duke@435 113
duke@435 114 HPIDECL(get_host_by_name, "get_host_by_name", _socket, GetHostByName,
duke@435 115 struct hostent *, "(struct hostent *)%p",
duke@435 116 (char *name),
duke@435 117 ("%s", name),
duke@435 118 (name));
duke@435 119
duke@435 120 HPIDECL(socket_shutdown, "socket_shutdown", _socket, SocketShutdown,
duke@435 121 int, "%d",
duke@435 122 (int fd, int howto),
duke@435 123 ("fd = %d, howto = %d", fd, howto),
duke@435 124 (fd, howto));
duke@435 125
duke@435 126 HPIDECL(bind, "bind", _socket, Bind,
duke@435 127 int, "%d",
duke@435 128 (int fd, struct sockaddr *him, int len),
duke@435 129 ("fd = %d, him = %p, len = %d",
duke@435 130 fd, him, len),
duke@435 131 (fd, him, len));
duke@435 132
duke@435 133 HPIDECL(get_sock_name, "get_sock_name", _socket, GetSocketName,
duke@435 134 int, "%d",
duke@435 135 (int fd, struct sockaddr *him, int *len),
duke@435 136 ("fd = %d, him = %p, len = %p",
duke@435 137 fd, him, len),
duke@435 138 (fd, him, len));
duke@435 139
duke@435 140 HPIDECL(get_host_name, "get_host_name", _socket, GetHostName, int, "%d",
duke@435 141 (char *hostname, int namelen),
duke@435 142 ("hostname = %p, namelen = %d",
duke@435 143 hostname, namelen),
duke@435 144 (hostname, namelen));
duke@435 145
duke@435 146 HPIDECL(get_host_by_addr, "get_host_by_addr", _socket, GetHostByAddr,
duke@435 147 struct hostent *, "(struct hostent *)%p",
duke@435 148 (const char* name, int len, int type),
duke@435 149 ("name = %p, len = %d, type = %d",
duke@435 150 name, len, type),
duke@435 151 (name, len, type));
duke@435 152
duke@435 153 HPIDECL(get_sock_opt, "get_sock_opt", _socket, SocketGetOption, int, "%d",
duke@435 154 (int fd, int level, int optname, char *optval, int* optlen),
duke@435 155 ("fd = %d, level = %d, optname = %d, optval = %p, optlen = %p",
duke@435 156 fd, level, optname, optval, optlen),
duke@435 157 (fd, level, optname, optval, optlen));
duke@435 158
duke@435 159 HPIDECL(set_sock_opt, "set_sock_opt", _socket, SocketSetOption, int, "%d",
duke@435 160 (int fd, int level, int optname, const char *optval, int optlen),
duke@435 161 ("fd = %d, level = %d, optname = %d, optval = %p, optlen = %d",
duke@435 162 fd, level, optname, optval, optlen),
duke@435 163 (fd, level, optname, optval, optlen));
duke@435 164
duke@435 165 HPIDECL(get_proto_by_name, "get_proto_by_name", _socket, GetProtoByName,
duke@435 166 struct protoent *, "(struct protoent *)%p",
duke@435 167 (char* name),
duke@435 168 ("name = %p",
duke@435 169 name),
duke@435 170 (name));

mercurial