source: vendor/gcc/3.3.5/libjava/include/win32.h

Last change on this file was 1391, checked in by bird, 21 years ago

GCC v3.3.3 sources.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 2.7 KB
Line 
1// win32.h -- Helper functions for Microsoft-flavored OSs.
2
3/* Copyright (C) 2002, 2003 Free Software Foundation
4
5 This file is part of libgcj.
6
7This software is copyrighted work licensed under the terms of the
8Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
9details. */
10
11#ifndef __JV_WIN32_H__
12#define __JV_WIN32_H__
13
14#include <windows.h>
15#undef STRICT
16
17#include <ws2tcpip.h>
18#include <gcj/cni.h>
19#include <java/util/Properties.h>
20
21#include <io.h>
22
23// Prefix and suffix for shared libraries.
24#define _Jv_platform_solib_prefix ""
25#define _Jv_platform_solib_suffix ".dll"
26
27#ifndef DISABLE_JAVA_NET
28
29// these errors cannot occur on Win32
30#define ENOTCONN 0
31#define ECONNRESET 0
32
33/* This is incorrect, but allows java/net/natPlainDatagramSocketImpl.cc
34 to compile under MingW. This will be remedied in a subsequent gcj
35 release where the Win32 and Posix networking code have been forked. */
36#define ECONNREFUSED 0
37
38#ifndef ENOPROTOOPT
39#define ENOPROTOOPT 109
40#endif
41
42#endif // DISABLE_JAVA_NET
43
44extern void _Jv_platform_initialize (void);
45extern void _Jv_platform_initProperties (java::util::Properties*);
46extern jlong _Jv_platform_gettimeofday ();
47extern int _Jv_select (int n, fd_set *, fd_set *, fd_set *, struct timeval *);
48
49inline void
50_Jv_platform_close_on_exec (jint)
51{
52 // Ignore.
53}
54
55#ifdef JV_HASH_SYNCHRONIZATION
56/* Suspends the execution of the current thread for the specified
57 number of microseconds. Tries to emulate the behaviour of usleep()
58 on UNIX and provides a granularity of 1 millisecond. */
59inline void
60_Jv_platform_usleep (unsigned long usecs)
61{
62 if (usecs > 0UL)
63 {
64 unsigned long millis = ((usecs + 999UL) / 1000UL);
65 Sleep (millis);
66 }
67}
68#endif /* JV_HASH_SYNCHRONIZATION */
69
70#ifndef DISABLE_JAVA_NET
71
72static inline int
73_Jv_socket (int domain, int type, int protocol)
74{
75 return ::socket (domain, type, protocol);
76}
77
78inline int
79_Jv_connect (jint fd, sockaddr *ptr, int len)
80{
81 return ::connect (fd, ptr, len);
82}
83
84inline int
85_Jv_close (jint fd)
86{
87 return ::closesocket (fd);
88}
89
90inline int
91_Jv_bind (int fd, struct sockaddr *addr, int addrlen)
92{
93 return ::bind (fd, addr, addrlen);
94}
95
96inline int
97_Jv_accept (int fd, struct sockaddr *addr, socklen_t *addrlen)
98{
99 return ::accept (fd, addr, addrlen);
100}
101
102inline int
103_Jv_listen (int fd, int backlog)
104{
105 return ::listen (fd, backlog);
106}
107
108inline int
109_Jv_write(int s, void *buf, int len)
110{
111 return ::send (s, (char*) buf, len, 0);
112}
113
114inline int
115_Jv_read(int s, void *buf, int len)
116{
117 return ::recv (s, (char*) buf, len, 0);
118}
119
120#endif /* DISABLE_JAVA_NET */
121
122/* Store up to SIZE return address of the current program state in
123 ARRAY and return the exact number of values stored. */
124extern int backtrace (void **__array, int __size);
125
126#endif /* __JV_WIN32_H__ */
Note: See TracBrowser for help on using the repository browser.