Annotation of lucent/sys/src/9/port/lib.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * functions (possibly) linked in, complete, from libc.
                      3:  */
                      4: 
                      5: /*
                      6:  * mem routines
                      7:  */
                      8: extern void    *memccpy(void*, void*, int, long);
                      9: extern void    *memset(void*, int, long);
                     10: extern int     memcmp(void*, void*, long);
                     11: extern void    *memmove(void*, void*, long);
                     12: extern void    *memchr(void*, int, long);
                     13: 
                     14: /*
                     15:  * string routines
                     16:  */
                     17: extern char    *strcat(char*, char*);
                     18: extern char    *strchr(char*, char);
                     19: extern int     strcmp(char*, char*);
                     20: extern char    *strcpy(char*, char*);
                     21: extern char    *strncat(char*, char*, long);
                     22: extern char    *strncpy(char*, char*, long);
                     23: extern int     strncmp(char*, char*, long);
                     24: extern long    strlen(char*);
                     25: extern int     atoi(char*);
                     26: 
                     27: enum
                     28: {
                     29:        UTFmax          = 3,            /* maximum bytes per rune */
                     30:        Runesync        = 0x80,         /* cannot represent part of a UTF sequence (<) */
                     31:        Runeself        = 0x80,         /* rune and UTF sequences are the same (<) */
                     32:        Runeerror       = 0x80,         /* decoding error in UTF */
                     33: };
                     34: 
                     35: /*
                     36:  * rune routines
                     37:  */
                     38: extern int     runetochar(char*, Rune*);
                     39: extern int     chartorune(Rune*, char*);
                     40: extern char*   utfrune(char*, long);
                     41: extern int     utflen(char*);
                     42: 
                     43: extern int     abs(int);
                     44: 
                     45: /*
                     46:  * print routines
                     47:  */
                     48: typedef
                     49: struct
                     50: {
                     51:        char*   out;            /* pointer to next output */
                     52:        char*   eout;           /* pointer to end */
                     53:        int     f1;
                     54:        int     f2;
                     55:        int     f3;
                     56:        int     chr;
                     57: } Fconv;
                     58: extern void    strconv(char*, Fconv*);
                     59: extern int     numbconv(void*, Fconv*);
                     60: extern char    *doprint(char*, char*, char*, void*);
                     61: extern int     fmtinstall(int, int (*)(void*, Fconv*));
                     62: extern int     sprint(char*, char*, ...);
                     63: extern int     snprint(char*, int, char*, ...);
                     64: extern int     print(char*, ...);
                     65: 
                     66: /*
                     67:  * one-of-a-kind
                     68:  */
                     69: extern long    strtol(char*, char**, int);
                     70: extern ulong   strtoul(char*, char**, int);
                     71: extern char    etext[];
                     72: extern char    edata[];
                     73: extern char    end[];
                     74: /*
                     75:  * Syscall data structures
                     76:  */
                     77: 
                     78: #define        MORDER  0x0003  /* mask for bits defining order of mounting */
                     79: #define        MREPL   0x0000  /* mount replaces object */
                     80: #define        MBEFORE 0x0001  /* mount goes before others in union directory */
                     81: #define        MAFTER  0x0002  /* mount goes after others in union directory */
                     82: #define        MCREATE 0x0004  /* permit creation in mounted directory */
                     83: #define        MMASK   0x0007  /* all bits on */
                     84: 
                     85: #define        OREAD   0       /* open for read */
                     86: #define        OWRITE  1       /* write */
                     87: #define        ORDWR   2       /* read and write */
                     88: #define        OEXEC   3       /* execute, == read but check execute permission */
                     89: #define        OTRUNC  16      /* or'ed in (except for exec), truncate file first */
                     90: #define        OCEXEC  32      /* or'ed in, close on exec */
                     91: #define        ORCLOSE 64      /* or'ed in, remove on close */
                     92: 
                     93: #define        NCONT   0       /* continue after note */
                     94: #define        NDFLT   1       /* terminate after note */
                     95: #define        NSAVE   2       /* clear note but hold state */
                     96: #define        NRSTR   3       /* restore saved state */
                     97: 
                     98: typedef struct Qid     Qid;
                     99: typedef struct Dir     Dir;
                    100: typedef struct Waitmsg Waitmsg;
                    101: 
                    102: #define        ERRLEN          64
                    103: #define        DIRLEN          116
                    104: #define        NAMELEN         28
                    105: 
                    106: struct Qid
                    107: {
                    108:        ulong   path;
                    109:        ulong   vers;
                    110: };
                    111: 
                    112: struct Dir
                    113: {
                    114:        char    name[NAMELEN];
                    115:        char    uid[NAMELEN];
                    116:        char    gid[NAMELEN];
                    117:        Qid     qid;
                    118:        ulong   mode;
                    119:        long    atime;
                    120:        long    mtime;
                    121:        Length;
                    122:        short   type;
                    123:        short   dev;
                    124: };
                    125: 
                    126: struct Waitmsg
                    127: {
                    128:        char    pid[12];        /* of loved one */
                    129:        char    time[3*12];     /* of loved one and descendants */
                    130:        char    msg[ERRLEN];
                    131: };

unix.superglobalmegacorp.com

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