starlet/src/sysdepum.h File Reference

Go to the source code of this file.

Defines

#define _LINUX_I386_SYSDEP_H   1
#define SYS_ify(syscall_name)   __NR_##syscall_name
#define L(name)   .L##name
#define INLINE_SYSCALL(name, nr, args...)
#define INLINE_SYSCALL1(name, nr, args...)
#define INLINE_SYSCALL3(name, nr, args...)
#define INLINE_SYSCALLTEST(name, nr, args...)
#define LOADARGS_0
#define LOADARGS_1
#define LOADARGS_2   LOADARGS_1
#define LOADARGS_3   LOADARGS_1
#define LOADARGS_4   LOADARGS_1
#define LOADARGS_5   LOADARGS_1
#define RESTOREARGS_0
#define RESTOREARGS_1   "bpopl .L__X'%k2, %k2\n\t"
#define RESTOREARGS_2   RESTOREARGS_1
#define RESTOREARGS_3   RESTOREARGS_1
#define RESTOREARGS_4   RESTOREARGS_1
#define RESTOREARGS_5   RESTOREARGS_1
#define ASMFMT_0()
#define ASMFMT_1(arg1)   , "acdSD" (arg1)
#define ASMFMT_2(arg1, arg2)   , "adCD" (arg1), "c" (arg2)
#define ASMFMT_3(arg1, arg2, arg3)   , "aCD" (arg1), "c" (arg2), "d" (arg3)
#define ASMFMT_4(arg1, arg2, arg3, arg4)   , "aD" (arg1), "c" (arg2), "d" (arg3), "S" (arg4)
#define ASMFMT_5(arg1, arg2, arg3, arg4, arg5)   , "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5)

Functions

 asm (".L__X'%ebx = 1\n\t"".L__X'%ecx = 2\n\t"".L__X'%edx = 2\n\t"".L__X'%eax = 3\n\t"".L__X'%esi = 3\n\t"".L__X'%edi = 3\n\t"".L__X'%ebp = 3\n\t"".L__X'%esp = 3\n\t"".macro bpushl name reg\n\t"".if 1 - \\name\n\t"".if 2 - \\name\n\t""pushl %ebx\n\t"".else\n\t""xchgl \\reg, %ebx\n\t"".endif\n\t"".endif\n\t"".endm\n\t"".macro bpopl name reg\n\t"".if 1 - \\name\n\t"".if 2 - \\name\n\t""popl %ebx\n\t"".else\n\t""xchgl \\reg, %ebx\n\t"".endif\n\t"".endif\n\t"".endm\n\t"".macro bmovl name reg\n\t"".if 1 - \\name\n\t"".if 2 - \\name\n\t""movl \\reg, %ebx\n\t"".endif\n\t"".endif\n\t"".endm\n\t")

Variables

int errno


Define Documentation

#define _LINUX_I386_SYSDEP_H   1

Definition at line 21 of file sysdepum.h.

 
#define ASMFMT_0 (  ) 

Definition at line 336 of file sysdepum.h.

#define ASMFMT_1 ( arg1   )     , "acdSD" (arg1)

Definition at line 337 of file sysdepum.h.

#define ASMFMT_2 ( arg1,
arg2   )     , "adCD" (arg1), "c" (arg2)

Definition at line 339 of file sysdepum.h.

#define ASMFMT_3 ( arg1,
arg2,
arg3   )     , "aCD" (arg1), "c" (arg2), "d" (arg3)

Definition at line 341 of file sysdepum.h.

#define ASMFMT_4 ( arg1,
arg2,
arg3,
arg4   )     , "aD" (arg1), "c" (arg2), "d" (arg3), "S" (arg4)

Definition at line 343 of file sysdepum.h.

#define ASMFMT_5 ( arg1,
arg2,
arg3,
arg4,
arg5   )     , "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5)

Definition at line 345 of file sysdepum.h.

#define INLINE_SYSCALL ( name,
nr,
args...   ) 

Value:

({                                                                            \
    unsigned int resultvar;                                                   \
    asm volatile (                                                            \
    LOADARGS_##nr                                                             \
    "movl %1, %%eax\n\t"                                                      \
    "int _0x80\n\t"                                                           \
    RESTOREARGS_##nr                                                          \
    : "=a" (resultvar)                                                        \
    : "i" (__NR_##name) ASMFMT_##nr(args) : "memory", "cc");                  \
    if (resultvar >= 0xfffff001)                                              \
      {                                                                       \
        errno= (-resultvar);                                          \
        resultvar = 0xffffffff;                                               \
      }                                                                       \
    (int) resultvar; })

Definition at line 248 of file sysdepum.h.

Referenced by sys_adjwsl(), sys_ascefc(), sys_asctoid(), sys_assign(), sys_cancel(), sys_cantim(), sys_canwak(), sys_cli(), sys_clrast(), sys_clref(), sys_cmkrnl(), sys_cpu_capabilities(), sys_create_region_32(), sys_crelnm(), sys_crelnt(), sys_crembx(), sys_creprc(), sys_cretva(), sys_crmpsc(), sys_dacefc(), sys_dassgn(), sys_dclast(), sys_dclexh(), sys_dellnm(), sys_delmbx(), sys_deltva(), sys_deq(), sys_device_scan(), sys_dlcefc(), sys_enq(), sys_enqw(), sys_exit(), sys_expreg(), sys_fao(), sys_faol(), sys_find_held(), sys_forcex(), sys_get_security(), sys_getdvi(), sys_getdviw(), sys_getjpi(), sys_getjpiw(), sys_getlki(), sys_getlkiw(), sys_getsyi(), sys_getsyiw(), sys_gettim(), sys_getuai(), sys_hiber(), sys_imgact(), sys_imgfix(), sys_imgsta(), sys_lckpag(), sys_lkwset(), sys_mgblsc(), sys_mount(), sys_numtim(), sys_process_affinity(), sys_process_capabilities(), sys_purgws(), sys_qio(), sys_qiow(), sys_readef(), sys_resume(), sys_rundwn(), sys_schdwk(), sys_set_implicit_affinity(), sys_set_security(), sys_setast(), sys_setef(), sys_setime(), sys_setimr(), sys_setpri(), sys_setprn(), sys_setprv(), sys_setrwm(), sys_sndopr(), sys_synch(), sys_trnlnm(), sys_ulkpag(), sys_ulwset(), sys_waitfr(), sys_wake(), sys_wfland(), and sys_wflor().

#define INLINE_SYSCALL1 ( name,
nr,
args...   ) 

Value:

({                                                                            \
    unsigned int resultvar;                                                   \
    asm volatile (                                                            \
    LOADARGS_##nr                                                             \
    "movl %1, %%eax\n\t"                                                      \
    "int _0x80\n\t"                                                           \
    RESTOREARGS_##nr                                                          \
    : "=a" (resultvar)                                                        \
    : "i" (__NR_##name) ASMFMT_##nr(args) : "memory", "cc");                  \
    if (resultvar >= 0xfffff001)                                              \
      {                                                                       \
        errno= (-resultvar);                                          \
        resultvar = 0xffffffff;                                               \
      }                                                                       \
    (int) resultvar; })

Definition at line 266 of file sysdepum.h.

Referenced by sys_close(), sys_connect(), sys_create(), sys_delete(), sys_disconnect(), sys_display(), sys_enter(), sys_erase(), sys_extend(), sys_filescan(), sys_find(), sys_flush(), sys_free(), sys_get(), sys_modify(), sys_nxtvol(), sys_open(), sys_parse(), sys_put(), sys_read(), sys_release(), sys_remove(), sys_rename(), sys_rewind(), sys_rmsrundwn(), sys_search(), sys_setddir(), sys_setddir2(), sys_setdfprot(), sys_space(), sys_ssvexc(), sys_truncate(), sys_update(), sys_wait(), and sys_write().

#define INLINE_SYSCALL3 ( name,
nr,
args...   ) 

Value:

({                                                                            \
    unsigned int resultvar;                                                   \
    asm volatile (                                                            \
    LOADARGS_##nr                                                             \
    "movl %1, %%eax\n\t"                                                      \
    "int _0x80\n\t"                                                           \
    RESTOREARGS_##nr                                                          \
    : "=a" (resultvar)                                                        \
    : "i" (__NR_##name) ASMFMT_##nr(args) : "memory", "cc");                  \
    if (resultvar >= 0xfffff001)                                              \
      {                                                                       \
        errno= (-resultvar);                                          \
        resultvar = 0xffffffff;                                               \
      }                                                                       \
    (int) resultvar; })

Definition at line 284 of file sysdepum.h.

Referenced by sys_asctim(), and sys_bintim().

#define INLINE_SYSCALLTEST ( name,
nr,
args...   ) 

Value:

({                                                                            \
    unsigned int resultvar;                                                   \
    asm volatile (                                                            \
    LOADARGS_##nr                                                             \
    "movl %1, %%eax\n\t"                                                      \
    "call 0xc0100010\n\t"                                                     \
    RESTOREARGS_##nr                                                          \
    : "=a" (resultvar)                                                        \
    : "i" (__NR_##name) ASMFMT_##nr(args) : "memory", "cc");                  \
    if (resultvar >= 0xfffff001)                                              \
      {                                                                       \
        errno= (-resultvar);                                          \
        resultvar = 0xffffffff;                                               \
      }                                                                       \
    (int) resultvar; })

Definition at line 302 of file sysdepum.h.

Referenced by sys_testcode().

#define L ( name   )     .L##name

Definition at line 37 of file sysdepum.h.

#define LOADARGS_0

Definition at line 319 of file sysdepum.h.

#define LOADARGS_1

Value:

"bpushl .L__X'%k2, %k2\n\t"                                                   \
    "bmovl .L__X'%k2, %k2\n\t"

Definition at line 320 of file sysdepum.h.

#define LOADARGS_2   LOADARGS_1

Definition at line 323 of file sysdepum.h.

#define LOADARGS_3   LOADARGS_1

Definition at line 324 of file sysdepum.h.

#define LOADARGS_4   LOADARGS_1

Definition at line 325 of file sysdepum.h.

#define LOADARGS_5   LOADARGS_1

Definition at line 326 of file sysdepum.h.

#define RESTOREARGS_0

Definition at line 328 of file sysdepum.h.

#define RESTOREARGS_1   "bpopl .L__X'%k2, %k2\n\t"

Definition at line 329 of file sysdepum.h.

#define RESTOREARGS_2   RESTOREARGS_1

Definition at line 331 of file sysdepum.h.

#define RESTOREARGS_3   RESTOREARGS_1

Definition at line 332 of file sysdepum.h.

#define RESTOREARGS_4   RESTOREARGS_1

Definition at line 333 of file sysdepum.h.

#define RESTOREARGS_5   RESTOREARGS_1

Definition at line 334 of file sysdepum.h.

#define SYS_ify ( syscall_name   )     __NR_##syscall_name

Definition at line 33 of file sysdepum.h.


Function Documentation

asm ( ".L__X'%  ebx = 1\n\t"".L__X'%ecx = 2\n\t"".L__X'%edx = 2\n\t"".L__X'%eax = 3\n\t"".L__X'%esi = 3\n\t"".L__X'%edi = 3\n\t"".L__X'%ebp = 3\n\t"".L__X'%esp = 3\n\t"".macro bpushl name reg\n\t"".if 1 - \\name\n\t"".if 2 - \\name\n\t""pushl %ebx\n\t"".else\n\t""xchgl \\reg,
%ebx\n\t"".endif\n\t"".endif\n\t"".endm\n\t"".macro bpopl name reg\n\t"".if 1-\\name\n\t"".if 2-\\name\n\t""popl%ebx\n\t"".else\n\t""xchgl\\  reg,
%ebx\n\t"".endif\n\t"".endif\n\t"".endm\n\t"".macro bmovl name reg\n\t"".if 1-\\name\n\t"".if 2-\\name\n\t""movl\\  reg,
%ebx\n\t"".endif\n\t"".endif\n\t"".endm\n\t"   
)


Variable Documentation

int errno


Generated on Fri Oct 9 10:25:59 2009 for FreeVMS by  doxygen 1.5.5