Implemented call_all_cpus(), and get_cpuid() properly (tested only the latter, though).

The "data_ptr" parameter is now only freed if you specify SMP_MSG_FLAG_FREE_ARG
when sending the ICI message.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14519 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2005-10-25 18:18:11 +00:00
parent 6cd505cee7
commit ef7bac18bb
3 changed files with 67 additions and 25 deletions
+7 -3
View File
@@ -21,14 +21,18 @@ enum {
SMP_MSG_GLOBAL_INVL_PAGE,
SMP_MSG_RESCHEDULE,
SMP_MSG_CPU_HALT,
SMP_MSG_1,
SMP_MSG_CALL_FUNCTION,
};
enum {
SMP_MSG_FLAG_ASYNC = 0,
SMP_MSG_FLAG_SYNC,
SMP_MSG_FLAG_ASYNC = 0x0,
SMP_MSG_FLAG_SYNC = 0x1,
SMP_MSG_FLAG_FREE_ARG = 0x2,
};
typedef void (*smp_call_func)(uint32 data1, int32 currentCPU, uint32 data2, uint32 data3);
#ifdef __cplusplus
extern "C" {
#endif