0,0 → 1,69 |
/* Copyright (C) 1998 DJ Delorie, see COPYING.DJ for details */ |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#ifndef __dj_include_sys_fsext_h_ |
#define __dj_include_sys_fsext_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
#ifndef __dj_ENFORCE_ANSI_FREESTANDING |
|
#ifndef __STRICT_ANSI__ |
|
#ifndef _POSIX_SOURCE |
|
#include <stdarg.h> |
|
typedef enum { |
__FSEXT_nop, |
__FSEXT_open, |
__FSEXT_creat, |
__FSEXT_read, |
__FSEXT_write, |
__FSEXT_ready, |
__FSEXT_close, |
__FSEXT_fcntl, |
__FSEXT_ioctl, |
__FSEXT_lseek, |
__FSEXT_link, |
__FSEXT_unlink, |
__FSEXT_dup, |
__FSEXT_dup2, |
__FSEXT_fstat, |
__FSEXT_stat |
} __FSEXT_Fnumber; |
|
/* _ready gets passed a fd and should return a mask of these, |
as if we were emulating "int ready(int fd)" */ |
#define __FSEXT_ready_read 1 |
#define __FSEXT_ready_write 2 |
#define __FSEXT_ready_error 4 |
|
/* The return value is nonzero if the function has overridden the |
caller's functionality. */ |
typedef int (__FSEXT_Function)(__FSEXT_Fnumber _function_number, |
int *_rv, /*va_list*/void* _args); |
|
int __FSEXT_alloc_fd(__FSEXT_Function *_function); |
int __FSEXT_set_function(int _fd, __FSEXT_Function *_function); |
__FSEXT_Function *__FSEXT_get_function(int _fd); |
void *__FSEXT_set_data(int _fd, void *_data); |
void *__FSEXT_get_data(int _fd); |
|
int __FSEXT_add_open_handler(__FSEXT_Function *_function); |
int __FSEXT_call_open_handlers(__FSEXT_Fnumber _function_number, |
int *rv, /*va_list*/void* _args); |
|
#endif /* !_POSIX_SOURCE */ |
#endif /* !__STRICT_ANSI__ */ |
#endif /* !__dj_ENFORCE_ANSI_FREESTANDING */ |
|
#ifndef __dj_ENFORCE_FUNCTION_CALLS |
#endif /* !__dj_ENFORCE_FUNCTION_CALLS */ |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif /* !__dj_include_sys_fsext_h_ */ |