[BACK]Return to stand.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / lib / libsa

Annotation of src/sys/lib/libsa/stand.h, Revision 1.14

1.14    ! pk          1: /*     $NetBSD: stand.h,v 1.13 1996/01/13 22:25:42 leo Exp $   */
1.5       cgd         2:
1.1       brezak      3: /*-
                      4:  * Copyright (c) 1993
                      5:  *     The Regents of the University of California.  All rights reserved.
                      6:  *
                      7:  * Redistribution and use in source and binary forms, with or without
                      8:  * modification, are permitted provided that the following conditions
                      9:  * are met:
                     10:  * 1. Redistributions of source code must retain the above copyright
                     11:  *    notice, this list of conditions and the following disclaimer.
                     12:  * 2. Redistributions in binary form must reproduce the above copyright
                     13:  *    notice, this list of conditions and the following disclaimer in the
                     14:  *    documentation and/or other materials provided with the distribution.
                     15:  * 3. All advertising materials mentioning features or use of this software
                     16:  *    must display the following acknowledgement:
                     17:  *     This product includes software developed by the University of
                     18:  *     California, Berkeley and its contributors.
                     19:  * 4. Neither the name of the University nor the names of its contributors
                     20:  *    may be used to endorse or promote products derived from this software
                     21:  *    without specific prior written permission.
                     22:  *
                     23:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
                     24:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     25:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     26:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
                     27:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     28:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     29:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     30:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     31:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     32:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     33:  * SUCH DAMAGE.
                     34:  *
1.5       cgd        35:  *     @(#)stand.h     8.1 (Berkeley) 6/11/93
1.1       brezak     36:  */
                     37:
                     38: #include <sys/types.h>
                     39: #include <sys/cdefs.h>
                     40: #include <sys/stat.h>
                     41: #include "saioctl.h"
                     42: #include "saerrno.h"
                     43:
                     44: #ifndef NULL
                     45: #define        NULL    0
                     46: #endif
                     47:
                     48: struct open_file;
                     49:
                     50: /*
                     51:  * This structure is used to define file system operations in a file system
                     52:  * independent way.
                     53:  */
                     54: struct fs_ops {
                     55:        int     (*open) __P((char *path, struct open_file *f));
                     56:        int     (*close) __P((struct open_file *f));
1.11      pk         57:        int     (*read) __P((struct open_file *f, void *buf,
1.10      pk         58:                             size_t size, size_t *resid));
1.11      pk         59:        int     (*write) __P((struct open_file *f, void *buf,
1.10      pk         60:                             size_t size, size_t *resid));
1.1       brezak     61:        off_t   (*seek) __P((struct open_file *f, off_t offset, int where));
                     62:        int     (*stat) __P((struct open_file *f, struct stat *sb));
                     63: };
                     64:
                     65: extern struct fs_ops file_system[];
1.13      leo        66: extern int nfsys;
1.1       brezak     67:
                     68: /* where values for lseek(2) */
                     69: #define        SEEK_SET        0       /* set file offset to offset */
                     70: #define        SEEK_CUR        1       /* set file offset to current plus offset */
                     71: #define        SEEK_END        2       /* set file offset to EOF plus offset */
                     72:
                     73: /* Device switch */
                     74: struct devsw {
                     75:        char    *dv_name;
                     76:        int     (*dv_strategy) __P((void *devdata, int rw,
1.10      pk         77:                                    daddr_t blk, size_t size,
                     78:                                    void *buf, size_t *rsize));
1.1       brezak     79:        int     (*dv_open) __P((struct open_file *f, ...));
                     80:        int     (*dv_close) __P((struct open_file *f));
1.6       cgd        81:        int     (*dv_ioctl) __P((struct open_file *f, u_long cmd, void *data));
1.1       brezak     82: };
                     83:
                     84: extern struct devsw devsw[];   /* device array */
                     85: extern int ndevs;              /* number of elements in devsw[] */
                     86:
                     87: struct open_file {
                     88:        int             f_flags;        /* see F_* below */
                     89:        struct devsw    *f_dev;         /* pointer to device operations */
                     90:        void            *f_devdata;     /* device specific data */
                     91:        struct fs_ops   *f_ops;         /* pointer to file system operations */
                     92:        void            *f_fsdata;      /* file system specific data */
1.14    ! pk         93:        off_t           f_offset;       /* current file offset (F_RAW) */
1.1       brezak     94: };
                     95:
                     96: #define        SOPEN_MAX       4
1.8       cgd        97: extern struct open_file files[];
1.1       brezak     98:
                     99: /* f_flags values */
                    100: #define        F_READ          0x0001  /* file opened for reading */
                    101: #define        F_WRITE         0x0002  /* file opened for writing */
                    102: #define        F_RAW           0x0004  /* raw device open - no file system */
1.2       brezak    103: #define F_NODEV                0x0008  /* network open - no device */
1.1       brezak    104:
                    105: #define isupper(c)     ((c) >= 'A' && (c) <= 'Z')
                    106: #define tolower(c)     ((c) - 'A' + 'a')
                    107: #define isspace(c)     ((c) == ' ' || (c) == '\t')
                    108: #define isdigit(c)     ((c) >= '0' && (c) <= '9')
                    109:
1.10      pk        110: int    devopen __P((struct open_file *, const char *, char **));
                    111: void   *alloc __P((unsigned int));
                    112: void   free __P((void *, unsigned int));
1.1       brezak    113: struct disklabel;
1.10      pk        114: char   *getdisklabel __P((const char *, struct disklabel *));
1.13      leo       115: int    dkcksum __P((struct disklabel *));
1.2       brezak    116:
1.4       brezak    117: void   printf __P((const char *, ...));
1.10      pk        118: void   sprintf __P((char *, const char *, ...));
1.11      pk        119: void   twiddle __P((void));
1.4       brezak    120: void   gets __P((char *));
1.12      pk        121: __dead void    panic __P((const char *, ...)) __attribute__((noreturn));
1.13      leo       122: __dead void    _rtt __P((void)) __attribute__((noreturn));
1.12      pk        123: void   bcopy __P((const void *, void *, size_t));
1.13      leo       124: void   *memcpy __P((void *, const void *, size_t));
1.7       mycroft   125: void   exec __P((char *, char *, int));
1.10      pk        126: int    open __P((const char *, int));
1.4       brezak    127: int    close __P((int));
1.13      leo       128: void   closeall __P((void));
1.10      pk        129: ssize_t        read __P((int, void *, size_t));
                    130: ssize_t        write __P((int, void *, size_t));
1.4       brezak    131:
1.10      pk        132: int    nodev __P((void));
                    133: int    noioctl __P((struct open_file *, u_long, void *));
                    134: void   nullsys __P((void));
1.2       brezak    135:
                    136: int    null_open __P((char *path, struct open_file *f));
                    137: int    null_close __P((struct open_file *f));
1.10      pk        138: ssize_t        null_read __P((struct open_file *f, void *buf,
                    139:                        size_t size, size_t *resid));
                    140: ssize_t        null_write __P((struct open_file *f, void *buf,
                    141:                        size_t size, size_t *resid));
1.2       brezak    142: off_t  null_seek __P((struct open_file *f, off_t offset, int where));
                    143: int    null_stat __P((struct open_file *f, struct stat *sb));
                    144:
1.4       brezak    145: /* Machine dependent functions */
1.2       brezak    146: void   machdep_start __P((char *, int, char *, char *, char *));
1.4       brezak    147: int    getchar __P((void));
                    148: void   putchar __P((int));

CVSweb <webmaster@jp.NetBSD.org>