Annotation of MiNT/doc/mintbind.h, revision 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.