Review Request (M) - 7157695 - Add windows implementation of socket interface

Nils Eliasson nils.eliasson at oracle.com
Fri Apr 13 01:21:31 PDT 2012


Can only find julong. u_long is defined in winsock.h that this is a call to.

Changed the pointer cast to a correct construct.

http://cr.openjdk.java.net/~neliasso/7157695/webrev.04/ 
<http://cr.openjdk.java.net/%7Eneliasso/7157695/webrev.04/>

Otherwise the same.

Thanks,
//Nils


Vladimir Kozlov skrev 2012-04-10 17:08:
> +  int ret = ::ioctlsocket(fd, FIONREAD, (u_long*)pbytes);
>
> What type is u_long? VM has defined type 'ulong' not 'u_long'.
>
> Otherwise looks good.
>
> Vladimir
>
> On 4/10/12 6:45 AM, Nils Eliasson wrote:
>> Any comments on the latest rev?
>>
>> //Nils
>>
>> Nils Eliasson skrev 2012-03-30 10:40:
>>> ok,
>>>
>>> New webrev here: 
>>> http://cr.openjdk.java.net/~neliasso/7157695/webrev.03/
>>> <http://cr.openjdk.java.net/%7Eneliasso/7157695/webrev.03/>
>>>
>>> Defining socklen_t as int on windows makes a much better impl.
>>>
>>> Remains some casts from size_t to int on windows. So we have jni 
>>> call in jvm.h with jint/int -> os.hpp with size_t ->
>>> os_windows.hpp with int. But we don't expect any negative lenghts so 
>>> it should work.
>>>
>>> Thanks for the feedback,
>>> Nils E
>>>
>>> David Holmes skrev 2012-03-29 23:20:
>>>> On 30/03/2012 4:36 AM, Dean Long wrote:
>>>>> Isn't this webrev reversing the recent changes for 7091417?
>>>>
>>>> Yes - and it shouldn't be. size_t's and socklen_t's are the correct 
>>>> types to use.
>>>>
>>>> David
>>>>
>>>>> dl
>>>>>
>>>>> On 3/29/2012 10:42 AM, Christian Thalinger wrote:
>>>>>> I'm pretty sure this gets us into trouble with some compiler 
>>>>>> somewhere
>>>>>> (I'd guess GCC on Linux). On Mac OS X send is declared as:
>>>>>>
>>>>>> ssize_t
>>>>>> send(int socket, const void *buffer, size_t length, int flags);
>>>>>>
>>>>>> but length is now passed as int:
>>>>>>
>>>>>> -inline int os::send(int fd, char* buf, size_t nBytes, uint flags) {
>>>>>> +inline int os::send(int fd, char* buf, int nBytes, int flags) {
>>>>>> RESTARTABLE_RETURN_INT(::send(fd, buf, nBytes, flags));
>>>>>> }
>>>>>>
>>>>>> I think your changes are good but we might need some casts down 
>>>>>> in the
>>>>>> OS files eventually.
>>>>>>
>>>>>> -- Chris
>>>>>>
>>>>>> On Mar 29, 2012, at 3:00 PM, Nils Eliasson wrote:
>>>>>>
>>>>>>> http://cr.openjdk.java.net/~neliasso/7157695/webrev.01/<http://cr.openjdk.java.net/%7Eneliasso/7157695/webrev.01/> 
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 7157695 - Add windows implementation of socket interface
>>>>>>>
>>>>>>> Using winsock api which is almost posix compatible. Also changing
>>>>>>> some argument types for the socket interface calls in os.hpp to 
>>>>>>> make
>>>>>>> the platform independent code more platform independent. This made
>>>>>>> the win implementation possible without casts, and allowed me to
>>>>>>> remove a lot of redundant casts from the jni exports in jvm.cpp.
>>>
>>
>>
>> -- 
>> Oracle <http://www.oracle.com>
>> Nils Eliasson | Senior Member of Technical Staff
>> Oracle Java Platform Group, JVM Engineering
>> ORACLE Sweden
>>


-- 
Oracle <http://www.oracle.com>
Nils Eliasson | Senior Member of Technical Staff
Oracle Java Platform Group, JVM Engineering
ORACLE Sweden

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-dev/attachments/20120413/33a8241f/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: oracle_sig_logo.gif
Type: image/gif
Size: 658 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/hotspot-dev/attachments/20120413/33a8241f/oracle_sig_logo.gif 


More information about the hotspot-dev mailing list