Changeset 7325 in vbox
- Timestamp:
- Mar 6, 2008 3:00:47 PM (17 years ago)
- svn:sync-xref-src-repo-rev:
- 28742
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/mp.h
r7291 r7325 38 38 */ 39 39 40 /** Maximum number of CPUs we support in one system. 40 /** Maximum number of CPUs we support in one system. 41 41 * @remarks The current limit in Windows (affinity mask) 42 42 * … … 45 45 46 46 47 /** A CPU identifier. 48 * @remarks This doesn't have to correspond to the APIC ID (intel/amd). Nor 47 /** A CPU identifier. 48 * @remarks This doesn't have to correspond to the APIC ID (intel/amd). Nor 49 49 * does it have to correspond to the bits in the affinity mask, at 50 50 * least not until we've sorted out Windows NT. */ … … 59 59 /** 60 60 * Gets the identifier of the CPU executing the call. 61 * 61 * 62 62 * When called from a system mode where scheduling is active, like ring-3 or 63 63 * kernel mode with interrupts enabled on some systems, no assumptions should 64 64 * be made about the current CPU when the call returns. 65 * 65 * 66 66 * @returns CPU Id. 67 67 */ 68 68 RTDECL(RTCPUID) RTMpCpuId(void); 69 70 /** 71 * Checks if a CPU is online or not. 72 * 73 * @returns true/false accordingly. 74 * @param idCpu The identifier of the CPU. 75 */ 76 RTDECL(bool) RTMpIsCpuOnline(RTCPUID idCpu); 77 78 /** 79 * Checks if a CPU exist or not / validates a CPU id. 80 * 81 * @returns true/false accordingly. 82 * @param idCpu The identifier of the CPU. 83 */ 84 RTDECL(bool) RTMpDoesCpuExist(RTCPUID idCpu); 85 86 /** @todo we need some kind of RTCPUSET and converstion between RTCPUID and it. */ 87 69 88 70 89 #ifdef IN_RING0 … … 73 92 * Worker function passed to RTMpOnAll, RTMpOnOthers and RTMpOnSpecific that 74 93 * is to be called on the target cpus. 75 * 94 * 76 95 * @param idCpu The identifier for the CPU the function is called on. 77 96 * @param pvUser1 The 1st user argument. … … 84 103 /** 85 104 * Executes a function on each (online) CPU in the system. 86 * 105 * 87 106 * @returns IPRT status code. 88 107 * @retval VINF_SUCCESS on success. 89 108 * @retval VERR_NOT_SUPPORTED if this kind of operation isn't supported by the system. 90 * 109 * 91 110 * @param pfnWorker The worker function. 92 * @param pvUser1 The first user argument for the worker. 93 * @param pvUser2 The second user argument for the worker. 111 * @param pvUser1 The first user argument for the worker. 112 * @param pvUser2 The second user argument for the worker. 94 113 * 95 114 * @remarks The execution isn't in any way guaranteed to be simultaneous, … … 100 119 /** 101 120 * Executes a function on a all other (online) CPUs in the system. 102 * 121 * 103 122 * @returns IPRT status code. 104 123 * @retval VINF_SUCCESS on success. 105 124 * @retval VERR_NOT_SUPPORTED if this kind of operation isn't supported by the system. 106 * 125 * 107 126 * @param pfnWorker The worker function. 108 * @param pvUser1 The first user argument for the worker. 109 * @param pvUser2 The second user argument for the worker. 110 * 127 * @param pvUser1 The first user argument for the worker. 128 * @param pvUser2 The second user argument for the worker. 129 * 111 130 * @remarks The execution isn't in any way guaranteed to be simultaneous, 112 131 * it might even be serial (cpu by cpu). … … 116 135 /** 117 136 * Executes a function on a specific CPU in the system. 118 * 137 * 119 138 * @returns IPRT status code. 120 139 * @retval VINF_SUCCESS on success. … … 122 141 * @retval VERR_CPU_OFFLINE if the CPU is offline. 123 142 * @retval VERR_CPU_NOT_FOUND if the CPU wasn't found. 124 * 143 * 125 144 * @param idCpu The id of the CPU. 126 145 * @param pfnWorker The worker function. 127 * @param pvUser1 The first user argument for the worker. 128 * @param pvUser2 The second user argument for the worker. 146 * @param pvUser1 The first user argument for the worker. 147 * @param pvUser2 The second user argument for the worker. 129 148 */ 130 149 RTDECL(int) RTMpOnSpecific(RTCPUID idCpu, PFNRTMPWORKER pfnWorker, void *pvUser1, void *pvUser2);
Note:
See TracChangeset
for help on using the changeset viewer.