Annotation of qemu/roms/SLOF/clients/net-snk/include/systemcall.h, revision 1.1.1.2

1.1       root        1: /******************************************************************************
                      2:  * Copyright (c) 2004, 2008 IBM Corporation
                      3:  * All rights reserved.
                      4:  * This program and the accompanying materials
                      5:  * are made available under the terms of the BSD License
                      6:  * which accompanies this distribution, and is available at
                      7:  * http://www.opensource.org/licenses/bsd-license.php
                      8:  *
                      9:  * Contributors:
                     10:  *     IBM Corporation - initial implementation
                     11:  *****************************************************************************/
                     12: 
                     13: 
                     14: #ifndef SYSTEMCALL_H
                     15: #define SYSTEMCALL_H
                     16: 
1.1.1.2 ! root       17: static inline int
1.1       root       18: syscall (int nr)
                     19: {
                     20:     register unsigned long r0 asm("r0") = nr;
                     21:     register unsigned long r3 asm("r3");
                     22:     asm volatile ("sc" : "=r" (r3) 
                     23:                        : "r" (r0));
                     24:     return r3;
                     25: } 
                     26: 
1.1.1.2 ! root       27: static inline long
1.1       root       28: syscall_1 (int nr, long arg0)
                     29: {
                     30:     register unsigned long r0 asm("r0") = nr;
                     31:     register unsigned long r3 asm("r3") = arg0;
                     32:     asm volatile ("sc" : "=r" (r3) 
                     33:                        : "0" (r3), "r" (r0));
                     34:     return r3;
                     35: } 
                     36: 
1.1.1.2 ! root       37: static inline long
1.1       root       38: syscall_2 (int nr, long arg0, long arg1)
                     39: {
                     40:     register unsigned long r0 asm("r0") = nr;
                     41:     register unsigned long r3 asm("r3") = arg0;
                     42:     register unsigned long r4 asm("r4") = arg1;
                     43:     asm volatile ("sc" : "=r" (r3) 
                     44:                       : "0" (r3), "r" (r4), "r" (r0)); 
                     45:     return r3;
                     46: } 
                     47: 
1.1.1.2 ! root       48: static inline long
1.1       root       49: syscall_3 (int nr, long arg0, long arg1, long arg2)
                     50: {
                     51:     register unsigned long r0 asm("r0") = nr;
                     52:     register unsigned long r3 asm("r3") = arg0;
                     53:     register unsigned long r4 asm("r4") = arg1;
                     54:     register unsigned long r5 asm("r5") = arg2;
                     55:     asm volatile ("sc" : "=r" (r3) 
                     56:                       : "0" (r3), "r" (r4), "r" (r5), "r" (r0)); 
                     57:     return r3;
                     58: } 
                     59: 
1.1.1.2 ! root       60: static inline long
1.1       root       61: syscall_4 (int nr, long arg0, long arg1, long arg2, long arg3)
                     62: {
                     63:     register unsigned long r0 asm("r0") = nr;
                     64:     register unsigned long r3 asm("r3") = arg0;
                     65:     register unsigned long r4 asm("r4") = arg1;
                     66:     register unsigned long r5 asm("r5") = arg2;
                     67:     register unsigned long r6 asm("r6") = arg3;
                     68:     asm volatile ("sc" : "=r" (r3) 
                     69:                       : "0" (r3), "r" (r4), "r" (r5), "r" (r6), "r" (r0)); 
                     70:     return r3;
                     71: } 
                     72: 
1.1.1.2 ! root       73: static inline long
1.1       root       74: syscall_5 (int nr, long arg0, long arg1, long arg2, long arg3, 
                     75:           long arg4)
                     76: {
                     77:     register unsigned long r0 asm("r0") = nr;
                     78:     register unsigned long r3 asm("r3") = arg0;
                     79:     register unsigned long r4 asm("r4") = arg1;
                     80:     register unsigned long r5 asm("r5") = arg2;
                     81:     register unsigned long r6 asm("r6") = arg3;
                     82:     register unsigned long r7 asm("r7") = arg4;
                     83:     asm volatile ("sc" : "=r" (r3) 
                     84:                       : "0" (r3), "r" (r4), "r" (r5), 
                     85:                         "r" (r6), "r" (r7), "r" (r0)); 
                     86:     return r3;
                     87: } 
                     88: 
1.1.1.2 ! root       89: static inline long
1.1       root       90: syscall_6 (int nr, long arg0, long arg1, long arg2, long arg3, 
                     91:           long arg4, long arg5)
                     92: {
                     93:     register unsigned long r0 asm("r0") = nr;
                     94:     register unsigned long r3 asm("r3") = arg0;
                     95:     register unsigned long r4 asm("r4") = arg1;
                     96:     register unsigned long r5 asm("r5") = arg2;
                     97:     register unsigned long r6 asm("r6") = arg3;
                     98:     register unsigned long r7 asm("r7") = arg4;
                     99:     register unsigned long r8 asm("r8") = arg5;
                    100:     asm volatile ("sc" : "=r" (r3) 
                    101:                       : "0" (r3), "r" (r4), "r" (r5), 
                    102:                         "r" (r6), "r" (r7), "r" (r8), "r" (r0)); 
                    103:     return r3;
                    104: } 
                    105: 
1.1.1.2 ! root      106: static inline long
1.1       root      107: syscall_7 (int nr, long arg0, long arg1, long arg2, long arg3, 
                    108:           long arg4, long arg5, long arg6)
                    109: {
                    110:     register unsigned long r0 asm("r0") = nr;
                    111:     register unsigned long r3 asm("r3") = arg0;
                    112:     register unsigned long r4 asm("r4") = arg1;
                    113:     register unsigned long r5 asm("r5") = arg2;
                    114:     register unsigned long r6 asm("r6") = arg3;
                    115:     register unsigned long r7 asm("r7") = arg4;
                    116:     register unsigned long r8 asm("r8") = arg5;
                    117:     register unsigned long r9 asm("r9") = arg6;
                    118:     asm volatile ("sc" : "=r" (r3) 
                    119:                       : "0" (r3), "r" (r4), "r" (r5), 
                    120:                         "r" (r6), "r" (r7), "r" (r8), 
                    121:                         "r" (r9), "r" (r0)); 
                    122:     return r3;
                    123: } 
                    124: 
                    125: 
                    126: #define _exit_sc_nr 1
                    127: #define _read_sc_nr 2
                    128: #define _write_sc_nr 3
                    129: #define _open_sc_nr 4
                    130: #define _close_sc_nr 5
                    131: #define _getpid_sc_nr 6
                    132: #define _brk_sc_nr 7
                    133: #define _ioctl_sc_nr 8
                    134: #define _socket_sc_nr 9
                    135: #define _wait4_sc_nr 10
                    136: #define _sigreturn_sc_nr 11
                    137: #define _rt_sigaction_sc_nr 12
                    138: #define _lseek_sc_nr 13
                    139: 
                    140: #define _sock_sc_nr 1
                    141: #define _sendto_sc_nr 2
                    142: #define _send_sc_nr 3
                    143: #define _recv_sc_nr 4
                    144: 
                    145: 
                    146: //typedef unsigned long size_t; 
                    147: 
                    148: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.