摘要:
Described are techniques for executing code performing one or more operations corresponding to scheduling and synchronization primitives. During execution of the code, a call is performed using an application programming interface requesting a first of the operations corresponding to one of said scheduling and synchronization primitives. During runtime in response to said call, it is determined whether to perform the first operation. The determining step uses a set of one or more criteria indicating conditions as to when the scheduling and synchronization primitives are allowed to be performed. The one or more criteria are determined in accordance with a plurality of different platforms. If it is determined that the first operation is allowable and the first operation is to be performed, then the code can be executed on each of the different platforms in a privileged execution mode and a non-privileged execution mode.
摘要:
Described are techniques for facilitating communication between code modules. A first code module is provided that makes at least one call using an application programming interface. The application programming interface facilitates communication between the first code module and a target code module and provides support for performing the at least one call from a first execution mode associated with the first code module and a second execution mode associated with the target code module. The application programming interface provides support for user space to user space communication, user space to kernel space communication, kernel space to kernel space communication, and kernel to user space communication. The first execution mode of the first code module and said second execution mode of the target code module are determined. A communication path is established between the code modules in accordance with the first and second execution modes.
摘要:
Described are techniques for facilitating communication between code modules. A first code module is provided that makes at least one call using an application programming interface. The application programming interface facilitates communication between the first code module and a target code module and provides support for performing the at least one call from a first execution mode associated with the first code module and a second execution mode associated with the target code module. The application programming interface provides support for user space to user space communication, user space to kernel space communication, kernel space to kernel space communication, and kernel to user space communication. The first execution mode of the first code module and said second execution mode of the target code module are determined. A communication path is established between the code modules in accordance with the first and second execution modes.
摘要:
Described are techniques for facilitating communication between device drivers. A device driver is provided that makes at least one call using an application programming interface. The application programming interface facilitates communication between the device driver module and a target code module. The application programming interface provides support for performing the at least one call from a first execution mode associated with the device driver module and a second execution mode associated with the target code module. The application programming interface provides support for user space to user space communication, user space to kernel space communication, kernel space to kernel space communication, and kernel to user space communication. The first execution mode of the device driver module and said second execution mode of the target code module are determined. A communication path between the modules is established in accordance with said first execution mode and said second execution mode.
摘要:
Described are techniques for executing code performing one or more operations corresponding to scheduling and synchronization primitives. During execution of the code, a call is performed using an application programming interface requesting a first of the operations corresponding to one of said scheduling and synchronization primitives. During runtime in response to said call, it is determined whether to perform the first operation. The determining step uses a set of one or more criteria indicating conditions as to when the scheduling and synchronization primitives are allowed to be performed. The one or more criteria are determined in accordance with a plurality of different platforms. If it is determined that the first operation is allowable and the first operation is to be performed, then the code can be executed on each of the different platforms in a privileged execution mode and a non-privileged execution mode.
摘要:
Described are techniques for intermodule communication between a first code module and a second code module wherein one of the first and second code modules executing in user space and the other of the first and second code modules executing in kernel space. A shared memory portion includes storage for one or more commands. A first first-in-first-out (FIFO) structure is used to send a location in the shared memory portion from the first to the second code module. A second FIFO structure is used for sending a location in the shared memory portion from the second to the first code module. The first code module stores command data for a command at a first location in the shared memory portion. A command is issued from the first to the second code module by sending the first location using the first FIFO structure.
摘要:
Described are techniques for building a code entity. A plurality of configuration files are selected in accordance with a target and target variant. The target identifies hardware and software platform information about an environment in which the code entity is to be configured for execution. The target variant identifies a software build variation for a particular target. One or more build phases are performed using the plurality of configuration files selected in said selecting. The code entity is generated as an output of performing the one or more build phases where the code entity varies with the target and target variant.
摘要:
Described are techniques for communicating between one or more producers and one or more consumers. A first consumer of an event queue registers for notification regarding occurrences of one or more events. A producer of the event queue posts one or more notifications to one or more consumers of the event queue regarding one or more occurrences of one or more events. Each of the consumers receive notification regarding occurrences of events for which said each consumer is registered. The first consumer retrieves posted event notifications regarding events for which said first consumer is registered. If the first consumer is executing in user space and an event notification list to which said event notifications for said first consumer are posted is located in shared memory, said first consumer retrieves said posted event notifications without proxying into kernel space.
摘要:
Described are techniques for processing a module. A module is generated for execution on a target operating system. The module includes four entry points and code portions associated with each of said four entry points. The four entry points correspond to four handlers invoked at different processing points in connection with a state associated with said module. The four handlers include a load handler, an unload handler, a start handler, and a quiesce handler. First processing is performed in connection with the module. The first processing including at least one of dynamically loading the module, dynamically unloading the module, starting module-specific processing performed by the module, and issuing a request to commence preparation for unloading the module. An appropriate one or more of the four handlers are invoked in accordance with the first processing performed.
摘要:
Described are techniques for providing a logical device model. In one embodiment, a a method for providing a logical device model includes providing a plurality of logical devices, at least one of said plurality of logical devices being provided by a first provider executing in kernel space and at least one of said plurality of logical devices being provided by a second provider executing in user space, and establishing a relationship between the first provider and the second provider wherein the first provider is a consumer of a logical device provided by the second provider, said logical device model including said relationship.