Annotation of uae/src/include/bsdsocket.h, revision 1.1

1.1     ! root        1:  /*
        !             2:   * UAE - The Un*x Amiga Emulator
        !             3:   *
        !             4:   * bsdsocket.library emulation
        !             5:   *
        !             6:   * Copyright 1997,98 Mathias Ortmann
        !             7:   *
        !             8:   */
        !             9: 
        !            10: /*#define TRACING_ENABLED */
        !            11: 
        !            12: #ifdef TRACING_ENABLED
        !            13: #define TRACE(x)       printf x;
        !            14: #else
        !            15: #define TRACE(x)
        !            16: #endif
        !            17: 
        !            18: extern int init_socket_layer (void);
        !            19: extern void deinit_socket_layer (void);
        !            20: 
        !            21: /* inital size of per-process descriptor table (currently fixed) */
        !            22: #define DEFAULT_DTABLE_SIZE 64
        !            23: 
        !            24: #define SCRATCHBUFSIZE 128
        !            25: 
        !            26: #define MAXPENDINGASYNC 512
        !            27: 
        !            28: #define MAXADDRLEN 256
        !            29: 
        !            30: /* allocated and maintained on a per-task basis */
        !            31: struct socketbase {
        !            32:     struct socketbase *next;
        !            33:     struct socketbase *nextsig;        /* queue for tasks to signal */
        !            34: 
        !            35:     int dosignal;              /* signal flag */
        !            36:     uae_u32 ownertask;         /* task that opened the library */
        !            37:     int signal;                        /* signal allocated for that task */
        !            38:     int sb_errno, sb_herrno;   /* errno and herrno variables */
        !            39:     uae_u32 errnoptr, herrnoptr;       /* pointers */
        !            40:     uae_u32 errnosize, herrnosize;     /* pinter sizes */
        !            41:     int dtablesize;            /* current descriptor/flag etc. table size */
        !            42:     int *dtable;               /* socket descriptor table */
        !            43:     int *ftable;               /* socket flags */
        !            44:     int resultval;
        !            45:     uae_u32 hostent;           /* pointer to the current hostent structure (Amiga mem) */
        !            46:     uae_u32 hostentsize;
        !            47:     uae_u32 protoent;          /* pointer to the current protoent structure (Amiga mem) */
        !            48:     uae_u32 protoentsize;
        !            49:     uae_u32 servent;           /* pointer to the current servent structure (Amiga mem) */
        !            50:     uae_u32 serventsize;
        !            51:     uae_u32 sigstosend;
        !            52:     uae_u32 eventsigs;         /* EVENT sigmask */
        !            53:     uae_u32 eintrsigs;         /* EINTR sigmask */
        !            54:     int eintr;                 /* interrupted by eintrsigs? */
        !            55:     int eventindex;            /* current socket looked at by GetSocketEvents() to prevent starvation */
        !            56: 
        !            57:     /* host-specific fields below */
        !            58: #ifdef _WIN32
        !            59:     unsigned int sockAbort;    /* for aborting WinSock2 select() (damn Microsoft) */
        !            60:     unsigned int sockAsync;    /* for aborting WSBAsyncSelect() in window message handler */
        !            61:     int needAbort;             /* abort flag */
        !            62:     void *hAsyncTask;          /* async task handle */
        !            63:     void *hEvent;              /* thread event handle */
        !            64:     unsigned int *mtable;      /* window messages allocated for asynchronous event notification */
        !            65: #endif
        !            66: } *socketbases;
        !            67: 
        !            68: 
        !            69: #define LIBRARY_SIZEOF 36
        !            70: 
        !            71: struct UAEBSDBase {
        !            72:     char dummy[LIBRARY_SIZEOF];
        !            73:     struct socketbase *sb;
        !            74:     char scratchbuf[SCRATCHBUFSIZE];
        !            75: };
        !            76: 
        !            77: /* socket flags */
        !            78: /* socket events to report */
        !            79: #define REP_ACCEPT      0x01   /* there is a connection to accept() */
        !            80: #define REP_CONNECT     0x02   /* connect() completed */
        !            81: #define REP_OOB                 0x04   /* socket has out-of-band data */
        !            82: #define REP_READ        0x08   /* socket is readable */
        !            83: #define REP_WRITE       0x10   /* socket is writeable */
        !            84: #define REP_ERROR       0x20   /* asynchronous error on socket */
        !            85: #define REP_CLOSE       0x40   /* connection closed (graceful or not) */
        !            86: #define REP_ALL      0x7f
        !            87: /* socket events that occurred */
        !            88: #define SET_ACCEPT      0x0100 /* there is a connection to accept() */
        !            89: #define SET_CONNECT     0x0200 /* connect() completed */
        !            90: #define SET_OOB                 0x0400 /* socket has out-of-band data */
        !            91: #define SET_READ        0x0800 /* socket is readable */
        !            92: #define SET_WRITE       0x1000 /* socket is writeable */
        !            93: #define SET_ERROR       0x2000 /* asynchronous error on socket */
        !            94: #define SET_CLOSE       0x4000 /* connection closed (graceful or not) */
        !            95: #define SET_ALL      0x7f00
        !            96: /* socket properties */
        !            97: #define SF_BLOCKING 0x80000000
        !            98: #define SF_BLOCKINGINPROGRESS 0x40000000
        !            99: 
        !           100: struct socketbase *get_socketbase (void);
        !           101: 
        !           102: extern uae_u32 addstr (uae_u32 *, char *);
        !           103: extern uae_u32 addmem (uae_u32 *, char *, int len);
        !           104: 
        !           105: extern char *strncpyah (char *, uae_u32, int);
        !           106: extern char *strcpyah (char *, uae_u32);
        !           107: extern uae_u32 strcpyha (uae_u32, char *);
        !           108: extern uae_u32 strncpyha (uae_u32, char *, int);
        !           109: 
        !           110: #define SB struct socketbase *sb
        !           111: 
        !           112: extern void seterrno (SB, int);
        !           113: extern void setherrno (SB, int);
        !           114: 
        !           115: extern void sockmsg (unsigned int, unsigned long, unsigned long);
        !           116: extern void sockabort (SB);
        !           117: 
        !           118: extern void addtosigqueue (SB, int);
        !           119: extern void removefromsigqueue (SB);
        !           120: extern void sigsockettasks (void);
        !           121: extern void locksigqueue (void);
        !           122: extern void unlocksigqueue (void);
        !           123: 
        !           124: extern int getsd (SB, int);
        !           125: extern int getsock (SB, int);
        !           126: extern void releasesock (SB, int);
        !           127: 
        !           128: extern void waitsig (SB);
        !           129: extern void cancelsig (SB);
        !           130: 
        !           131: extern int host_sbinit (SB);
        !           132: extern void host_sbcleanup (SB);
        !           133: extern void host_sbreset (void);
        !           134: extern void host_closesocketquick (int);
        !           135: 
        !           136: extern int host_socket (SB, int, int, int);
        !           137: extern uae_u32 host_bind (SB, uae_u32, uae_u32, uae_u32);
        !           138: extern uae_u32 host_listen (SB, uae_u32, uae_u32);
        !           139: extern void host_accept (SB, uae_u32, uae_u32, uae_u32);
        !           140: extern void host_sendto (SB, uae_u32, uae_u32, uae_u32, uae_u32, uae_u32, uae_u32);
        !           141: extern void host_recvfrom (SB, uae_u32, uae_u32, uae_u32, uae_u32, uae_u32, uae_u32);
        !           142: extern uae_u32 host_shutdown (SB, uae_u32, uae_u32);
        !           143: extern void host_setsockopt (SB, uae_u32, uae_u32, uae_u32, uae_u32, uae_u32);
        !           144: extern uae_u32 host_getsockopt (SB, uae_u32, uae_u32, uae_u32, uae_u32, uae_u32);
        !           145: extern uae_u32 host_getsockname (SB, uae_u32, uae_u32, uae_u32);
        !           146: extern uae_u32 host_getpeername (SB, uae_u32, uae_u32, uae_u32);
        !           147: extern uae_u32 host_IoctlSocket (SB, uae_u32, uae_u32, uae_u32);
        !           148: extern uae_u32 host_shutdown (SB, uae_u32, uae_u32);
        !           149: extern int host_CloseSocket (SB, int);
        !           150: #if 0 /* __stdcall ???? */
        !           151: extern void __stdcall host_connect (SB, uae_u32, uae_u32, uae_u32);
        !           152: extern void __stdcall host_WaitSelect (SB, uae_u32, uae_u32, uae_u32, uae_u32, uae_u32, uae_u32);
        !           153: #endif
        !           154: extern uae_u32 host_SetSocketSignals (void);
        !           155: extern uae_u32 host_getdtablesize (void);
        !           156: extern uae_u32 host_ObtainSocket (void);
        !           157: extern uae_u32 host_ReleaseSocket (void);
        !           158: extern uae_u32 host_ReleaseCopyOfSocket (void);
        !           159: extern uae_u32 host_Inet_NtoA (SB, uae_u32);
        !           160: extern uae_u32 host_inet_addr (uae_u32);
        !           161: extern uae_u32 host_Inet_LnaOf (void);
        !           162: extern uae_u32 host_Inet_NetOf (void);
        !           163: extern uae_u32 host_Inet_MakeAddr (void);
        !           164: extern uae_u32 host_inet_network (void);
        !           165: extern void host_gethostbynameaddr (SB, uae_u32, uae_u32, long);
        !           166: extern uae_u32 host_getnetbyname (void);
        !           167: extern uae_u32 host_getnetbyaddr (void);
        !           168: extern void host_getservbynameport (SB, uae_u32, uae_u32, uae_u32);
        !           169: extern void host_getprotobyname (SB, uae_u32);
        !           170: extern uae_u32 host_getprotobynumber (void);
        !           171: extern uae_u32 host_vsyslog (void);
        !           172: extern uae_u32 host_Dup2Socket (void);
        !           173: extern uae_u32 host_gethostname (uae_u32, uae_u32);
        !           174: 
        !           175: 
        !           176: extern void bsdlib_install (void);
        !           177: extern void bsdlib_reset (void);

unix.superglobalmegacorp.com

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