Techniques for user space and kernel space communication
    1.
    发明授权
    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结构发送第一位置,从第一到第二代码模块发出命令。

    Event queues
    2.
    发明授权
    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
    3.
    发明授权
    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
    4.
    发明授权
    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.

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

    Techniques for performing a remote procedure call using remote procedure call configuration information
    5.
    发明授权
    Techniques for performing a remote procedure call using remote procedure call configuration information 有权
    使用远程过程调用配置信息执行远程过程调用的技术

    公开(公告)号:US08555297B1

    公开(公告)日:2013-10-08

    申请号:US12286433

    申请日:2008-09-29

    IPC分类号: G06F13/00

    CPC分类号: G06F9/547

    摘要: Described are techniques for performing remote procedure calls (RPCs). An RPC API is described which provides for using an optimized technique and an unoptimized technique for performing RPCs. The optimized technique includes a client container performing a call to obtain RPC configuration information which is then stored by the client container and may be used by the client container in connection with multiple RPC invocations. Techniques are also described for communicating parameter information between containers executing in different address spaces by forming parameter information on the client side using embedded lists, encoding the parameter information on the client side prior to transmission to the server, and transmitting the encoded parameter information to the server which determines output parameters and returns the output parameters to the client.

    摘要翻译: 描述了用于执行远程过程调用(RPC)的技术。 描述了一种RPC API,其中提供了使用优化技术和未优化的技术来执行RPC。 优化的技术包括执行调用以获得RPC配置信息的客户端容器,然后由客户端容器存储,并且客户机容器可以与多个RPC调用相关联使用。 还描述了用于通过使用嵌入列表在客户端侧形成参数信息,在发送到服务器之前对客户端侧的参数信息进行编码,并且将编码的参数信息发送到 服务器,其确定输出参数并将输出参数返回给客户端。

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

    公开(公告)号:US08271996B1

    公开(公告)日:2012-09-18

    申请号:US12286493

    申请日:2008-09-29

    IPC分类号: 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 the consumer is registered. The first consumer retrieves posted event notifications regarding events for which the first consumer is registered. If the first consumer is executing in user space and an event notification list to which the event notifications for the first consumer are posted is located in shared memory, the first consumer retrieves the posted event notifications without proxying into kernel space.

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

    Common scheduling and synchronization primitives
    7.
    发明授权
    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 synchronizing processing of at least two code threads
    8.
    发明授权
    Techniques for synchronizing processing of at least two code threads 有权
    用于同步处理至少两个代码线程的技术

    公开(公告)号:US08752057B1

    公开(公告)日:2014-06-10

    申请号:US12215904

    申请日:2008-06-30

    IPC分类号: G06F9/52

    CPC分类号: G06F9/52 G06F9/526

    摘要: Described are techniques synchronizing processing of at least two code threads. A first thread executing in user space is provided. A second thread executing in kernel space is provided. A global mutex lock is provided for synchronizing processing between said first thread and said second thread. One of said first thread and said second thread holds the global mutex lock and is identified as a current owner of the global mutex lock. The other of said first thread and said second thread requests the global mutex lock and is blocked until the current owner of the global mutex lock releases the global mutex lock. The global mutex lock is held by at most one thread at a point in time and is identified as the current owner.

    摘要翻译: 描述了同步处理至少两个代码线程的技术。 提供在用户空间中执行的第一个线程。 提供了在内核空间中执行的第二个线程。 提供了一种全局互斥锁,用于在所述第一线和所述第二线之间进行同步处理。 所述第一线程和所述第二线程之一保存全局互斥锁,并被识别为全局互斥锁的当前所有者。 所述第一线程和所述第二线程中的另一线程请求全局互斥锁并被阻塞,直到全局互斥锁的当前所有者释放全局互斥锁为止。 全局互斥锁在一个时间点由最多一个线程持有,并被识别为当前所有者。

    Techniques for inter-user-space communication
    9.
    发明授权
    Techniques for inter-user-space communication 有权
    用户间空间通信技术

    公开(公告)号:US08359603B1

    公开(公告)日:2013-01-22

    申请号:US12079759

    申请日:2008-03-28

    IPC分类号: G06F9/54

    CPC分类号: G06F9/547

    摘要: Described are techniques for intermodule communication between a first code module and a second code module each executing in user space. A shared memory portion includes storage for one or more commands and is accessible to the first and the second code modules. A first first-in-first-out (FIFO) structure is used for sending a location in the shared memory portion from the first code module to the second code module. A second FIFO structure is used for sending a location in the shared memory portion from the second code module 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 code module to the second code module by sending the first location from the first code module to the second code module 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.