blob: 418b75665ab8123cadc6015325f561bcf381fae8 [file] [log] [blame]
/* --COPYRIGHT--,ESD
* Copyright (c) 2008 Texas Instruments. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License
* v. 1.0 which accompanies this distribution. The Eclipse Public License is
* available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
* Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* Texas Instruments - initial implementation
* --/COPYRIGHT--*/
/*
* ======== ISemProcessSupport.xdc ========
*/
import xdc.runtime.Error;
/*!
* ======== ISemProcessSupport ========
* Interface for OS specific back-end. [EXPERIMENTAL]
*
* The {@link xdc.runtime.knl} package contains modules that provide typical
* OS services. These xdc.runtime.knl modules however require proxies to be
* bound to an OS specific delegate. This specifies the interface to
* be implemented by the OS specific delegate for
* {@link xdc.runtime.knl#SemProcess} module.
*
* create() takes a 32-bit integer key parameter to be used for identifying
* the semaphore to create across processes. For example, for Linux System V
* semaphores, the key is necessary so that different processes can access
* the same semaphore.
*/
interface ISemProcessSupport inherits ISemaphore
{
instance:
/*!
* ======== create ========
* Create a SemProcess object.
*
* This function creates a new `SemProcess` object which is
* initialized to count.
* All semaphores created with the same key reference the same
* underlying synchronization object and work between processes. The
* underlying synchronization object should be automatically deleted when
* all references to it have been deleted, and the reference count should
* be maintained consistently across process forks or similar operations.
* An implementation for a platform on which this is technically impossible
* (e.g. an operating system that does not support multiple processes) may
* provide a 'toy' implementation with behavior matching that of
* `{@link ISemProcessSupport}`.
*
* @param(count) initial semaphore count
* @param(key) globally unique key
*/
create(Int count, Int key);
}
/*
*! Revision History
*! ================
*! 17-Apr-2009 nitya Review updates
*/