Modifying application behaviour
First Claim
1. A data processing system comprising:
- a computing device having a processor and memory, the computing device configured with;
an operating system providing an application programming interface;
an application supported by the operating system and operable to make calls to the application programming interface;
an intercept library configured to intercept calls of a predetermined set of call types made by the application to the application programming interface; and
a configuration data structure defining at least one action to be performed for each of a plurality of sequences of one or more calls having predefined characteristics, the one or more calls being of the predetermined set of call types;
wherein the intercept library is configured to, on intercepting a sequence of one or more calls defined in the configuration data structure, perform the corresponding action(s) defined in the configuration data structure,and wherein the action(s) to be performed for a sequence of one or more calls having predefined characteristics include one or more of;
forwarding the last call in the sequence of one or more calls to the application programming interface with unmodified or modified parameters;
suppressing the last call in the sequence of one or more calls such that it is not delivered to the application programming interface;
making one or more additional calls to the application programming interface or another application programming interface;
writing entries to a log;
pinning a thread executed in consequence of the sequence of one or more calls to a particular processor core of the data processing system; and
enabling spinning for a thread arranged to execute at the data processing system.
10 Assignments
0 Petitions
Accused Products
Abstract
A data processing system comprising: an operating system providing an application programming interface; an application supported by the operating system and operable to make calls to the application programming interface; an intercept library configured to intercept calls of a predetermined set of call types made by the application to the application programming interface; and a configuration data structure defining at least one action to be performed for each of a plurality of sequences of one or more calls having predefined characteristics, the one or more calls being of the predetermined set of call types; wherein the intercept library is configured to, on intercepting a sequence of one or more calls defined in the configuration data structure, perform the corresponding action(s) defined by the configuration data structure.
184 Citations
45 Claims
-
1. A data processing system comprising:
-
a computing device having a processor and memory, the computing device configured with; an operating system providing an application programming interface; an application supported by the operating system and operable to make calls to the application programming interface; an intercept library configured to intercept calls of a predetermined set of call types made by the application to the application programming interface; and a configuration data structure defining at least one action to be performed for each of a plurality of sequences of one or more calls having predefined characteristics, the one or more calls being of the predetermined set of call types; wherein the intercept library is configured to, on intercepting a sequence of one or more calls defined in the configuration data structure, perform the corresponding action(s) defined in the configuration data structure, and wherein the action(s) to be performed for a sequence of one or more calls having predefined characteristics include one or more of;
forwarding the last call in the sequence of one or more calls to the application programming interface with unmodified or modified parameters;
suppressing the last call in the sequence of one or more calls such that it is not delivered to the application programming interface;
making one or more additional calls to the application programming interface or another application programming interface;
writing entries to a log;
pinning a thread executed in consequence of the sequence of one or more calls to a particular processor core of the data processing system; and
enabling spinning for a thread arranged to execute at the data processing system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method of modifying how calls to an application programming interface operate, comprising:
-
intercepting calls of a predetermined set of call types from an application to the application programming interface; matching in the intercepted calls one of a plurality of sequences of one or more calls having predefined characteristics, with one of a plurality of sequences of one or more calls defined by a configuration data structure; and in response to matching a sequence of one or more calls, performing a set of at least one corresponding actions defined in the configuration data structure, wherein the action(s) to be performed for a sequence of one or more calls having predefined characteristics include one or more of;
forwarding the last call in the sequence of one or more calls to the application programming interface with unmodified or modified parameters;
suppressing the last call in the sequence of one or more calls such that it is not delivered to the application programming interface;
making one or more additional calls to the application programming interface or another application programming interface;
writing entries to a log;
pinning a thread executed in consequence of the sequence of one or more calls to a particular processor core of the data processing system; and
enabling spinning for a thread arranged to execute at the data processing system.
-
-
18. A data processing system comprising:
-
a computing device having a processor and memory, the computing device configured with; an operating system providing a socket library; an application supported by the operating system and configured to receive messages at a socket established by means of the socket library; a user level network protocol stack operable to perform receive processing of messages held at a receive queue corresponding to the said socket; and a callback function operable to determine on behalf of the application whether to discard a message held at the receive queue; wherein the application is operable to make a plurality of different calls of a first type to the socket library that cause state of the receive queue of the said socket to be revealed and the callback function is registered with the user level network protocol stack such that, in response to calls of the first type, the user level network protocol stack invokes the callback function in respect of each message held at the receive queue so as to cause the callback function to indicate to the user level network protocol stack whether each respective message at the receive queue is to be discarded, and wherein the receive queue comprises an unfiltered queue and a filtered queue, the unfiltered queue initially receiving all messages for the socket, and the user level network protocol stack is configured to move from the unfiltered queue into the filtered queue only those messages that are not indicated to be discarded. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
-
-
39. A method of filtering messages at a receive queue of a data processing system, the receive queue being configured to receive messages for a socket of an application and the socket being established by means of a socket library, the data processing system further comprising a user level network protocol stack operable to perform receive processing of messages held at the receive queue, the method comprising:
-
registering a callback function such that, in response to calls from the application to the socket library that cause state of the receive queue of the socket to be revealed, the user level network protocol stack invokes the callback function in respect of each message held at the receive queue, the callback function being arranged to indicate to the user level network protocol stack whether each respective message at the receive queue is to be discarded; and discarding those messages indicated the user level network protocol stack as being for discarding, wherein the receive queue comprises an unfiltered queue and a filtered queue, the unfiltered queue initially receiving all messages for the socket, and the user level network protocol stack is configured to move from the unfiltered queue into the filtered queue only those messages that are not indicated to be discarded.
-
-
40. A data processing system comprising:
-
a computing device having a processor and memory, the computing device configured with; an operating system providing an application programming interface; an application supported by the operating system and operable to make calls to the application programming interface; an intercept library configured to intercept calls of a predetermined set of call types made by the application to the application programming interface; and a configuration data structure defining at least one action to be performed for each of a plurality of sequences of one or more calls having predefined characteristics, the one or more calls being of the predetermined set of call types, wherein the intercept library is configured to, on intercepting a sequence of one or more calls defined in the configuration data structure, perform the corresponding action(s) defined in the configuration data structure, and wherein the configuration data structure is further configured to identify the predetermined set of call types and, if the set of call types that the intercept library is configured to intercept does not match the predetermined set of calls types, a script is configured to, prior to initialising the intercept library, cause the intercept library to be recompiled so as to arrange that the set of call types that the intercept library is configured to intercept matches the predetermined set of call types identified in the configuration data structure.
-
-
41. A method of modifying the operation of calls to an application programming interface comprising:
-
intercepting calls of a predetermined set of call types from an application to the application programming interface; matching in the intercepted calls one of a plurality of sequences of one or more calls having predefined characteristics, with one of a plurality of sequences of one or more calls defined by a configuration data structure; and in response to matching a sequence of one or more calls, performing a set of at least one corresponding actions defined in the configuration data structure, and wherein the configuration data structure is configured to identify the predetermined set of call types and, if the set of call types that the intercept library is configured to intercept does not match the predetermined set of calls types, a script is configured to, prior to initialising the intercept library, cause the intercept library to be recompiled so as to arrange that the set of call types that the intercept library is configured to intercept matches the predetermined set of call types identified in the configuration data structure.
-
-
42. A data processing system comprising:
-
a computing device having a processor and memory, the computing device configured with; an operating system providing a socket library; an application supported by the operating system and configured to receive messages at a socket established by means of the socket library; a user level network protocol stack operable to perform receive processing of messages held at a receive queue corresponding to the said socket; and a callback function operable to determine on behalf of the application whether to discard a message held at the receive queue; wherein the application is operable to make a plurality of different calls of a first type to the socket library that cause state of the receive queue of the said socket to be revealed and the callback function is registered with the user level network protocol stack such that, in response to calls of the first type, the user level network protocol stack invokes the callback function in respect of each message held at the receive queue so as to cause the callback function to indicate to the user level network protocol stack whether each respective message at the receive queue is to be discarded, and wherein the callback function is further operable to, on performing filtering of a message in the receive queue, return data by means of the callback function indicating one or more sub-messages within that message that are to be delivered to the socket, the remaining parts of the message to be discarded. - View Dependent Claims (43)
-
-
44. A method of filtering messages at a receive queue of a data processing system, the receive queue being configured to receive messages for a socket of an application and the socket being established by means of a socket library, the data processing system further comprising a user level network protocol stack operable to perform receive processing of messages held at the receive queue, the method comprising:
-
registering a callback function such that, in response to calls from the application to the socket library that cause state of the receive queue of the socket to be revealed, the user level network protocol stack invokes the callback function in respect of each message held at the receive queue, the callback function being arranged to indicate to the user level network protocol stack whether each respective message at the receive queue is to be discarded; and discarding those messages indicated the user level network protocol stack as being for discarding, wherein the callback function is further operable to, on performing filtering of a message in the receive queue, return data by means of the callback function indicating one or more sub-messages within that message that are to be delivered to the socket, the remaining parts of the message to be discarded. - View Dependent Claims (45)
-
Specification