Annotation of MiNT/doc/mintbind.h, revision 1.1.1.1

1.1       root        1: #ifndef _MINTBIND_H
                      2: 
                      3: #define _MINTBIND_H
                      4: 
                      5: 
                      6: 
                      7: #ifdef __TURBOC__
                      8: 
                      9: # ifndef __TOS
                     10: 
                     11: #  include <tos.h>
                     12: 
                     13: # endif
                     14: 
                     15: #else
                     16: 
                     17: #ifndef _OSBIND_H
                     18: 
                     19: #include <osbind.h>
                     20: 
                     21: #endif
                     22: 
                     23: #endif
                     24: 
                     25: 
                     26: 
                     27: #ifdef __GNUC_INLINE__
                     28: 
                     29: #define trap_1_wwlw(n, a, b, c)                                                \
                     30: 
                     31: ({                                                                     \
                     32: 
                     33:        register long retvalue __asm__("d0");                           \
                     34: 
                     35:        short _a = (short)(a);                                          \
                     36: 
                     37:        long  _b = (long) (b);                                          \
                     38: 
                     39:        short  _c = (short) (c);                                        \
                     40: 
                     41:                                                                        \
                     42: 
                     43:        __asm__ volatile                                                \
                     44: 
                     45:        ("\
                     46: 
                     47:                movw    %4,sp@-; \
                     48: 
                     49:                movl    %3,sp@-; \
                     50: 
                     51:                movw    %2,sp@-; \
                     52: 
                     53:                movw    %1,sp@-; \
                     54: 
                     55:                trap    #1;     \
                     56: 
                     57:                lea    10(sp),sp "                                      \
                     58: 
                     59:        : "=r"(retvalue)                        /* outputs */           \
                     60: 
                     61:        : "g"(n), "r"(_a), "r"(_b), "r"(_c)     /* inputs  */           \
                     62: 
                     63:        : "d0", "d1", "d2", "a0", "a1", "a2"    /* clobbered regs */    \
                     64: 
                     65:        );                                                              \
                     66: 
                     67:        retvalue;                                                       \
                     68: 
                     69: })
                     70: 
                     71: 
                     72: 
                     73: #define trap_1_wwww(n, a, b, c)                                                \
                     74: 
                     75: ({                                                                     \
                     76: 
                     77:        register long retvalue __asm__("d0");                           \
                     78: 
                     79:        short _a = (short)(a);                                          \
                     80: 
                     81:        short  _b = (short)(b);                                         \
                     82: 
                     83:        short  _c = (short)(c);                                         \
                     84: 
                     85:                                                                        \
                     86: 
                     87:        __asm__ volatile                                                \
                     88: 
                     89:        ("\
                     90: 
                     91:                movw    %4,sp@-; \
                     92: 
                     93:                movw    %3,sp@-; \
                     94: 
                     95:                movw    %2,sp@-; \
                     96: 
                     97:                movw    %1,sp@-; \
                     98: 
                     99:                trap    #1;     \
                    100: 
                    101:                addqw   #8,sp " \
                    102: 
                    103:        : "=r"(retvalue)                        /* outputs */           \
                    104: 
                    105:        : "g"(n), "r"(_a), "r"(_b), "r"(_c)     /* inputs  */           \
                    106: 
                    107:        : "d0", "d1", "d2", "a0", "a1", "a2"    /* clobbered regs */    \
                    108: 
                    109:        );                                                              \
                    110: 
                    111:        retvalue;                                                       \
                    112: 
                    113: })
                    114: 
                    115: 
                    116: 
                    117: #define trap_1_wwwl(n, a, b, c)                                                \
                    118: 
                    119: ({                                                                     \
                    120: 
                    121:        register long retvalue __asm__("d0");                           \
                    122: 
                    123:        short _a = (short)(a);                                          \
                    124: 
                    125:        short  _b = (short)(b);                                         \
                    126: 
                    127:        long  _c = (long)(c);                                           \
                    128: 
                    129:                                                                        \
                    130: 
                    131:        __asm__ volatile                                                \
                    132: 
                    133:        ("\
                    134: 
                    135:                movl    %4,sp@-; \
                    136: 
                    137:                movw    %3,sp@-; \
                    138: 
                    139:                movw    %2,sp@-; \
                    140: 
                    141:                movw    %1,sp@-; \
                    142: 
                    143:                trap    #1;     \
                    144: 
                    145:                lea     sp@(10),sp "                                    \
                    146: 
                    147:        : "=r"(retvalue)                        /* outputs */           \
                    148: 
                    149:        : "g"(n), "r"(_a), "r"(_b), "r"(_c)     /* inputs  */           \
                    150: 
                    151:        : "d0", "d1", "d2", "a0", "a1", "a2"    /* clobbered regs */    \
                    152: 
                    153:        );                                                              \
                    154: 
                    155:        retvalue;                                                       \
                    156: 
                    157: })
                    158: 
                    159: 
                    160: 
                    161: #define trap_1_wwl(n, a, b)                                            \
                    162: 
                    163: ({                                                                     \
                    164: 
                    165:        register long retvalue __asm__("d0");                           \
                    166: 
                    167:        short _a = (short)(a);                                          \
                    168: 
                    169:        long  _b = (long) (b);                                          \
                    170: 
                    171:                                                                        \
                    172: 
                    173:        __asm__ volatile                                                \
                    174: 
                    175:        ("\
                    176: 
                    177:                movl    %3,sp@-; \
                    178: 
                    179:                movw    %2,sp@-; \
                    180: 
                    181:                movw    %1,sp@-; \
                    182: 
                    183:                trap    #1;     \
                    184: 
                    185:                addqw    #8,sp "                                        \
                    186: 
                    187:        : "=r"(retvalue)                        /* outputs */           \
                    188: 
                    189:        : "g"(n), "r"(_a), "r"(_b)              /* inputs  */           \
                    190: 
                    191:        : "d0", "d1", "d2", "a0", "a1", "a2"    /* clobbered regs */    \
                    192: 
                    193:        );                                                              \
                    194: 
                    195:        retvalue;                                                       \
                    196: 
                    197: })
                    198: 
                    199: 
                    200: 
                    201: #else
                    202: 
                    203: 
                    204: 
                    205: #ifdef __GNUC__
                    206: 
                    207: # ifndef __MSHORT__
                    208: 
                    209: #  define __LONG_TRAPS__
                    210: 
                    211: # endif
                    212: 
                    213: #endif
                    214: 
                    215: 
                    216: 
                    217: #ifndef __LONG_TRAPS__
                    218: 
                    219: # ifndef trap_1_w
                    220: 
                    221: #  define trap_1_w(n)          gemdos(n)
                    222: 
                    223: #  define trap_1_wl(n,a)               gemdos(n, (long)(a))
                    224: 
                    225: #  define trap_1_wll(n, a, b)  gemdos(n, (long)(a), (long)(b))
                    226: 
                    227: #  define trap_1_ww(n,a)               gemdos(n, a)
                    228: 
                    229: #  define trap_1_www(n,a,b)    gemdos(n, a, b)
                    230: 
                    231: #  define trap_1_wwlll(n,a,b,c,d) gemdos(n, a, (long)(b), (long)(c), (long)(d))
                    232: 
                    233: #  define trap_1_wwll(n, a, b, c)      gemdos(n, a, (long)(b), (long)(c))
                    234: 
                    235: #  define trap_1_wlw(n, a, b)  gemdos(n, (long)(a), b)
                    236: 
                    237: #  define trap_1_wlww(n, a, b, c)      gemdos(n, (long)(a), b, c)
                    238: 
                    239: #  define trap_13_w(n)         bios(n)
                    240: 
                    241: #  define trap_14_w(n)         xbios(n)
                    242: 
                    243: # endif
                    244: 
                    245: # define trap_1_wwlw(n,a,b,c)  gemdos(n, a, (long)(b), c)
                    246: 
                    247: # define trap_1_wwww(n,a,b,c)  gemdos(n, a, b, c)
                    248: 
                    249: # define trap_1_wwl(n, a, b)   gemdos(n, a, (long)(b))
                    250: 
                    251: # define trap_1_wwwl(n,a,b,c)  gemdos(n, a, b, (long)(c))
                    252: 
                    253: #endif /* __LONG_TRAPS__ */
                    254: 
                    255: 
                    256: 
                    257: #endif /* __GNUC_INLINE__ */
                    258: 
                    259: 
                    260: 
                    261: /* note: none of these functions is declared as (void), despite
                    262: 
                    263:  * what the man pages say; this is so that programs can check
                    264: 
                    265:  * for a -32 return error from TOS if MiNT is not installed
                    266: 
                    267:  */
                    268: 
                    269: 
                    270: 
                    271: #define        Syield()                                                \
                    272: 
                    273:                (short)trap_1_w(0xff)
                    274: 
                    275: #define Fpipe(ptr)                                             \
                    276: 
                    277:                (short)trap_1_wl(0x100, (long)(ptr))
                    278: 
                    279: #define Fcntl(f, arg, cmd)                                     \
                    280: 
                    281:                trap_1_wwlw(0x104, (short)(f), (long)(arg), (short)(cmd))
                    282: 
                    283: #define Finstat(f)                                             \
                    284: 
                    285:                trap_1_ww(0x105, (short)(f))
                    286: 
                    287: #define Foutstat(f)                                            \
                    288: 
                    289:                trap_1_ww(0x106, (short)(f))
                    290: 
                    291: #define Fgetchar(f, mode)                                      \
                    292: 
                    293:                trap_1_www(0x107, (short)(f), (short)(mode))
                    294: 
                    295: #define Fputchar(f, ch, mode)                                  \
                    296: 
                    297:                trap_1_wwlw(0x108, (short)(f), (long)(ch), (short)(mode))
                    298: 
                    299: 
                    300: 
                    301: #define Pwait()                                                        \
                    302: 
                    303:                trap_1_w(0x109)
                    304: 
                    305: #define Pnice(delta)                                           \
                    306: 
                    307:                (short)trap_1_ww(0x10a, (short)(delta))
                    308: 
                    309: #define Pgetpid()                                              \
                    310: 
                    311:                (short)trap_1_w(0x10b)
                    312: 
                    313: #define Pgetppid()                                             \
                    314: 
                    315:                (short)trap_1_w(0x10c)
                    316: 
                    317: #define Pgetpgrp()                                             \
                    318: 
                    319:                (short)trap_1_w(0x10d)
                    320: 
                    321: #define Psetpgrp(pid, grp)                                     \
                    322: 
                    323:                (short)trap_1_www(0x10e, (short)(pid), (short)(grp))
                    324: 
                    325: #define Pgetuid()                                              \
                    326: 
                    327:                (short)trap_1_w(0x10f)
                    328: 
                    329: #define Psetuid(id)                                            \
                    330: 
                    331:                (short)trap_1_ww(0x110, (short)(id))
                    332: 
                    333: #define Pkill(pid, sig)                                                \
                    334: 
                    335:                (short)trap_1_www(0x111, (short)(pid), (short)(sig))
                    336: 
                    337: #define Psignal(sig, handler)                                  \
                    338: 
                    339:                trap_1_wwl(0x112, (short)(sig), (long)(handler))
                    340: 
                    341: #define Pvfork()                                               \
                    342: 
                    343:                (short)trap_1_w(0x113)
                    344: 
                    345: #define Pgetgid()                                              \
                    346: 
                    347:                (short)trap_1_w(0x114)
                    348: 
                    349: #define Psetgid(id)                                            \
                    350: 
                    351:                (short)trap_1_ww(0x115, (short)(id))
                    352: 
                    353: #define Psigblock(mask)                                                \
                    354: 
                    355:                trap_1_wl(0x116, (unsigned long)(mask))
                    356: 
                    357: #define Psigsetmask(mask)                                      \
                    358: 
                    359:                trap_1_wl(0x117, (unsigned long)(mask))
                    360: 
                    361: #define Pusrval(arg)                                           \
                    362: 
                    363:                trap_1_wl(0x118, (long)(arg))
                    364: 
                    365: #define Pdomain(arg)                                           \
                    366: 
                    367:                (short)trap_1_ww(0x119, (short)(arg))
                    368: 
                    369: #define Psigreturn()                                           \
                    370: 
                    371:                (short)trap_1_w(0x11a)
                    372: 
                    373: #define Pfork()                                                        \
                    374: 
                    375:                (short)trap_1_w(0x11b)
                    376: 
                    377: #define Pwait3(flag, rusage)                                   \
                    378: 
                    379:                trap_1_wwl(0x11c, (short)(flag), (long)(rusage))
                    380: 
                    381: #define Fselect(time, rfd, wfd, xfd)                           \
                    382: 
                    383:                (short)trap_1_wwlll(0x11d, (unsigned short)(time), (long)(rfd), \
                    384: 
                    385:                                (long)(wfd), (long)(xfd))
                    386: 
                    387: #define Prusage(rsp)                                           \
                    388: 
                    389:                (short)trap_1_wl(0x11e, (long)(rsp))
                    390: 
                    391: #define Psetlimit(i, val)                                      \
                    392: 
                    393:                trap_1_wwl(0x11f, (short)(i), (long)(val))
                    394: 
                    395: 
                    396: 
                    397: #define Talarm(sec)                                            \
                    398: 
                    399:                trap_1_wl(0x120, (long)(sec))
                    400: 
                    401: #define Pause()                                                        \
                    402: 
                    403:                (short)trap_1_w(0x121)
                    404: 
                    405: #define Sysconf(n)                                             \
                    406: 
                    407:                trap_1_ww(0x122, (short)(n))
                    408: 
                    409: #define Psigpending()                                          \
                    410: 
                    411:                trap_1_w(0x123)
                    412: 
                    413: #define Dpathconf(name, which)                                 \
                    414: 
                    415:                trap_1_wlw(0x124, (long)(name), (short)(which))
                    416: 
                    417: 
                    418: 
                    419: #define Pmsg(mode, mbox, msg)                                  \
                    420: 
                    421:                trap_1_wwll(0x125, (short)(mode), (long)(mbox), (long)(msg))
                    422: 
                    423: #define Fmidipipe(pid, in, out)                                        \
                    424: 
                    425:                trap_1_wwww(0x126, (short)(pid), (short)(in),(short)(out))
                    426: 
                    427: #define Prenice(pid, delta)                                    \
                    428: 
                    429:                (short)trap_1_www(0x127, (short)(pid), (short)(delta))
                    430: 
                    431: #define Dopendir(name, flag)                                   \
                    432: 
                    433:                trap_1_wlw(0x128, (long)(name), (short)(flag))
                    434: 
                    435: #define Dreaddir(len, handle, buf)                             \
                    436: 
                    437:                trap_1_wwll(0x129, (short)(len), (long)(handle), (long)(buf))
                    438: 
                    439: #define Drewinddir(handle)                                     \
                    440: 
                    441:                trap_1_wl(0x12a, (long)(handle))
                    442: 
                    443: #define Dclosedir(handle)                                      \
                    444: 
                    445:                trap_1_wl(0x12b, (long)(handle))
                    446: 
                    447: #define Fxattr(flag, name, buf)                                        \
                    448: 
                    449:                trap_1_wwll(0x12c, (short)(flag), (long)(name), (long)(buf))
                    450: 
                    451: #define Flink(old, new)                                                \
                    452: 
                    453:                trap_1_wll(0x12d, (long)(old), (long)(new))
                    454: 
                    455: #define Fsymlink(old, new)                                     \
                    456: 
                    457:                trap_1_wll(0x12e, (long)(old), (long)(new))
                    458: 
                    459: #define Freadlink(siz, buf, linknm)                            \
                    460: 
                    461:                trap_1_wwll(0x12f, (short)(siz), (long)(buf), (long)(linknm))
                    462: 
                    463: #define Dcntl(cmd, name, arg)                                  \
                    464: 
                    465:                trap_1_wwll(0x130, (short)(cmd), (long)(name), (long)(arg))
                    466: 
                    467: #define Fchown(name, uid, gid)                                 \
                    468: 
                    469:                trap_1_wlww(0x131, (long)(name), (short)(uid), (short)(gid))
                    470: 
                    471: #define Fchmod(name, mode)                                     \
                    472: 
                    473:                trap_1_wlw(0x132, (long)(name), (short)(mode))
                    474: 
                    475: #define Pumask(mask)                                           \
                    476: 
                    477:                (short)trap_1_ww(0x133, (short)(mask))
                    478: 
                    479: #define Psemaphore(mode, id, tmout)                            \
                    480: 
                    481:                trap_1_wwll(0x134, (short)(mode), (long)(id), (long)(tmout))
                    482: 
                    483: #define Dlock(mode, drive)                                     \
                    484: 
                    485:                trap_1_www(0x135, (short)(mode), (short)(drive))
                    486: 
                    487: #define Psigpause(mask)                                                \
                    488: 
                    489:                (short)trap_1_wl(0x136, (unsigned long)(mask))
                    490: 
                    491: #define Psigaction(sig, act, oact)                             \
                    492: 
                    493:                trap_1_wwll(0x137, (short)(sig), (long)(act), (long)(oact))
                    494: 
                    495: #define Pgeteuid()                                             \
                    496: 
                    497:                (short)trap_1_w(0x138)
                    498: 
                    499: #define Pgetegid()                                             \
                    500: 
                    501:                (short)trap_1_w(0x139)
                    502: 
                    503: #define Pwaitpid(pid,flag, rusage)                             \
                    504: 
                    505:                trap_1_wwwl(0x13a, (short)(pid), (short)(flag), (long)(rusage))
                    506: 
                    507: 
                    508: 
                    509: #endif /* _MINTBIND_H */
                    510: 

unix.superglobalmegacorp.com

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