Changeset 1505 for trunk/src/emx


Ignore:
Timestamp:
Sep 12, 2004, 9:40:29 PM (21 years ago)
Author:
bird
Message:

Adding BSD stuff like there was no tomorrow.

Location:
trunk/src/emx
Files:
28 added
31 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/emx/include/InnoTekLIBC/backend.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.2
    r1504 r1505  
    2828#define __InnoTekLIBC_backend_h__
    2929
     30
     31
     32
     33
     34
    3035#ifndef __LIBC_THREAD_DECLARED
    3136#define __LIBC_THREAD_DECLARED
    3237typedef struct __libc_thread *__LIBC_PTHREAD, **__LIBC_PPTHREAD;
    3338#endif
     39
    3440
    3541
    36 /** @group __libc_Back_thread   LIBC Backend - Threads
     42/** @group __libc_Back_thread   LIBC Backend - Threads
    3743 * @{ */
    3844
     
    7581/** @} */
    7682
    77 #if defined (__cplusplus)
    78 }
     83
     84/** @defgroup __libc_Back_fh   LIBC Backend - File Handles.
     85 * @{ */
     86
     87/**
     88 * Try resolve a filehandle to a path.
     89 *
     90 * @returns 0 on success.
     91 * @returns -1 and errno on failure.
     92 * @param   fh          The file handle.
     93 * @param   pszPath     Where to store the path.
     94 * @param   cchPath     The size of he buffer pointed to by pszPath.
     95 */
     96int __libc_Back_fhToPath(int fh, char *pszPath, size_t cchPath);
     97
     98/** @} */
     99
     100
     101/** @defgroup __libc_Back_fs   LIBC Backend - File System
     102 * @{ */
     103
     104/**
     105 * Get the statistics for the filesystem which pszPath is located on.
     106 *
     107 * @returns 0 on success.
     108 * @returns -1 and errno on failure.
     109 * @param   pszPath     The path to somewhere in the filesystem.
     110 * @param   pStatFs     Where to store the obtained information.
     111 */
     112int __libc_Back_fsStat(const char *pszPath, struct statfs *pStatFs);
     113
     114/**
     115 * Get file system statistics
     116 *
     117 * @returns 0 on success.
     118 * @returns -1 and errno on failure.
     119 * @param   fh          The filehandle of any file within the mounted file system.
     120 * @param   pStatFs     Where to store the statistics.
     121 */
     122int __libc_Back_fsStatFH(int fh, struct statfs *pStatFs);
     123
     124/**
     125 * Get the statistics for all the mounted filesystems.
     126 *
     127 * @returns Number of returned statfs structs on success.
     128 * @returns Number of mounted filesystems on success if paStatFS is NULL
     129 * @returns -1 and errno on failure.
     130 * @param   paStatFs    Where to to store the statistics.
     131 * @parma   cStatFS     Number of structures the array pointed to by paStatFs can hold.
     132 * @param   fFlags      Flags, currently ignored.
     133 */
     134int __libc_Back_fsStats(struct statfs *paStatFs, unsigned cStatFs, unsigned fFlags);
     135
     136/**
     137 * Schedules all file system buffers for writing.
     138 *
     139 * See sync() for OS/2 limitations.
     140 */
     141void __libc_Back_fsSync(void);
     142
     143/** @} */
     144
     145
     146
     147/** @defgroup __libc_Back_misc   LIBC Backend - Miscellaneous
     148 * @{ */
     149
     150/**
     151 * Gets the system load averages.
     152 * The load is the average values of ready and running threads(/processes)
     153 * over the last 1, 5 and 15 minuttes.
     154 *
     155 * @returns 0 on success.
     156 * @returns -1 and errno on failure.
     157 * @param   pardAvgs    Where to store the samples.
     158 * @param   cAvgs       Number of samples to get. Max is 3.
     159 * @remark  See OS/2 limitations in getloadavg().
     160 */
     161int __libc_Back_miscLoadAvg(double *pardAvgs, unsigned cAvgs);
     162
     163/** @} */
     164
     165__END_DECLS
     166
    79167#endif
    80 
    81 #endif /* not _EMX_SYSCALLS_H */
  • trunk/src/emx/include/InnoTekLIBC/sharedpm.h

    • Property cvs2svn:cvs-rev changed from 1.5 to 1.6
    r1504 r1505  
    298298
    299299/**
     300
     301
     302
     303
     304
     305
     306
     307
     308
     309
     310
     311
     312
     313
     314
     315
     316
     317
     318
     319
     320
    300321 * This is the header of the LIBC shared memory.
    301322 */
     
    336357        char                    ach[16];
    337358    };
     359
     360
     361
     362
    338363    /* The rest of the block, up to cbProcess, is undefined in this version.
    339364     * Future versions of LIBC may use this area assuming it's initalized with zeros.
     
    531556
    532557/**
     558
     559
     560
     561
     562
     563
     564
     565
     566
     567
     568
     569
     570
     571
     572
     573
     574
     575
     576
    533577 * Checks the SPM memory for trouble.
    534578 *
  • trunk/src/emx/include/arpa/inet.h

    • Property cvs2svn:cvs-rev changed from 1.5 to 1.6
    r1504 r1505  
    5454#include <sys/types.h>
    5555#include <sys/cdefs.h>
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
    5667#ifndef TCPV40HDRS
    5768int             TCPCALL inet_aton (const char *, struct in_addr *);
  • trunk/src/emx/include/dirent.h

    • Property cvs2svn:cvs-rev changed from 1.2 to 1.3
    r1504 r1505  
    9999} DIR;
    100100
     101
    101102#define dirfd(dirp)     ((dirp)->dd_fd)
     103
     104
     105
    102106
    103107/* flags for opendir2 */
  • trunk/src/emx/include/emx/io.h

    • Property cvs2svn:cvs-rev changed from 1.9 to 1.10
    r1504 r1505  
    358358{
    359359    /** Handle flags.
    360      * See group @ref libc_ioflags in include/emx.h.
     360     * See group @ref libc_ioflags in include/emx.h.
    361361     * @remark For thread safety update this atomically. */
    362362    volatile unsigned int   fFlags;
  • trunk/src/emx/include/grp.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.2
    r1504 r1505  
    11/* grp.h (emx+gcc) */
    22
    3 #ifndef _GRP_H
     3#ifndef _GRP_H_
     4#define _GRP_H_
    45#define _GRP_H
    56
    6 #if defined (__cplusplus)
    7 extern "C" {
     7#include <sys/cdefs.h>
     8#include <sys/_types.h>
     9
     10__BEGIN_DECLS
     11
     12#ifndef _POSIX_SOURCE
     13#define _PATH_GROUP             "/etc/group"
    814#endif
    915
    10 #if !defined (_GID_T)
    11 #define _GID_T
    12 typedef int gid_t;
     16#if !defined(_GID_T_DECLARED) && !defined(_GID_T)
     17typedef __gid_t gid_t;
     18#define _GID_T_DECLARED
     19#define _GID_T
    1320#endif
     21
     22
     23
     24
     25
     26
     27
    1428
    1529struct group
    1630{
    1731  char *gr_name;
     32
    1833  gid_t gr_gid;
    1934  char **gr_mem;
    2035};
    2136
    22 struct group *getgrgid (gid_t);
    23 struct group *getgrnam (__const__ char *);
     37struct group *getgrgid (gid_t);
     38struct group char *);
    2439
    25 #if defined (__cplusplus)
    26 }
     40#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE
     41struct group   *getgrent(void);
     42int             setgrent(void);
     43void            endgrent(void);
     44void            setgrfile(const char *);
     45int             setgroupent(int);
     46int             getgrgid_r(gid_t, struct group *, char *, size_t, struct group **);
     47int             getgrnam_r(const char *, struct group *, char *, size_t, struct group **);
    2748#endif
    2849
    29 #endif /* not _GRP_H */
     50#if __BSD_VISIBLE
     51const char     *group_from_gid(gid_t, int);
     52int             getgrent_r(struct group *, char *, size_t, struct group **);
     53int             setgroupent(int);
     54#endif
     55
     56__END_DECLS
     57
     58#endif /* not _GRP_H_ */
  • trunk/src/emx/include/netdb.h

    • Property cvs2svn:cvs-rev changed from 1.6 to 1.7
    r1504 r1505  
    3434 *
    3535 *      from: @(#)netdb.h       5.15 (Berkeley) 4/3/91
    36  *      netdb.h,v 1.6 2004/08/09 10:35:32 bird Exp
     36 *      netdb.h,v 1. bird Exp
    3737 */
    3838
     
    196196#endif
    197197
     198
     199
     200
     201
     202
     203
     204
    198205
    199206/* OS2 Additions */
  • trunk/src/emx/include/netinet/in.h

    • Property cvs2svn:cvs-rev changed from 1.2 to 1.3
    r1504 r1505  
    106106 * Internet address (a structure for historical reasons)
    107107 */
     108
    108109struct in_addr {
    109110        u_long s_addr;
    110111};
     112
     113
     114
    111115
    112116/*
  • trunk/src/emx/include/pwd.h

    • Property cvs2svn:cvs-rev changed from 1.2 to 1.3
    r1504 r1505  
    1 /* pwd.h (emx+gcc) */
     1/*-
     2 * Copyright (c) 1989, 1993
     3 *      The Regents of the University of California.  All rights reserved.
     4 * (c) UNIX System Laboratories, Inc.
     5 * All or some portions of this file are derived from material licensed
     6 * to the University of California by American Telephone and Telegraph
     7 * Co. or Unix System Laboratories, Inc. and are reproduced herein with
     8 * the permission of UNIX System Laboratories, Inc.
     9 *
     10 * Redistribution and use in source and binary forms, with or without
     11 * modification, are permitted provided that the following conditions
     12 * are met:
     13 * 1. Redistributions of source code must retain the above copyright
     14 *    notice, this list of conditions and the following disclaimer.
     15 * 2. Redistributions in binary form must reproduce the above copyright
     16 *    notice, this list of conditions and the following disclaimer in the
     17 *    documentation and/or other materials provided with the distribution.
     18 * 3. All advertising materials mentioning features or use of this software
     19 *    must display the following acknowledgement:
     20 *      This product includes software developed by the University of
     21 *      California, Berkeley and its contributors.
     22 * 4. Neither the name of the University nor the names of its contributors
     23 *    may be used to endorse or promote products derived from this software
     24 *    without specific prior written permission.
     25 *
     26 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     27 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     28 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     29 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     30 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     36 * SUCH DAMAGE.
     37 *
     38 *      @(#)pwd.h       8.2 (Berkeley) 1/21/94
     39 * $FreeBSD: src/include/pwd.h,v 1.15 2003/04/18 14:11:17 nectar Exp $
     40 */
    241
    3 #ifndef _PWD_H
    4 #define _PWD_H
     42/**
     43 * FreeBSD 5.2
     44 * @changed bird: some EMXisms.
     45 */
    546
    6 #if defined (__cplusplus)
    7 extern "C" {
     47#ifndef _PWD_H_
     48#define _PWD_H_
     49#define _PWD_H                          /* bird: EMX */
     50
     51#include <sys/cdefs.h>
     52#include <sys/_types.h>
     53
     54#if !defined(_GID_T_DECLARED) && !defined(_GID_T)   /* bird */
     55typedef __gid_t gid_t;
     56#define _GID_T_DECLARED
     57#define _GID_T                                      /* bird */
    858#endif
    959
    10 #if !defined (_PASSWORD_LEN)
    11 #define _PASSWORD_LEN 128
     60#if !defined(_TIME_T_DECLARED) && !defined(_TIME_T) /* bird */
     61typedef __time_t time_t;
     62#define _TIME_T_DECLARED
     63#define _TIME_T                                     /* bird */
    1264#endif
    1365
    14 #if !defined (_GID_T)
    15 #define _GID_T
    16 typedef int gid_t;
     66#if !defined(_UID_T_DECLARED) && !defined(_UID_T)   /* bird */
     67typedef __uid_t uid_t;
     68#define _UID_T_DECLARED
     69#define _UID_T                                      /* bird */
    1770#endif
    1871
    19 #if !defined (_UID_T)
    20 #define _UID_T
    21 typedef int uid_t;
     72#if !defined(_SIZE_T_DECLARED) && !defined(_SIZE_T) /* bird */
     73typedef __size_t size_t;
     74#define _SIZE_T_DECLARED
     75#define _SIZE_T                                     /* bird */
    2276#endif
    2377
    24 struct passwd
    25 {
    26   char *pw_name;
    27   char *pw_passwd;
    28   uid_t pw_uid;
    29   gid_t pw_gid;
    30   char *pw_age;
    31   char *pw_comment;
    32   char *pw_gecos;
    33   char *pw_dir;
    34   char *pw_shell;
     78
     79#define _PATH_PWD               "/etc"
     80#define _PATH_PASSWD            "/etc/passwd"
     81#define _PASSWD                 "passwd"
     82#define _PATH_MASTERPASSWD      "/etc/master.passwd"
     83#define _MASTERPASSWD           "master.passwd"
     84
     85#define _PATH_MP_DB             "/etc/pwd.db"
     86#define _MP_DB                  "pwd.db"
     87#define _PATH_SMP_DB            "/etc/spwd.db"
     88#define _SMP_DB                 "spwd.db"
     89
     90#define _PATH_PWD_MKDB          "/usr/sbin/pwd_mkdb"
     91
     92/* Historically, the keys in _PATH_MP_DB/_PATH_SMP_DB had the format
     93 * `1 octet tag | key', where the tag is one of the _PW_KEY* values
     94 * listed below.  These values happen to be ASCII digits.  Starting
     95 * with FreeBSD 5.1, the tag is now still a single octet, but the
     96 * upper 4 bits are interpreted as a version.  Pre-FreeBSD 5.1 format
     97 * entries are version `3' -- this conveniently results in the same
     98 * key values as before.  The new, architecture-independent entries
     99 * are version `4'.
     100 * As it happens, some applications read the database directly.
     101 * (Bad app, no cookie!)  Thus, we leave the _PW_KEY* symbols at their
     102 * old pre-FreeBSD 5.1 values so these apps still work.  Consequently
     103 * we have to do muck around a bit more to get the correct, versioned
     104 * tag, and that is what the _PW_VERSIONED macros is about.
     105 */
     106
     107#define _PW_VERSION_MASK        '0xF0'
     108#define _PW_VERSIONED(x, v)     ((unsigned char)(((x) & 0xCF) | ((v)<<4)))
     109
     110#define _PW_KEYBYNAME           '\x31'  /* stored by name */
     111#define _PW_KEYBYNUM            '\x32'  /* stored by entry in the "file" */
     112#define _PW_KEYBYUID            '\x33'  /* stored by uid */
     113#define _PW_KEYYPENABLED        '\x34'  /* YP is enabled */
     114#define _PW_KEYYPBYNUM          '\x35'  /* special +@netgroup entries */
     115
     116/* The database also contains a key to indicate the format version of
     117 * the entries therein.  There may be other, older versioned entries
     118 * as well.
     119 */
     120#define _PWD_VERSION_KEY        "\xFF" "VERSION"
     121#define _PWD_CURRENT_VERSION    '\x04'
     122
     123#define _PASSWORD_EFMT1         '_'     /* extended encryption format */
     124
     125#define _PASSWORD_LEN           128     /* max length, not counting NULL */
     126
     127struct passwd {
     128        char    *pw_name;               /* user name */
     129        char    *pw_passwd;             /* encrypted password */
     130        uid_t   pw_uid;                 /* user uid */
     131        gid_t   pw_gid;                 /* user gid */
     132        time_t  pw_change;              /* password change time */
     133        char    *pw_class;              /* user access class */
     134        char    *pw_gecos;              /* Honeywell login info */
     135        char    *pw_dir;                /* home directory */
     136        char    *pw_shell;              /* default shell */
     137        time_t  pw_expire;              /* account expiration */
     138        int     pw_fields;              /* internal: fields filled in */
    35139};
    36140
     141
     142
     143
     144
     145
     146
     147
     148
     149
     150
     151
     152
     153
     154
     155
     156
     157
     158
     159
     160
     161
     162
     163
     164
     165
     166
     167
     168
     169
     170
     171
     172
     173
     174
     175
     176
     177
     178
     179
     180
     181
     182
    37183char *getpass (__const__ char *);
    38184char *_getpass1 (__const__ char *);
    39185char *_getpass2 (__const__ char *, int);
     186
    40187
    41 struct passwd *getpwuid (uid_t);
    42 struct passwd *getpwnam (__const__ char *);
     188#endif /* !_PWD_H_ */
    43189
    44 struct passwd *_getpwuid (uid_t);
    45 struct passwd *_getpwnam (__const__ char *);
    46 
    47 #if !defined (_POSIX_SOURCE) || defined(__USE_EMX)
    48 
    49 struct passwd *getpwent (void);
    50 void setpwent (void);
    51 void endpwent (void);
    52 
    53 struct passwd *_getpwent (void);
    54 void _setpwent (void);
    55 void _endpwent (void);
    56 
    57 #endif
    58 
    59 #if defined (__cplusplus)
    60 }
    61 #endif
    62 
    63 #endif /* not _PWD_H */
  • trunk/src/emx/include/stdlib.h

    • Property cvs2svn:cvs-rev changed from 1.22 to 1.23
    r1504 r1505  
    262262/** @todo int    daemon(int, int); */
    263263/** @todo char  *devname(int, int); */
    264 /** @todo int    getloadavg(double [], int); */
     264int      getloadavg(double [], int);
    265265__const char *
    266266         getprogname(void);
  • trunk/src/emx/include/sys/mount.h

    • Property cvs2svn:cvs-rev changed from 1.2 to 1.3
    r1504 r1505  
    535535int     fhstat(const struct fhandle *, struct stat *);
    536536int     fhstatfs(const struct fhandle *, struct statfs *);
     537
    537538int     fstatfs(int, struct statfs *);
     539
    538540int     getfh(const char *, fhandle_t *);
    539541#endif  /* bird */
  • trunk/src/emx/include/sys/syslimits.h

    • Property cvs2svn:cvs-rev changed from 1.2 to 1.3
    r1504 r1505  
    3434#ifndef LOGIN_NAME_MAX
    3535/** Max login name length including terminating NULL. */
    36 #define LOGIN_NAME_MAX  MAXLOGNAME
     36#define LOGIN_NAME_MAX 
    3737#endif
    3838
  • trunk/src/emx/include/unistd.h

    • Property cvs2svn:cvs-rev changed from 1.16 to 1.17
    r1504 r1505  
    178178unsigned int     alarm(unsigned int);
    179179int      chdir(const char *);
    180 /** @todo int    chown(const char *, uid_t, gid_t); */
     180int      chown(const char *, uid_t, gid_t);
    181181int      close(int);
    182182char *   cuserid(char *); /* bird: emx/todo/obosolete? */
     
    203203uid_t    getuid(void);
    204204int      isatty(int);
    205 /** @todo int    link(const char *, const char *);*/
     205int      link(const char *, const char *);
    206206#ifndef _LSEEK_DECLARED
    207207#define _LSEEK_DECLARED
     
    255255/* 1003.1-2001 */
    256256#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE
    257 /** @todo int    fchown(int, uid_t, gid_t); */
    258 /** @todo int    readlink(const char *, char *, int); */
     257int      fchown(int, uid_t, gid_t);
     258int      readlink(const char *, char *, int);
    259259#endif
    260260#if __POSIX_VISIBLE >= 200112
     
    270270 */
    271271#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 402 || __BSD_VISIBLE
    272 /** @todo int    symlink(const char * __restrict, const char * __restrict); */
     272int      symlink(const char * __restrict, const char * __restrict);
    273273#endif
    274274
     
    283283/** @todo int    getsid(pid_t _pid); */
    284284char    *getwd(char *);                 /* LEGACY: obsoleted by getcwd() */
    285 /** @todo int    lchown(const char *, uid_t, gid_t); */
     285int      lchown(const char *, uid_t, gid_t);
    286286int      lockf(int, int, off_t);
    287287/** @todo int    nice(int); */
     
    292292/** @todo int    setreuid(uid_t, uid_t); */
    293293/* void  swab(const void * __restrict, void * __restrict, ssize_t); */
    294 /** @todo void   sync(void); */
     294void     sync(void);
    295295/** @todo useconds_t     ualarm(useconds_t, useconds_t); */
    296296int      usleep(useconds_t);
     
    325325/** @todo int    des_cipher(const char *, char *, long, int); */
    326326/** @todo int    des_setkey(const char *key); */
    327 /** @todo void   endusershell(void); */
     327void     endusershell(void);
    328328/** @todo int    exect(const char *, char * const *, char * const *); */
    329329/** @todo char  *fflagstostr(u_long); */
     
    334334/** @todo int    getresgid(gid_t *, gid_t *, gid_t *); */
    335335/** @todo int    getresuid(uid_t *, uid_t *, uid_t *); */
    336 /** @todo char  *getusershell(void); */
     336char    *getusershell(void);
    337337/** @todo int    initgroups(const char *, gid_t); */
    338338/** @todo int    iruserok(unsigned long, int, const char *, const char *); */
     
    340340/** @todo int    issetugid(void); */
    341341/** @todo char  *mkdtemp(char *); */
    342 /** @todo int    mknod(const char *, mode_t, dev_t); */
     342int      mknod(const char *, mode_t, dev_t);
    343343#ifndef _MKSTEMP_DECLARED
    344344int      mkstemp(char *);