G06F9/4486

GENERATING AND EXECUTING MULTI-ENTRY POINT FUNCTIONS
20180321917 · 2018-11-08 ·

A static multi-entry point function with more than one entry point is provided. The function allows callers to enter the function at different entry points using an offset. Each entry point of the function is associated with a different offset, and includes instructions that identify data that is associated with the entry point. Each entry point further includes an instruction that jumps to a common prologue of the function. The common prologue loads the identified data into local variables. The function also includes a functional component that performs different actions depending on the data in the local variables. The function includes a default entry point that is used when the function is called without any offset, so that the function appears to behave like a normal function to scanners.

Data processing system and method for executing block call and block return instructions

A data processing system includes a control register, a program counter and a controller. The control register is used to store a level status of an execution flow and at least one return address. When the controller reads a block call instruction while a level status of the execution flow has an initial value, the controller stores a return address of the block call instruction in the control register, increments a value of the level status, and redirects the execution flow to a target address indicated by the block call instruction. When the controller reads a block return instruction and the value of the level status is not equal to the initial value, the controller decrements the value of the level status. If the value of the level status becomes equal to the initial value, the controller redirects the execution flow to the return address.

API namespace virtualization

A computer operating system with a map that relates API namespaces to components that implement an interface contracts for the namespaces. When an API namespace is to be used, a loader within the operating system uses the map to load components based on the map. An application can reference an API namespace in the same way as it references a dynamically linked library, but the implementation of the interface contract for the API namespace is not tied to a single file or to a static collection of files. The map may identify versions of the API namespace or values of runtime parameters that may be used to select appropriate files to implement an interface contract in scenarios that may depend on factors such as hardware in the execution environment, a version of the API namespace against which an application was developed or the application accessing the API namespace.

Mock server for testing
10089219 · 2018-10-02 · ·

Systems of the present disclosure provide a versatile, reusable mock server to respond to Application-Programming-Interface (API) requests. The mock server receives an API request and a cookie associated with the API request. The API server identifies response instructions found in the cookie. The response instructions may include a static response value, a name of an API server for the mock server to imitate, or code for the mock server to execute in the process of generating a mock API response. The mock server generates a mock API response based on the response instructions and sends the mock API response in reply to the API request.

Machine learning application deployment using user-defined pipeline

Systems and methods are disclosed that relate to graphically representing different components (e.g., software modules, libraries, interfaces, or other blocks of code) that may be included in an application, linking the components in an ordered sequence to embody the application, and deploying the application to perform a task. The components may be displayed and represented as graphical components in a graphical application editor, or any other development environment. The graphical application editor may perform various operations with respect to the graphical components and the components respectively represented by and corresponding therewith. The operations may include facilitation of linking implemented instances of the graphical component objects together and/or developing the application by linking the underlying code associated with the graphical component objects according to the linking of the graphical component objects.

Method for performing control transfers in a system with cloaked pages

A virtual-machine-based system that identifies an application or process in a virtual machine in order to locate resources associated with the identified application. Access to the located resources is then controlled based on a context of the identified application. Those applications without the necessary context will have a different view of the resource.

Executing Optimized Local Entry Points and Function Call Sites

Embodiments relate to optimizing an indirect call function. A compiler is provided to identify potential target functions and indicate the potential target functions in the program code. Additionally, the compiler determines and indicates in the program code that the function pointer value resulting from a non-call reference of a function symbol is solely used to perform indirect calls in the same module. A linker can read the indication the compiler made in the program code and optimize the indirect call function.

Providing hypercall interface for virtual machines
09990216 · 2018-06-05 · ·

Systems and methods for providing a hypercall interface for virtual machines. An example method may comprise receiving, by a hypervisor executing on a computer system, a hypercall instruction issued by a virtual machine to invoke a hypervisor function; and determining an identifier of the hypervisor function based on a value of an instruction pointer of the virtual machine.

Data Processing System and Method for Controlling an Execution Flow
20180136934 · 2018-05-17 ·

A data processing system includes a control register, a program counter and a controller. The control register is used to store a level status of an execution flow and at least one return address. When the controller reads a block call instruction while a level status of the execution flow has an initial value, the controller stores a return address of the block call instruction in the control register, increments a value of the level status, and redirects the execution flow to a target address indicated by the block call instruction. When the controller reads a block return instruction and the value of the level status is not equal to the initial value, the controller decrements the value of the level status. If the value of the level status becomes equal to the initial value, the controller redirects the execution flow to the return address.

EXECUTING OPTIMIZED LOCAL ENTRY POINTS AND FUNCTION CALL SITES

Embodiments relate to optimizing an indirect call function. More specifically, an indirect call function configuration comprises a first application module having a target function of the indirect function call, a second application module with a symbolic reference to the target function of the indirect function call, and a third application module to originate an indirect function call. A compiler is provided to identify potential target functions and indicate the potential target functions in the program code. Additionally, the compiler determines and indicates in the program code that the function pointer value resulting from a non-call reference of a function symbol is solely used to perform indirect calls in the same module. A linker can read the indication the compiler made in the program code and optimize the indirect call function.