Back to index

glibc  2.9
Defines | Variables
sysdep-cancel.h File Reference
#include <sysdep.h>
#include <linuxthreads/internals.h>

Go to the source code of this file.

Defines

#define PSEUDO(name, syscall_name, args)
#define DOCARGS_0   stmfd sp!, {r7, lr}
#define UNDOCARGS_0
#define RESTORE_LR_0   ldmfd sp!, {r7, lr}
#define DOCARGS_1   stmfd sp!, {r0, r1, r7, lr}
#define UNDOCARGS_1   ldr r0, [sp], #8
#define RESTORE_LR_1   RESTORE_LR_0
#define DOCARGS_2   stmfd sp!, {r0, r1, r7, lr}
#define UNDOCARGS_2   ldmfd sp!, {r0, r1}
#define RESTORE_LR_2   RESTORE_LR_0
#define DOCARGS_3   stmfd sp!, {r0, r1, r2, r3, r7, lr}
#define UNDOCARGS_3   ldmfd sp!, {r0, r1, r2, r3}
#define RESTORE_LR_3   RESTORE_LR_0
#define DOCARGS_4   stmfd sp!, {r0, r1, r2, r3, r7, lr}
#define UNDOCARGS_4   ldmfd sp!, {r0, r1, r2, r3}
#define RESTORE_LR_4   RESTORE_LR_0
#define DOCARGS_5   stmfd sp!, {r0, r1, r2, r3, r4, r7, lr}
#define UNDOCARGS_5   ldmfd sp!, {r0, r1, r2, r3}
#define RESTORE_LR_5   ldmfd sp!, {r4, r7, lr}
#define DOCARGS_6   stmfd sp!, {r0, r1, r2, r3, r7, lr}
#define UNDOCARGS_6   ldmfd sp!, {r0, r1, r2, r3}
#define RESTORE_LR_6   RESTORE_LR_0
#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)

Variables

int __local_multiple_threads attribute_hidden

Define Documentation

#define __local_multiple_threads   __libc_multiple_threads

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

#define CDISABLE   bl PLTJMP(__libc_disable_asynccancel)

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

#define CENABLE   bl PLTJMP(__libc_enable_asynccancel)

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

#define DOCARGS_0   stmfd sp!, {r7, lr}

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

#define DOCARGS_1   stmfd sp!, {r0, r1, r7, lr}

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

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

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

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

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

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

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

#define DOCARGS_5   stmfd sp!, {r0, r1, r2, r3, r4, r7, lr}

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

#define DOCARGS_6   stmfd sp!, {r0, r1, r2, r3, r7, lr}

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

#define PSEUDO (   name,
  syscall_name,
  args 
)
Value:
.section ".text";                                              \
    PSEUDO_PROLOGUE;                                           \
  ENTRY (name);                                                       \
    SINGLE_THREAD_P;                                           \
    DOARGS_##args;                                             \
    bne .Lpseudo_cancel;                                       \
    mov ip, r7;                                                       \
    ldr r7, =SYS_ify (syscall_name);                                  \
    swi 0x0;                                                   \
    mov r7, ip;                                                       \
    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.  */                     \
    ldr r7, =SYS_ify (syscall_name);                                  \
    swi 0x0;         /* do the call.  */                       \
    mov r7, r0;             /* save syscall return value.  */         \
    mov r0, ip;             /* get mask back.  */                            \
    CDISABLE;                                                  \
    mov r0, r7;             /* retrieve return value.  */                    \
    RESTORE_LR_##args;                                                \
    UNDOARGS_##args;                                           \
    cmn r0, $4096;

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

#define RESTORE_LR_0   ldmfd sp!, {r7, lr}

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

#define RESTORE_LR_1   RESTORE_LR_0

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

#define RESTORE_LR_2   RESTORE_LR_0

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

#define RESTORE_LR_3   RESTORE_LR_0

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

#define RESTORE_LR_4   RESTORE_LR_0

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

#define RESTORE_LR_5   ldmfd sp!, {r4, r7, lr}

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

#define RESTORE_LR_6   RESTORE_LR_0

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

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

#define UNDOCARGS_0

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

#define UNDOCARGS_1   ldr r0, [sp], #8

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

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

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

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

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

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

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

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

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

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

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


Variable Documentation

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