Common scheduling and synchronization primitives

    公开(公告)号:US08387075B1

    公开(公告)日:2013-02-26

    申请号:US12079648

    申请日:2008-03-28

    IPC分类号: G06F3/00

    摘要: 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.

    Data storage system having common software environment
    2.
    发明授权
    Data storage system having common software environment 有权
    数据存储系统具有通用的软件环境

    公开(公告)号:US08205218B1

    公开(公告)日:2012-06-19

    申请号:US11824433

    申请日:2007-06-29

    IPC分类号: G06F13/00 G06F17/30

    CPC分类号: G06F9/4411

    摘要: 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.

    摘要翻译: 描述了用于促进代码模块之间的通信的技术。 提供了使用应用编程接口进行至少一个呼叫的第一代码模块。 所述应用程序编程接口便于所述第一代码模块和目标代码模块之间的通信,并提供对从与所述第一代码模块相关联的第一执行模式执行所述至少一个调用的支持以及与所述目标代码模块相关联的第二执行模式。 应用编程接口提供用户空间支持,用户空间通信,用户空间到内核空间通信,内核空间到内核空间通信,以及内核到用户空间通信。 确定第一代码模块的第一执行模式和目标代码模块的所述第二执行模式。 根据第一和第二执行模式,在代码模块之间建立通信路径。

    Common software environment
    3.
    发明授权
    Common software environment 有权
    通用软件环境

    公开(公告)号:US07950025B1

    公开(公告)日:2011-05-24

    申请号:US11824542

    申请日:2007-06-29

    IPC分类号: G06F9/44

    CPC分类号: G06F9/545

    摘要: 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.

    摘要翻译: 描述了用于促进代码模块之间的通信的技术。 提供了使用应用编程接口进行至少一个呼叫的第一代码模块。 所述应用程序编程接口便于所述第一代码模块和目标代码模块之间的通信,并提供对从与所述第一代码模块相关联的第一执行模式执行所述至少一个调用的支持以及与所述目标代码模块相关联的第二执行模式。 应用编程接口提供用户空间支持,用户空间通信,用户空间到内核空间通信,内核空间到内核空间通信,以及内核到用户空间通信。 确定第一代码模块的第一执行模式和目标代码模块的所述第二执行模式。 根据第一和第二执行模式,在代码模块之间建立通信路径。

    Techniques for use with device drivers in a common software environment
    4.
    发明授权
    Techniques for use with device drivers in a common software environment 有权
    在通用软件环境中与设备驱动程序一起使用的技术

    公开(公告)号:US07950022B1

    公开(公告)日:2011-05-24

    申请号:US11824506

    申请日:2007-06-29

    IPC分类号: G06F9/44

    CPC分类号: G06F13/102

    摘要: 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.

    摘要翻译: 描述了用于促进设备驱动器之间的通信的技术。 提供了一种使用应用编程接口进行至少一次呼叫的设备驱动程序。 应用程序编程接口便于设备驱动程序模块和目标代码模块之间的通信。 应用编程接口提供对从与设备驱动器模块相关联的第一执行模式执行至少一个呼叫的支持以及与目标代码模块相关联的第二执行模式。 应用编程接口提供用户空间支持,用户空间通信,用户空间到内核空间通信,内核空间到内核空间通信,以及内核到用户空间通信。 确定设备驱动器模块的第一执行模式和目标代码模块的所述第二执行模式。 根据所述第一执行模式和所述第二执行模式建立模块之间的通信路径。

    Common scheduling and synchronization primitives
    5.
    发明授权
    Common scheduling and synchronization primitives 有权
    公共调度和同步原语

    公开(公告)号:US09128736B1

    公开(公告)日:2015-09-08

    申请号:US13771268

    申请日:2013-02-20

    IPC分类号: G06F9/52 G06F9/445

    摘要: 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.

    摘要翻译: 描述了执行与调度和同步原语对应的一个或多个操作的代码的技术。 在执行代码期间,使用应用程序编程接口执行呼叫,请求与所述调度和同步原语之一相对应的第一操作。 在响应于所述呼叫的运行时间期间,确定是否执行第一操作。 确定步骤使用一组一个或多个标准来指示允许何时执行调度和同步原语的条件。 根据多个不同的平台确定一个或多个标准。 如果确定第一操作是可允许的并且要执行第一操作,则可以在特权执行模式和非特权执行模式中的每个不同平台上执行代码。

    Techniques for user space and kernel space communication
    6.
    发明授权
    Techniques for user space and kernel space communication 有权
    用户空间和内核空间通信技术

    公开(公告)号:US08209704B1

    公开(公告)日:2012-06-26

    申请号:US12079822

    申请日:2008-03-28

    IPC分类号: G06F9/52

    CPC分类号: G06F9/545

    摘要: 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.

    摘要翻译: 描述了用于第一代码模块和第二代码模块之间的模块间通信的技术,其中第一和第二代码模块中的一个在用户空间中执行,第一和第二代码模块中的另一个在内核空间中执行。 共享存储器部分包括用于一个或多个命令的存储。 第一先进先出(FIFO)结构用于从第一代码模块向第二代码模块发送共享存储器部分中的位置。 第二FIFO结构用于从第二代码模块向第二代码模块发送共享存储器部分中的位置。 第一代码模块将用于命令的命令数据存储在共享存储器部分中的第一位置。 通过使用第一FIFO结构发送第一位置,从第一到第二代码模块发出命令。

    Techniques for building code entities

    公开(公告)号:US09703550B1

    公开(公告)日:2017-07-11

    申请号:US12586845

    申请日:2009-09-29

    IPC分类号: G06F9/44 G06F9/445

    CPC分类号: G06F8/71 G06F9/44505

    摘要: 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.

    Event queues
    8.
    发明授权
    Event queues 有权
    事件队列

    公开(公告)号:US08832713B2

    公开(公告)日:2014-09-09

    申请号:US13586137

    申请日:2012-08-15

    IPC分类号: G06F13/00 G06F9/54

    摘要: 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.

    摘要翻译: 描述了用于在一个或多个生产者和一个或多个消费者之间进行通信的技术。 事件队列的第一个消费者注册一个或多个事件发生的通知。 事件队列的生成者将关于一个或多个事件的一个或多个事件的一个或多个通知发送到事件队列的一个或多个消费者。 每个消费者接收关于每个消费者注册的事件的事件的通知。 第一个消费者检索关于所述第一消费者被注册的事件的发布的事件通知。 如果第一消费者在用户空间中执行,并且发布了用于所述第一消费者的所述事件通知的事件通知列表位于共享存储器中,则所述第一消费者检索所述发布的事件通知而不代理到内核空间。

    Universal module model
    9.
    发明授权
    Universal module model 有权
    通用模块型号

    公开(公告)号:US08484616B1

    公开(公告)日:2013-07-09

    申请号:US12456835

    申请日:2009-06-23

    IPC分类号: G06F9/44

    CPC分类号: G06F8/20 G06F8/30

    摘要: 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.

    摘要翻译: 描述了用于处理模块的技术。 生成一个模块用于在目标操作系统上执行。 该模块包括与所述四个入口点中的每一个相关联的四个入口点和代码部分。 四个入口点对应于在与所述模块相关联的状态的不同处理点调用的四个处理程序。 四个处理程序包括一个加载处理程序,一个卸载处理程序,一个起始处理程序和一个停顿处理程序。 与模块相关地执行第一处理。 第一处理包括动态加载模块,动态卸载模块,启动由模块执行的模块特定处理,以及发出开始准备卸载模块的请求中的至少一个。 根据所执行的第一处理,调用四个处理程序中适当的一个或多个。

    Logical device model
    10.
    发明授权
    Logical device model 有权
    逻辑设备型号

    公开(公告)号:US09495210B1

    公开(公告)日:2016-11-15

    申请号:US12215917

    申请日:2008-06-30

    IPC分类号: G06F17/30 G06F9/50 G06F9/52

    摘要: 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.

    摘要翻译: 描述了用于提供逻辑设备模型的技术。 在一个实施例中,一种用于提供逻辑设备模型的方法包括提供多个逻辑设备,所述多个逻辑设备中的至少一个由在内核空间中执行的第一提供商提供,并且所述多个逻辑设备中的至少一个逻辑设备是 由在用户空间中执行的第二提供商提供,以及建立第一提供商和第二提供商之间的关系,其中第一提供商是由第二提供商提供的逻辑设备的使用者,所述逻辑设备模型包括所述关系。