Implemented new syscalls for 32 and 64 bit atomic operations.

They are only used if the architecture doesn't support them directly.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4360 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
beveloper
2003-08-21 23:02:00 +00:00
parent fb16941a02
commit 50e0ce4bee
13 changed files with 453 additions and 138 deletions
+18 -6
View File
@@ -75,11 +75,11 @@ enum {
SYSCALL_GET_PROC_TABLE,
SYSCALL_GETRLIMIT,
SYSCALL_SETRLIMIT,
SYSCALL_ATOMIC_ADD,
SYSCALL_ATOMIC_AND,
SYSCALL_ATOMIC_OR,
SYSCALL_ATOMIC_SET,
SYSCALL_TEST_AND_SET, /* 70 */
SYSCALL_unused_66,
SYSCALL_unused_67,
SYSCALL_unused_68,
SYSCALL_unused_69,
SYSCALL_unused_70, /* 70 */
SYSCALL_SYSCTL,
SYSCALL_SOCKET,
SYSCALL_ACCESS,
@@ -113,7 +113,7 @@ enum {
SYSCALL_REMOVE_ATTR,
SYSCALL_RENAME_ATTR,
SYSCALL_RETURN_FROM_SIGNAL,
SYSCALL_KILL, // obsolete
SYSCALL_unused_104,
SYSCALL_SIGACTION, /* 105 */
SYSCALL_OPEN_INDEX_DIR,
SYSCALL_CREATE_INDEX,
@@ -135,6 +135,18 @@ enum {
SYSCALL_SET_AREA_PROTECTION,
SYSCALL_RESIZE_AREA,
SYSCALL_AREA_FOR, /* 125 */
SYSCALL_ATOMIC_SET,
SYSCALL_ATOMIC_TEST_AND_SET,
SYSCALL_ATOMIC_ADD,
SYSCALL_ATOMIC_AND,
SYSCALL_ATOMIC_OR, /* 130 */
SYSCALL_ATOMIC_READ,
SYSCALL_ATOMIC_SET64,
SYSCALL_ATOMIC_TEST_AND_SET64,
SYSCALL_ATOMIC_ADD64,
SYSCALL_ATOMIC_AND64, /* 135 */
SYSCALL_ATOMIC_OR64,
SYSCALL_ATOMIC_READ64,
};
int syscall_dispatcher(unsigned long call_num, void *arg_buffer, uint64 *call_ret);