Apparatus for processing data under control of a plurality of programs, said apparatus comprising: a plurality of hardware resources (12, 18) with a predetermined sequence such that each of said plurality of hardware resources has a predetermined position within said sequence; boundary indicating circuitry (14, 20) configured to store a boundary value indicating a boundary position within said sequence, said boundary position dividing said sequence into a first portion on a first side of said boundary position within said sequence and a second portion on a second side of said boundary position within said sequence; program instruction execution circuitry configured to execute program instructions; resource control circuitry (16, 22) coupled to said boundary indicating circuitry and configured: when said program execution circuitry is executing a first program, to respond to one or more program instructions of said first program querying how many of said plurality of hardware resources are present within said apparatus by returning a first value corresponding to a sum of a number of hardware resources within said first portion and a number of hardware resources within said second portion; and when said program execution circuitry is executing a second program, to respond to one or more program instructions of said second program querying how many of said plurality of hardware resources are present within said apparatus by returning a second value specified by said boundary value and corresponding to said number of hardware resources within said second portion. a plurality of hardware resources (12, 18) with a predetermined sequence such that each of said plurality of hardware resources has a predetermined position within said sequence; boundary indicating circuitry (14, 20) configured to store a boundary value indicating a boundary position within said sequence, said boundary position dividing said sequence into a first portion on a first side of said boundary position within said sequence and a second portion on a second side of said boundary position within said sequence; program instruction execution circuitry configured to execute program instructions; resource control circuitry (16, 22) coupled to said boundary indicating circuitry and configured: when said program execution circuitry is executing a first program, to respond to one or more program instructions of said first program querying how many of said plurality of hardware resources are present within said apparatus by returning a first value corresponding to a sum of a number of hardware resources within said first portion and a number of hardware resources within said second portion; and when said program execution circuitry is executing a second program, to respond to one or more program instructions of said second program querying how many of said plurality of hardware resources are present within said apparatus by returning a second value specified by said boundary value and corresponding to said number of hardware resources within said second portion. when said program execution circuitry is executing a first program, to respond to one or more program instructions of said first program querying how many of said plurality of hardware resources are present within said apparatus by returning a first value corresponding to a sum of a number of hardware resources within said first portion and a number of hardware resources within said second portion; and when said program execution circuitry is executing a second program, to respond to one or more program instructions of said second program querying how many of said plurality of hardware resources are present within said apparatus by returning a second value specified by said boundary value and corresponding to said number of hardware resources within said second portion.