/* * Class: org_apache_harmony_luni_platform_OSFileSystem * Method: writeImpl * Signature: (J[BII)J */ JNIEXPORT jlong JNICALL Java_org_apache_harmony_luni_platform_OSFileSystem_writeImpl (JNIEnv * env, jobject thiz, jlong fd, jbyteArray byteArray, jint offset, jint nbytes) { PORT_ACCESS_FROM_ENV (env); jboolean isCopy; jbyte *bytes = (*env)->GetByteArrayElements (env, byteArray, &isCopy); jlong result; result = (jlong) hyfile_write ((IDATA) fd, (void *) (bytes + offset), (IDATA) nbytes); if(result == -1 && hyerror_last_error_number() == HYPORT_ERROR_FILE_LOCKED){ throwNewExceptionByName(env, "java/io/IOException", netLookupErrorString(env, HYPORT_ERROR_FILE_LOCKED)); } (*env)->ReleaseByteArrayElements (env, byteArray, bytes, JNI_ABORT); return result; }
{ I_32 err = errno; HYSOCKDEBUG ("<setsockopt (for bool) failed, err=%d>\n", err); return hyerror_set_last_error(err, findError (err)); } } #if defined(IPV6_FUNCTION_SUPPORT) /* there separate socket options for IPv4/IPv6 for ttl, the IPv6 one also needs to be set */ if (platformOption == IP_MULTICAST_LOOP) { platformLevel = IPPROTO_IPV6; platformOption = IPV6_MULTICAST_LOOP; if (0 != setsockopt (SOCKET_CAST (socketP), platformLevel, platformOption, (void *) optval, optlen)) { HYSOCKDEBUG ("<setsockopt (for bool) failed, err=%d>\n"); return hyerror_set_last_error(err, findError (errno)); } } #endif return 0; } void throwJavaNetSocketException (I_32 errorNumber) { XMLVM_THROW_WITH_CSTRING(java_net_SocketException, netLookupErrorString(errorNumber)) }