MIL_ID ContextAppId, | //in |
MIL_INT64 InquireType, | //in |
MIL_INT64 TypeFlag, | //in |
MIL_INT64 TypeValue, | //in |
void *UserVarPtr | //out |
This function inquires about a setting of a MIL multi-core processing application environment. This function can return whether MIL can use multi-core processing to execute certain parts of MIL functions. It can also return how multi-core processing is performed.
In multi-thread environments, an MappInquireMp() call returns information that applies to all application threads running MIL, unless the specific setting was overridden for a specific thread using MthrControlMp(); in which case, you should use MthrInquireMp() to obtain information about that thread.
Specifies the identifier of the application context to use. This only applies to a DMIL environment.
For specifying the application context
|
|||||||||||||||||||||||||||||||||||||||
Value | Description | ||||||||||||||||||||||||||||||||||||||
M_DEFAULT |
Specifies the current application context. |
||||||||||||||||||||||||||||||||||||||
Application Context Identifier |
Specifies the application context identifier. |
Specifies the type of multi-core processing application environment setting about which to inquire.
See the Parameter associations section for possible values that can be specified.
Specifies additional information regarding the inquired setting. This parameter must be set to M_DEFAULT if not used.
See the Parameter associations section for possible values that can be specified.
Specifies the address in which to write the requested information. Since the MappInquireMp() function also returns the requested information, you can set this parameter to M_NULL.
See the Parameter associations section for possible values that can be returned.
The table below lists possible values for the InquireType and TypeValue parameters and possible values returned to the UserVarPtr parameter.
Note that TypeValue should be set to M_DEFAULT if it is not used.
For inquiring about multi-core processing application
environment setting
|
|||||||||||||||||||||||||||||||||||||||
InquireType | Description | ||||||||||||||||||||||||||||||||||||||
TypeValue | |||||||||||||||||||||||||||||||||||||||
UserVarPtr - Possible values returned |
|||||||||||||||||||||||||||||||||||||||
M_CORE_AFFINITY_MASK |
Inquires about the core affinity bit-mask, which indicates the CPU cores that can be used to run the multi-core processing part of MIL functions. The first element of the array represents the first 64 CPU cores. The least-significant bit of the first element represents CPU core 0. The most-significant bit of the first element represents CPU core 63. The least-significant bit of the second element represents CPU core 64 and so on. A CPU core is available if its corresponding bit is enabled (1). If its corresponding bit is disabled (0), the CPU core is not available. CPU cores always have the same indices, as long as the hardware in your computer and the operating system does not change. SET (summarize)Inquires about the core affinity bit-mask, which indicates the CPU cores that can be used to run the multi-core processing part of MIL functions. SET (more details...) |
||||||||||||||||||||||||||||||||||||||
UserVarPtr |
Data type info: Data
type: array of type MIL_UINT64 [optionally, in C++:
a reference to a std::vector<MIL_UINT64>
] MORE
Returns one of the following. (summarize)Data type info: Data
type: array of type MIL_UINT64 [optionally, in C++:
a reference to a std::vector<MIL_UINT64>
] MORE
Returns one of the following. (more details...) |
||||||||||||||||||||||||||||||||||||||
Non-zero initialized bit-mask array |
Specifies a non-zero initialized bit-mask array. INFO |
||||||||||||||||||||||||||||||||||||||
Zero-initialized bit-mask |
Specifies that all CPU cores that are available to the process running your MIL application can be used (M_CORE_AFFINITY_MASK is set to M_ALL). |
||||||||||||||||||||||||||||||||||||||
M_CORE_AFFINITY_MASK_ARRAY_SIZE |
Inquires the size of the array required to store the core affinity bit-mask. See M_CORE_AFFINITY_MASK in MappControlMp() for more details. The size of the array might represent a larger number of CPU cores than there are available in your computer. This is because the CPU cores might not be indexed by the operating system successively and/or are less than a multiple of 64. (summarize)Inquires the size of the array required to store the core affinity bit-mask. (more details...) |
||||||||||||||||||||||||||||||||||||||
UserVarPtr |
Data type info: Data
type: address of a MIL_INT
Returns the following. (summarize)Data type info: Data
type: address of a MIL_INT
Returns the following. (more details...) |
||||||||||||||||||||||||||||||||||||||
Value >= 1 |
Specifies the size of the core affinity mask array. |
||||||||||||||||||||||||||||||||||||||
M_CORE_AFFINITY_MASK_PROCESS |
Inquires about the core affinity bit-mask that the operating system assigned to the process running your MIL application. This mask indicates all CPU cores available to the process at the time when the application was allocated using MappAlloc(). The first element of the array represents the first 64 CPU cores. The least-significant bit of the first element represents CPU core 0. The most-significant bit of the first element represents CPU core 63. The least-significant bit of the second element represents CPU core 64 and so on. A CPU core is available if its corresponding bit is enabled (1). If its corresponding bit is disabled (0), the CPU core is not available. CPU cores always have the same indices, as long as the hardware in your computer and the operating system does not change. (summarize)Inquires about the core affinity bit-mask that the operating system assigned to the process running your MIL application. (more details...) |
||||||||||||||||||||||||||||||||||||||
UserVarPtr |
Data type info: Data
type: array of type MIL_UINT64 [optionally, in C++:
a reference to a std::vector<MIL_UINT64>
] MORE
Returns the core affinity bit-mask. Data type info: Data
type: array of type MIL_UINT64 [optionally, in C++:
a reference to a std::vector<MIL_UINT64>
] MORE
Returns the core affinity bit-mask. |
||||||||||||||||||||||||||||||||||||||
M_CORE_MAX |
Inquires the maximum number of CPU cores to use to process the multi-core processing part of each MIL function. SET (summarize)Inquires the maximum number of CPU cores to use to process the multi-core processing part of each MIL function. SET (more details...) |
||||||||||||||||||||||||||||||||||||||
UserVarPtr |
Data type info: Data
type: address of a MIL_INT
Returns the following. (summarize)Data type info: Data
type: address of a MIL_INT
Returns the following. (more details...) |
||||||||||||||||||||||||||||||||||||||
1 <= Value <= 65535 |
Specifies the maximum number of CPU cores to use. INFO |
||||||||||||||||||||||||||||||||||||||
M_CORE_MAX_FOR_COPY |
Inquires the maximum number of CPU cores to use to process the multi-core processing part of copy type functions. SET (summarize)Inquires the maximum number of CPU cores to use to process the multi-core processing part of copy type functions. SET (more details...) |
||||||||||||||||||||||||||||||||||||||
UserVarPtr |
Data type info: Data
type: address of a MIL_INT
Returns one of the following. (summarize)Data type info: Data
type: address of a MIL_INT
Returns one of the following. (more details...) |
||||||||||||||||||||||||||||||||||||||
M_FOLLOW_CORE_MAX |
Specifies to use the current value of M_CORE_MAX. |
||||||||||||||||||||||||||||||||||||||
1 <= Value <= 65535 |
Specifies the maximum number of CPU cores to use. INFO |
||||||||||||||||||||||||||||||||||||||
M_CORE_MEMORY_BANK |
Inquires the index of a memory bank local to the specified CPU core. (summarize)Inquires the index of a memory bank local to the specified CPU core. (more details...) |
||||||||||||||||||||||||||||||||||||||
TypeValue |
Specifies the CPU core. (summarize)Specifies the CPU core. (more details...) |
||||||||||||||||||||||||||||||||||||||
UserVarPtr |
Data type info: Data
type: address of a MIL_INT
Returns one of the following. (summarize)Data type info: Data
type: address of a MIL_INT
Returns one of the following. (more details...) |
||||||||||||||||||||||||||||||||||||||
-1 |
Specifies that no memory bank is local to the specified CPU core or the CPU core is not available to the process running your MIL application. |
||||||||||||||||||||||||||||||||||||||
Value >= 0 |
Specifies the memory bank index. |
||||||||||||||||||||||||||||||||||||||
M_CORE_NUM_PROCESS |
Inquires the number of CPU cores available to the process running your MIL application. Note that if the operating system restricts the available CPU cores, the number of CPU cores returned differs from the number of CPU cores present in your computer. Use M_CORE_AFFINITY_MASK_PROCESS to establish which CPU cores are available to the process running your MIL application. (summarize)Inquires the number of CPU cores available to the process running your MIL application. (more details...) |
||||||||||||||||||||||||||||||||||||||
UserVarPtr |
Data type info: Data
type: address of a MIL_INT
Returns the following. (summarize)Data type info: Data
type: address of a MIL_INT
Returns the following. (more details...) |
||||||||||||||||||||||||||||||||||||||
Value >= 1 |
Specifies the number of CPU cores. |
||||||||||||||||||||||||||||||||||||||
M_CORE_SHARING |
Inquires whether MIL multi-core processing can use multiple logical cores per physical CPU core, when hyper-threading is enabled and supported. SET (summarize)Inquires whether MIL multi-core processing can use multiple logical cores per physical CPU core, when hyper-threading is enabled and supported. SET (more details...) |
||||||||||||||||||||||||||||||||||||||
UserVarPtr |
Data type info: Data
type: address of a MIL_INT
Returns one of the following. (summarize)Data type info: Data
type: address of a MIL_INT
Returns one of the following. (more details...) |
||||||||||||||||||||||||||||||||||||||
M_DISABLE |
Specifies to use only one logical core per physical CPU core, if hyper-threading is enabled. |
||||||||||||||||||||||||||||||||||||||
M_ENABLE |
Specifies to use all the logical cores of a physical CPU core, if hyper-threading is enabled. |
||||||||||||||||||||||||||||||||||||||
M_MEMORY_BANK_AFFINITY_MASK |
Inquires about a memory bank affinity bit-mask. This mask identifies the memory banks local to the CPU cores available to the process running your MIL application. The operating system establishes the CPU cores available to the process. The first element of the array represents the first 64 memory banks. The least-significant bit of the first element represents memory bank 0. The most-significant bit of the first element represents memory bank 63. The least-significant bit of the second element represents memory bank 64 and so on. A memory bank is local to the CPU cores available to the process if the memory bank's corresponding bit is enabled (1). If its corresponding bit is disabled (0), the memory bank is not local to the CPU cores available to the process or is not present in your computer. (summarize)Inquires about a memory bank affinity bit-mask. (more details...) |
||||||||||||||||||||||||||||||||||||||
TypeValue |
Specifies the following. (summarize)Specifies the following. (more details...) |
||||||||||||||||||||||||||||||||||||||
M_LOCAL |
Specifies that M_MEMORY_BANK_AFFINITY_MASK returns an affinity bit-mask that identifies local memory banks. |
||||||||||||||||||||||||||||||||||||||
UserVarPtr |
Data type info: Data
type: array of type MIL_UINT64 [optionally, in C++:
a reference to a std::vector<MIL_UINT64>
] MORE
Returns the memory bank affinity bit-mask. Data type info: Data
type: array of type MIL_UINT64 [optionally, in C++:
a reference to a std::vector<MIL_UINT64>
] MORE
Returns the memory bank affinity bit-mask. |
||||||||||||||||||||||||||||||||||||||
M_MEMORY_BANK_AFFINITY_MASK_ARRAY_SIZE |
Inquires the size of the array required to store the memory bank affinity bit-mask. The size of the array might represent a larger number of memory banks than available in your computer. This is because the memory banks might not be indexed by the operating system successively and/or are less than a multiple of 64. (summarize)Inquires the size of the array required to store the memory bank affinity bit-mask. (more details...) |
||||||||||||||||||||||||||||||||||||||
UserVarPtr |
Data type info: Data
type: address of a MIL_INT
Returns the following. (summarize)Data type info: Data
type: address of a MIL_INT
Returns the following. (more details...) |
||||||||||||||||||||||||||||||||||||||
Value >= 1 |
Specifies the size of the memory bank affinity array. |
||||||||||||||||||||||||||||||||||||||
M_MEMORY_BANK_CORE_AFFINITY_MASK |
Inquires about the core affinity bit-mask representing the CPU cores local to the specified memory bank. The first element of the array represents the first 64 CPU cores. The least-significant bit of the first element represents CPU core 0. The most-significant bit of the first element represents CPU core 63. The least-significant bit of the second element represents CPU core 64 and so on. A CPU core is available if its corresponding bit is enabled (1). If its corresponding bit is disabled (0), the CPU core is not available. CPU cores always have the same indices, as long as the hardware in your computer and the operating system does not change. (summarize)Inquires about the core affinity bit-mask representing the CPU cores local to the specified memory bank. (more details...) |
||||||||||||||||||||||||||||||||||||||
TypeValue |
Specifies the memory bank. (summarize)Specifies the memory bank. (more details...) |
||||||||||||||||||||||||||||||||||||||
UserVarPtr |
Data type info: Data
type: array of type MIL_UINT64 [optionally, in C++:
a reference to a std::vector<MIL_UINT64>
] MORE
Returns the core affinity bit-mask. Data type info: Data
type: array of type MIL_UINT64 [optionally, in C++:
a reference to a std::vector<MIL_UINT64>
] MORE
Returns the core affinity bit-mask. |
||||||||||||||||||||||||||||||||||||||
M_MEMORY_BANK_NUM |
Inquires the number of memory banks local to the CPU cores available to the process running your MIL application. The operating system establishes the CPU cores available to the process. (summarize)Inquires the number of memory banks local to the CPU cores available to the process running your MIL application. (more details...) |
||||||||||||||||||||||||||||||||||||||
UserVarPtr |
Data type info: Data
type: address of a MIL_INT
Returns the following. (summarize)Data type info: Data
type: address of a MIL_INT
Returns the following. (more details...) |
||||||||||||||||||||||||||||||||||||||
Value >= 0 |
Specifies the number of memory banks. |
||||||||||||||||||||||||||||||||||||||
M_MP_FORCED_DISABLE |
Inquires whether MIL applications can use multi-core processing to execute certain parts of MIL functions. This is set using the MILConfig utility. This setting takes precedence over M_MP_USE. (summarize)Inquires whether MIL applications can use multi-core processing to execute certain parts of MIL functions. (more details...) |
||||||||||||||||||||||||||||||||||||||
UserVarPtr |
Data type info: Data
type: address of a MIL_INT
Returns one of the following. (summarize)Data type info: Data
type: address of a MIL_INT
Returns one of the following. (more details...) |
||||||||||||||||||||||||||||||||||||||
M_NO |
Specifies that multi-core processing works normally and all control types are in effect. |
||||||||||||||||||||||||||||||||||||||
M_YES |
Specifies that multi-core processing in MIL is disabled regardless of any other control type. |
||||||||||||||||||||||||||||||||||||||
M_MP_PRIORITY |
Inquires the processing priority of the multi-core processing part of MIL functions. SET (summarize)Inquires the processing priority of the multi-core processing part of MIL functions. SET (more details...) |
||||||||||||||||||||||||||||||||||||||
UserVarPtr |
Data type info: Data
type: address of a MIL_INT
Returns one of the following. (summarize)Data type info: Data
type: address of a MIL_INT
Returns one of the following. (more details...) |
||||||||||||||||||||||||||||||||||||||
M_ABOVE_NORMAL |
Specifies that the multi-core processing part of MIL functions will be executed with above normal priority. |
||||||||||||||||||||||||||||||||||||||
M_BELOW_NORMAL |
Specifies that the multi-core processing part of MIL functions will be executed with below normal priority. |
||||||||||||||||||||||||||||||||||||||
M_HIGHEST |
Specifies that the multi-core processing part of MIL functions will be executed with high priority. INFO |
||||||||||||||||||||||||||||||||||||||
M_IDLE |
Specifies that the multi-core processing part of MIL functions will be executed with idle priority. INFO |
||||||||||||||||||||||||||||||||||||||
M_LOWEST |
Specifies that the multi-core processing part of MIL functions will be executed with low priority. |
||||||||||||||||||||||||||||||||||||||
M_NORMAL |
Specifies that the multi-core processing part of MIL functions will be executed with normal priority. |
||||||||||||||||||||||||||||||||||||||
M_TIME_CRITICAL |
Specifies that the multi-core processing part of MIL functions will be executed with time critical priority. INFO |
||||||||||||||||||||||||||||||||||||||
M_MP_USE |
Inquires whether multi-core processing can be used to execute certain parts of MIL functions. M_MP_FORCED_DISABLE takes precedence over this setting. SET (summarize)Inquires whether multi-core processing can be used to execute certain parts of MIL functions. SET (more details...) |
||||||||||||||||||||||||||||||||||||||
UserVarPtr |
Data type info: Data
type: address of a MIL_INT
Returns one of the following. (summarize)Data type info: Data
type: address of a MIL_INT
Returns one of the following. (more details...) |
||||||||||||||||||||||||||||||||||||||
M_DISABLE |
Specifies that multi-core processing cannot be used. |
||||||||||||||||||||||||||||||||||||||
M_ENABLE |
Specifies that multi-core processing can be used. |
Header | Include mil.h. |
Library | Use mil.lib. |
DLL | Requires mil.dll, milmp.dll. |