Beispiel #1
0
/*
 * 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;
}
Beispiel #2
0
        {
            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))
}