linux_futex.c (e0d3ea8c655d56fd364dba6d91dec8d3e443cb80) linux_futex.c (5dd1d097f8e4d1a4c6df13f9ccae296792eac064)
1/* $NetBSD: linux_futex.c,v 1.7 2006/07/24 19:01:49 manu Exp $ */
2
3/*-
4 * Copyright (c) 2005 Emmanuel Dreyfus, all rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 922 unchanged lines hidden (view full) ---

931 if (f2 != NULL)
932 futex_put(f2, NULL);
933 futex_put(f, NULL);
934 td->td_retval[0] = ret;
935 break;
936
937 case LINUX_FUTEX_LOCK_PI:
938 /* not yet implemented */
1/* $NetBSD: linux_futex.c,v 1.7 2006/07/24 19:01:49 manu Exp $ */
2
3/*-
4 * Copyright (c) 2005 Emmanuel Dreyfus, all rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 922 unchanged lines hidden (view full) ---

931 if (f2 != NULL)
932 futex_put(f2, NULL);
933 futex_put(f, NULL);
934 td->td_retval[0] = ret;
935 break;
936
937 case LINUX_FUTEX_LOCK_PI:
938 /* not yet implemented */
939 linux_msg(td,
940 "linux_sys_futex: "
941 "op LINUX_FUTEX_LOCK_PI not implemented\n");
942 LIN_SDT_PROBE0(futex, linux_sys_futex, unimplemented_lock_pi);
939 pem = pem_find(td->td_proc);
940 if ((pem->flags & LINUX_XUNSUP_FUTEXPIOP) == 0) {
941 linux_msg(td,
942 "linux_sys_futex: "
943 "unsupported futex_pi op\n");
944 pem->flags |= LINUX_XUNSUP_FUTEXPIOP;
945 LIN_SDT_PROBE0(futex, linux_sys_futex,
946 unimplemented_lock_pi);
947 }
943 LIN_SDT_PROBE1(futex, linux_sys_futex, return, ENOSYS);
944 return (ENOSYS);
945
946 case LINUX_FUTEX_UNLOCK_PI:
947 /* not yet implemented */
948 LIN_SDT_PROBE1(futex, linux_sys_futex, return, ENOSYS);
949 return (ENOSYS);
950
951 case LINUX_FUTEX_UNLOCK_PI:
952 /* not yet implemented */
948 linux_msg(td,
949 "linux_sys_futex: "
950 "op LINUX_FUTEX_UNLOCK_PI not implemented\n");
951 LIN_SDT_PROBE0(futex, linux_sys_futex, unimplemented_unlock_pi);
953 pem = pem_find(td->td_proc);
954 if ((pem->flags & LINUX_XUNSUP_FUTEXPIOP) == 0) {
955 linux_msg(td,
956 "linux_sys_futex: "
957 "unsupported futex_pi op\n");
958 pem->flags |= LINUX_XUNSUP_FUTEXPIOP;
959 LIN_SDT_PROBE0(futex, linux_sys_futex,
960 unimplemented_unlock_pi);
961 }
952 LIN_SDT_PROBE1(futex, linux_sys_futex, return, ENOSYS);
953 return (ENOSYS);
954
955 case LINUX_FUTEX_TRYLOCK_PI:
956 /* not yet implemented */
962 LIN_SDT_PROBE1(futex, linux_sys_futex, return, ENOSYS);
963 return (ENOSYS);
964
965 case LINUX_FUTEX_TRYLOCK_PI:
966 /* not yet implemented */
957 linux_msg(td,
958 "linux_sys_futex: "
959 "op LINUX_FUTEX_TRYLOCK_PI not implemented\n");
960 LIN_SDT_PROBE0(futex, linux_sys_futex,
961 unimplemented_trylock_pi);
967 pem = pem_find(td->td_proc);
968 if ((pem->flags & LINUX_XUNSUP_FUTEXPIOP) == 0) {
969 linux_msg(td,
970 "linux_sys_futex: "
971 "unsupported futex_pi op\n");
972 pem->flags |= LINUX_XUNSUP_FUTEXPIOP;
973 LIN_SDT_PROBE0(futex, linux_sys_futex,
974 unimplemented_trylock_pi);
975 }
962 LIN_SDT_PROBE1(futex, linux_sys_futex, return, ENOSYS);
963 return (ENOSYS);
964
965 case LINUX_FUTEX_REQUEUE:
966
967 /*
968 * Glibc does not use this operation since version 2.3.3,
969 * as it is racy and replaced by FUTEX_CMP_REQUEUE operation.

--- 10 unchanged lines hidden (view full) ---

980 deprecated_requeue);
981 }
982
983 LIN_SDT_PROBE1(futex, linux_sys_futex, return, EINVAL);
984 return (EINVAL);
985
986 case LINUX_FUTEX_WAIT_REQUEUE_PI:
987 /* not yet implemented */
976 LIN_SDT_PROBE1(futex, linux_sys_futex, return, ENOSYS);
977 return (ENOSYS);
978
979 case LINUX_FUTEX_REQUEUE:
980
981 /*
982 * Glibc does not use this operation since version 2.3.3,
983 * as it is racy and replaced by FUTEX_CMP_REQUEUE operation.

--- 10 unchanged lines hidden (view full) ---

994 deprecated_requeue);
995 }
996
997 LIN_SDT_PROBE1(futex, linux_sys_futex, return, EINVAL);
998 return (EINVAL);
999
1000 case LINUX_FUTEX_WAIT_REQUEUE_PI:
1001 /* not yet implemented */
988 linux_msg(td,
989 "linux_sys_futex: "
990 "op FUTEX_WAIT_REQUEUE_PI not implemented\n");
991 LIN_SDT_PROBE0(futex, linux_sys_futex,
992 unimplemented_wait_requeue_pi);
1002 pem = pem_find(td->td_proc);
1003 if ((pem->flags & LINUX_XUNSUP_FUTEXPIOP) == 0) {
1004 linux_msg(td,
1005 "linux_sys_futex: "
1006 "unsupported futex_pi op\n");
1007 pem->flags |= LINUX_XUNSUP_FUTEXPIOP;
1008 LIN_SDT_PROBE0(futex, linux_sys_futex,
1009 unimplemented_wait_requeue_pi);
1010 }
993 LIN_SDT_PROBE1(futex, linux_sys_futex, return, ENOSYS);
994 return (ENOSYS);
995
996 case LINUX_FUTEX_CMP_REQUEUE_PI:
997 /* not yet implemented */
1011 LIN_SDT_PROBE1(futex, linux_sys_futex, return, ENOSYS);
1012 return (ENOSYS);
1013
1014 case LINUX_FUTEX_CMP_REQUEUE_PI:
1015 /* not yet implemented */
998 linux_msg(td,
999 "linux_sys_futex: "
1000 "op LINUX_FUTEX_CMP_REQUEUE_PI not implemented\n");
1001 LIN_SDT_PROBE0(futex, linux_sys_futex,
1002 unimplemented_cmp_requeue_pi);
1016 pem = pem_find(td->td_proc);
1017 if ((pem->flags & LINUX_XUNSUP_FUTEXPIOP) == 0) {
1018 linux_msg(td,
1019 "linux_sys_futex: "
1020 "unsupported futex_pi op\n");
1021 pem->flags |= LINUX_XUNSUP_FUTEXPIOP;
1022 LIN_SDT_PROBE0(futex, linux_sys_futex,
1023 unimplemented_cmp_requeue_pi);
1024 }
1003 LIN_SDT_PROBE1(futex, linux_sys_futex, return, ENOSYS);
1004 return (ENOSYS);
1005
1006 default:
1007 linux_msg(td,
1008 "linux_sys_futex: unknown op %d\n", args->op);
1009 LIN_SDT_PROBE1(futex, linux_sys_futex, unknown_operation,
1010 args->op);

--- 223 unchanged lines hidden ---
1025 LIN_SDT_PROBE1(futex, linux_sys_futex, return, ENOSYS);
1026 return (ENOSYS);
1027
1028 default:
1029 linux_msg(td,
1030 "linux_sys_futex: unknown op %d\n", args->op);
1031 LIN_SDT_PROBE1(futex, linux_sys_futex, unknown_operation,
1032 args->op);

--- 223 unchanged lines hidden ---