Annotation of Gnu-Mach/i386/dos/dos_io.h, revision 1.1.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.