/* * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * - Neither the name of Oracle nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
class osSupport { public: /** * Open a regular file read-only. * Return the file descriptor.
*/ static jint openReadOnly(constchar *path);
/** * Close a file descriptor.
*/ static jint close(jint fd);
/** * Return the size of a regular file.
*/ static jlong size(constchar *path);
/** * Read nBytes at offset into a buffer.
*/ static jlong read(jint fd, char *buf, jlong nBytes, jlong offset);
/** * Map nBytes at offset into memory and return the address. * The system chooses the address.
*/ staticvoid* map_memory(jint fd, constchar *filename, size_t file_offset, size_t bytes);
/** * Unmap nBytes of memory at address.
*/ staticint unmap_memory(void* addr, size_t bytes);
};
/** * A CriticalSection to protect a small section of code.
*/ class SimpleCriticalSection { friendclass SimpleCriticalSectionLock; private: void enter(); voidexit(); public:
SimpleCriticalSection(); //~SimpleCriticalSection(); // Cretes a dependency on Solaris on a C++ exit registration
/** * SimpleCriticalSectionLock instance. * The constructor locks a SimpleCriticalSection and the * destructor does the unlock.
*/ class SimpleCriticalSectionLock { private:
SimpleCriticalSection *lock; public:
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.