Back to index

glibc  2.9
Defines | Variables
sysdep-cancel.h File Reference
#include <sysdep.h>
#include <tls.h>
#include <nptl/pthreadP.h>

Go to the source code of this file.

Defines

#define PSEUDO(name, syscall_name, args)
#define DOCARGS_0   str lr, [sp, #-4]!;
#define UNDOCARGS_0
#define DOCARGS_1   stmfd sp!, {r0, lr};
#define UNDOCARGS_1   ldr r0, [sp], #4;
#define DOCARGS_2   stmfd sp!, {r0, r1, lr};
#define UNDOCARGS_2   ldmfd sp!, {r0, r1};
#define DOCARGS_3   stmfd sp!, {r0, r1, r2, lr};
#define UNDOCARGS_3   ldmfd sp!, {r0, r1, r2};
#define DOCARGS_4   stmfd sp!, {r0, r1, r2, r3, lr};
#define UNDOCARGS_4   ldmfd sp!, {r0, r1, r2, r3};
#define DOCARGS_5   DOCARGS_4
#define UNDOCARGS_5   UNDOCARGS_4
#define DOCARGS_6   DOCARGS_5
#define UNDOCARGS_6   UNDOCARGS_5
#define CENABLE   bl PLTJMP(__libc_enable_asynccancel)
#define CDISABLE   bl PLTJMP(__libc_disable_asynccancel)
#define __local_multiple_threads   __libc_multiple_threads
#define SINGLE_THREAD_P   __builtin_expect (__local_multiple_threads == 0, 1)
#define RTLD_SINGLE_THREAD_P

Variables

int __local_multiple_threads attribute_hidden

Define Documentation

#define __local_multiple_threads   __libc_multiple_threads

Definition at line 86 of file sysdep-cancel.h.

#define CDISABLE   bl PLTJMP(__libc_disable_asynccancel)

Definition at line 85 of file sysdep-cancel.h.

#define CENABLE   bl PLTJMP(__libc_enable_asynccancel)

Definition at line 84 of file sysdep-cancel.h.

#define DOCARGS_0   str lr, [sp, #-4]!;

Definition at line 58 of file sysdep-cancel.h.

#define DOCARGS_1   stmfd sp!, {r0, lr};

Definition at line 61 of file sysdep-cancel.h.

#define DOCARGS_2   stmfd sp!, {r0, r1, lr};

Definition at line 64 of file sysdep-cancel.h.

#define DOCARGS_3   stmfd sp!, {r0, r1, r2, lr};

Definition at line 67 of file sysdep-cancel.h.

#define DOCARGS_4   stmfd sp!, {r0, r1, r2, r3, lr};

Definition at line 70 of file sysdep-cancel.h.

#define DOCARGS_5   DOCARGS_4

Definition at line 73 of file sysdep-cancel.h.

#define DOCARGS_6   DOCARGS_5

Definition at line 76 of file sysdep-cancel.h.

#define PSEUDO (   name,
  syscall_name,
  args 
)
Value:
.section ".text";                                              \
    PSEUDO_PROLOGUE;                                           \
  .type __##syscall_name##_nocancel,%function;                        \
  .globl __##syscall_name##_nocancel;                                 \
  __##syscall_name##_nocancel:                                        \
    DO_CALL (syscall_name, args);                              \
    PSEUDO_RET;                                                       \
  .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel;    \
  ENTRY (name);                                                       \
    SINGLE_THREAD_P;                                           \
    DOARGS_##args;                                             \
    bne .Lpseudo_cancel;                                       \
    DO_CALL (syscall_name, 0);                                        \
    UNDOARGS_##args;                                           \
    cmn r0, $4096;                                             \
    PSEUDO_RET;                                                       \
  .Lpseudo_cancel:                                             \
    DOCARGS_##args;  /* save syscall args etc. around CENABLE.  */    \
    CENABLE;                                                   \
    mov ip, r0;             /* put mask in safe place.  */                   \
    UNDOCARGS_##args;       /* restore syscall args.  */                     \
    swi SYS_ify (syscall_name);    /* do the call.  */                \
    str r0, [sp, $-4]!; /* save syscall return value.  */             \
    mov r0, ip;             /* get mask back.  */                            \
    CDISABLE;                                                  \
    ldmfd sp!, {r0, lr}; /* retrieve return value and address.  */    \
    UNDOARGS_##args;                                           \
    cmn r0, $4096;

Definition at line 28 of file sysdep-cancel.h.

Value:
__builtin_expect (THREAD_GETMEM (THREAD_SELF, \
                               header.multiple_threads) == 0, 1)

Definition at line 134 of file sysdep-cancel.h.

Definition at line 97 of file sysdep-cancel.h.

#define UNDOCARGS_0

Definition at line 59 of file sysdep-cancel.h.

#define UNDOCARGS_1   ldr r0, [sp], #4;

Definition at line 62 of file sysdep-cancel.h.

#define UNDOCARGS_2   ldmfd sp!, {r0, r1};

Definition at line 65 of file sysdep-cancel.h.

#define UNDOCARGS_3   ldmfd sp!, {r0, r1, r2};

Definition at line 68 of file sysdep-cancel.h.

#define UNDOCARGS_4   ldmfd sp!, {r0, r1, r2, r3};

Definition at line 71 of file sysdep-cancel.h.

#define UNDOCARGS_5   UNDOCARGS_4

Definition at line 74 of file sysdep-cancel.h.

#define UNDOCARGS_6   UNDOCARGS_5

Definition at line 77 of file sysdep-cancel.h.


Variable Documentation

Definition at line 25 of file init-first.c.