1 // Copyright 2016 The Fuchsia Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include <stdarg.h>
6 #include <stdatomic.h>
7 #include <stdint.h>
8 #include <stdlib.h>
9 #include <string.h>
10 
11 #include <zircon/syscalls.h>
12 #include <zircon/types.h>
13 #include <lib/fdio/io.h>
14 
15 #include "private.h"
16 
fdio_default_get_token(fdio_t * io,zx_handle_t * out)17 zx_status_t fdio_default_get_token(fdio_t* io, zx_handle_t* out) {
18     return ZX_ERR_NOT_SUPPORTED;
19 }
20 
fdio_default_get_attr(fdio_t * io,fuchsia_io_NodeAttributes * out)21 zx_status_t fdio_default_get_attr(fdio_t* io, fuchsia_io_NodeAttributes* out) {
22     return ZX_ERR_NOT_SUPPORTED;
23 }
24 
fdio_default_set_attr(fdio_t * io,uint32_t flags,const fuchsia_io_NodeAttributes * attr)25 zx_status_t fdio_default_set_attr(fdio_t* io, uint32_t flags, const fuchsia_io_NodeAttributes* attr) {
26     return ZX_ERR_NOT_SUPPORTED;
27 }
28 
fdio_default_sync(fdio_t * io)29 zx_status_t fdio_default_sync(fdio_t* io) {
30     return ZX_ERR_NOT_SUPPORTED;
31 }
32 
fdio_default_readdir(fdio_t * io,void * ptr,size_t max,size_t * actual)33 zx_status_t fdio_default_readdir(fdio_t* io, void* ptr, size_t max, size_t* actual) {
34     return ZX_ERR_NOT_SUPPORTED;
35 }
36 
fdio_default_rewind(fdio_t * io)37 zx_status_t fdio_default_rewind(fdio_t* io) {
38     return ZX_ERR_NOT_SUPPORTED;
39 }
40 
fdio_default_unlink(fdio_t * io,const char * path,size_t len)41 zx_status_t fdio_default_unlink(fdio_t* io, const char* path, size_t len) {
42     return ZX_ERR_NOT_SUPPORTED;
43 }
44 
fdio_default_truncate(fdio_t * io,off_t off)45 zx_status_t fdio_default_truncate(fdio_t* io, off_t off) {
46     return ZX_ERR_NOT_SUPPORTED;
47 }
48 
fdio_default_rename(fdio_t * io,const char * src,size_t srclen,zx_handle_t dst_token,const char * dst,size_t dstlen)49 zx_status_t fdio_default_rename(fdio_t* io, const char* src, size_t srclen,
50                                 zx_handle_t dst_token, const char* dst, size_t dstlen) {
51     zx_handle_close(dst_token);
52     return ZX_ERR_NOT_SUPPORTED;
53 }
54 
fdio_default_link(fdio_t * io,const char * src,size_t srclen,zx_handle_t dst_token,const char * dst,size_t dstlen)55 zx_status_t fdio_default_link(fdio_t* io, const char* src, size_t srclen,
56                               zx_handle_t dst_token, const char* dst, size_t dstlen) {
57     zx_handle_close(dst_token);
58     return ZX_ERR_NOT_SUPPORTED;
59 }
60 
fdio_default_get_flags(fdio_t * io,uint32_t * out_flags)61 zx_status_t fdio_default_get_flags(fdio_t* io, uint32_t* out_flags) {
62     return ZX_ERR_NOT_SUPPORTED;
63 }
64 
fdio_default_set_flags(fdio_t * io,uint32_t flags)65 zx_status_t fdio_default_set_flags(fdio_t* io, uint32_t flags) {
66     return ZX_ERR_NOT_SUPPORTED;
67 }
68 
fdio_default_read(fdio_t * io,void * _data,size_t len)69 ssize_t fdio_default_read(fdio_t* io, void* _data, size_t len) {
70     return ZX_ERR_WRONG_TYPE;
71 }
72 
fdio_default_read_at(fdio_t * io,void * _data,size_t len,off_t offset)73 ssize_t fdio_default_read_at(fdio_t* io, void* _data, size_t len, off_t offset) {
74     return ZX_ERR_WRONG_TYPE;
75 }
76 
fdio_default_write(fdio_t * io,const void * _data,size_t len)77 ssize_t fdio_default_write(fdio_t* io, const void* _data, size_t len) {
78     return ZX_ERR_WRONG_TYPE;
79 }
80 
fdio_default_write_at(fdio_t * io,const void * _data,size_t len,off_t offset)81 ssize_t fdio_default_write_at(fdio_t* io, const void* _data, size_t len, off_t offset) {
82     return ZX_ERR_WRONG_TYPE;
83 }
84 
fdio_default_recvfrom(fdio_t * io,void * data,size_t len,int flags,struct sockaddr * restrict addr,socklen_t * restrict addrlen)85 ssize_t fdio_default_recvfrom(fdio_t* io, void* data, size_t len, int flags, struct sockaddr* restrict addr, socklen_t* restrict addrlen) {
86     return ZX_ERR_WRONG_TYPE;
87 }
88 
fdio_default_sendto(fdio_t * io,const void * data,size_t len,int flags,const struct sockaddr * addr,socklen_t addrlen)89 ssize_t fdio_default_sendto(fdio_t* io, const void* data, size_t len, int flags, const struct sockaddr* addr, socklen_t addrlen) {
90     return ZX_ERR_WRONG_TYPE;
91 }
92 
fdio_default_recvmsg(fdio_t * io,struct msghdr * msg,int flags)93 ssize_t fdio_default_recvmsg(fdio_t* io, struct msghdr* msg, int flags) {
94     return ZX_ERR_WRONG_TYPE;
95 }
96 
fdio_default_sendmsg(fdio_t * io,const struct msghdr * msg,int flags)97 ssize_t fdio_default_sendmsg(fdio_t* io, const struct msghdr* msg, int flags) {
98     return ZX_ERR_WRONG_TYPE;
99 }
100 
fdio_default_seek(fdio_t * io,off_t offset,int whence)101 off_t fdio_default_seek(fdio_t* io, off_t offset, int whence) {
102     return ZX_ERR_WRONG_TYPE;
103 }
104 
fdio_default_misc(fdio_t * io,uint32_t op,int64_t off,uint32_t arg,void * data,size_t len)105 zx_status_t fdio_default_misc(fdio_t* io, uint32_t op, int64_t off, uint32_t arg, void* data, size_t len) {
106     return ZX_ERR_NOT_SUPPORTED;
107 }
108 
fdio_default_open(fdio_t * io,const char * path,uint32_t flags,uint32_t mode,fdio_t ** out)109 zx_status_t fdio_default_open(fdio_t* io, const char* path, uint32_t flags, uint32_t mode, fdio_t** out) {
110     return ZX_ERR_NOT_SUPPORTED;
111 }
112 
fdio_default_clone(fdio_t * io,zx_handle_t * handles,uint32_t * types)113 zx_status_t fdio_default_clone(fdio_t* io, zx_handle_t* handles, uint32_t* types) {
114     return ZX_ERR_NOT_SUPPORTED;
115 }
116 
fdio_default_unwrap(fdio_t * io,zx_handle_t * handles,uint32_t * types)117 zx_status_t fdio_default_unwrap(fdio_t* io, zx_handle_t* handles, uint32_t* types) {
118     return ZX_ERR_NOT_SUPPORTED;
119 }
120 
fdio_default_shutdown(fdio_t * io,int how)121 zx_status_t fdio_default_shutdown(fdio_t* io, int how) {
122     return ZX_ERR_WRONG_TYPE;
123 }
124 
fdio_default_close(fdio_t * io)125 zx_status_t fdio_default_close(fdio_t* io) {
126     return ZX_OK;
127 }
128 
fdio_default_ioctl(fdio_t * io,uint32_t op,const void * in_buf,size_t in_len,void * out_buf,size_t out_len)129 ssize_t fdio_default_ioctl(fdio_t* io, uint32_t op, const void* in_buf,
130                            size_t in_len, void* out_buf, size_t out_len) {
131     return ZX_ERR_NOT_SUPPORTED;
132 }
133 
fdio_default_wait_begin(fdio_t * io,uint32_t events,zx_handle_t * handle,zx_signals_t * _signals)134 void fdio_default_wait_begin(fdio_t* io, uint32_t events,
135                              zx_handle_t* handle, zx_signals_t* _signals) {
136     *handle = ZX_HANDLE_INVALID;
137 }
138 
fdio_default_wait_end(fdio_t * io,zx_signals_t signals,uint32_t * _events)139 void fdio_default_wait_end(fdio_t* io, zx_signals_t signals, uint32_t* _events) {
140 }
141 
fdio_default_posix_ioctl(fdio_t * io,int req,va_list va)142 ssize_t fdio_default_posix_ioctl(fdio_t* io, int req, va_list va) {
143     return ZX_ERR_NOT_SUPPORTED;
144 }
145 
fdio_default_get_vmo(fdio_t * io,int flags,zx_handle_t * out)146 zx_status_t fdio_default_get_vmo(fdio_t* io, int flags, zx_handle_t* out) {
147     return ZX_ERR_NOT_SUPPORTED;
148 }
149