Annotation of Gnu-Mach/i386/dos/dos_io.h, revision 1.1

1.1     ! root        1: /* 
        !             2:  * Copyright (c) 1995-1994 The University of Utah and
        !             3:  * the Computer Systems Laboratory at the University of Utah (CSL).
        !             4:  * All rights reserved.
        !             5:  *
        !             6:  * Permission to use, copy, modify and distribute this software is hereby
        !             7:  * granted provided that (1) source code retains these copyright, permission,
        !             8:  * and disclaimer notices, and (2) redistributions including binaries
        !             9:  * reproduce the notices in supporting documentation, and (3) all advertising
        !            10:  * materials mentioning features or use of this software display the following
        !            11:  * acknowledgement: ``This product includes software developed by the
        !            12:  * Computer Systems Laboratory at the University of Utah.''
        !            13:  *
        !            14:  * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
        !            15:  * IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
        !            16:  * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
        !            17:  *
        !            18:  * CSL requests users of this software to return to [email protected] any
        !            19:  * improvements that they make and grant CSL redistribution rights.
        !            20:  *
        !            21:  *      Author: Bryan Ford, University of Utah CSL
        !            22:  */
        !            23: #ifndef _i386_kernel_dos_dos_io_h_
        !            24: #define _i386_kernel_dos_dos_io_h_
        !            25: 
        !            26: #include <mach/machine/vm_types.h>
        !            27: 
        !            28: #include "real.h"
        !            29: #include "debug.h"
        !            30: 
        !            31: struct stat;
        !            32: struct timeval;
        !            33: struct timezone;
        !            34: struct termios;
        !            35: 
        !            36: typedef int dos_fd_t;
        !            37: 
        !            38: /* Maximum number of bytes we can read or write with one DOS call
        !            39:    to or from memory not in the low 1MB accessible to DOS.
        !            40:    Must be less than 64KB.
        !            41:    Try to keep this size on a sector (512-byte) boundary for performance.  */
        !            42: #ifndef DOS_BUF_SIZE
        !            43: #define DOS_BUF_SIZE 0x1000
        !            44: #endif
        !            45: 
        !            46: /* If DOS_BUF_DYNAMIC is set, then dos_buf is a pointer
        !            47:    which must be provided and initialized by calling code.
        !            48:    Otherwise, the dos_buf is a statically-allocated bss array.  */
        !            49: #ifdef DOS_BUF_DYNAMIC
        !            50: extern char *dos_buf;
        !            51: #else
        !            52: extern char dos_buf[DOS_BUF_SIZE];
        !            53: #endif
        !            54: 
        !            55: int dos_check_err(struct real_call_data *rcd);
        !            56: 
        !            57: int dos_open(const char *s, int flags, int create_mode, dos_fd_t *out_fh);
        !            58: int dos_close(dos_fd_t fd);
        !            59: int dos_read(dos_fd_t fd, void *buf, vm_size_t size, vm_size_t *out_actual);
        !            60: int dos_write(dos_fd_t fd, const void *buf, vm_size_t size, vm_size_t *out_actual);
        !            61: int dos_seek(dos_fd_t fd, vm_offset_t offset, int whence, vm_offset_t *out_newpos);
        !            62: int dos_fstat(dos_fd_t fd, struct stat *st);
        !            63: int dos_tcgetattr(dos_fd_t fd, struct termios *t);
        !            64: int dos_rename(const char *oldpath, const char *newpath);
        !            65: int dos_unlink(const char *filename);
        !            66: 
        !            67: int dos_gettimeofday(struct timeval *tv, struct timezone *tz);
        !            68: 
        !            69: #define dos_init_rcd(rcd) real_call_data_init(rcd)
        !            70: 
        !            71: #define real_set_ds_dx(ptr)                            \
        !            72:        ({ unsigned ofs = (unsigned)(ptr);              \
        !            73:           assert(ofs < 0x10000);                       \
        !            74:           real_call_data.ds = real_cs;                 \
        !            75:           real_call_data.edx = ofs;                    \
        !            76:        })
        !            77: #define real_set_es_di(ptr)                            \
        !            78:        ({ unsigned ofs = (unsigned)(ptr);              \
        !            79:           assert(ofs < 0x10000);                       \
        !            80:           real_call_data.es = real_cs;                 \
        !            81:           real_call_data.edi = ofs;                    \
        !            82:        })
        !            83: 
        !            84: 
        !            85: #endif _i386_kernel_dos_dos_io_h_

unix.superglobalmegacorp.com

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