[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT NGINX 5/5] Add stubs.c and ngx_modules.c
Hi Mihai, Actually here we have 2 patches here: one for stubs and the other for ngx_modules.c. Now, I have some comments regarding the two patches. The patch with the stubs should also add the entry in the Makefile. Regarding the ngx modules, I would add them all in one patch (all the modules supported by nginx) and in a another patch I would disable those that we currently do not support with our port for Unikraft. Or we can squish them both in a single one, but I really want all the modules to be listed here, even the disabled ones. It will help keeping track. For other comments, please see inline. On 10/9/19 1:42 AM, Mihai Pogonaru wrote: > The ngx_modules.c is auto-generated and modified to disable > the epoll module. > > Signed-off-by: Mihai Pogonaru <pogonarumihai@xxxxxxxxx> > --- > ngx_modules.c | 162 > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > stubs.c | 78 ++++++++++++++++++++++++++++ > 2 files changed, 240 insertions(+) > create mode 100644 ngx_modules.c > create mode 100644 stubs.c > > diff --git a/ngx_modules.c b/ngx_modules.c > new file mode 100644 > index 0000000..3bae7ea > --- /dev/null > +++ b/ngx_modules.c > @@ -0,0 +1,162 @@ > + > +#include <ngx_config.h> > +#include <ngx_core.h> > + > + > + > +extern ngx_module_t ngx_core_module; > +extern ngx_module_t ngx_errlog_module; > +extern ngx_module_t ngx_conf_module; > +extern ngx_module_t ngx_events_module; > +extern ngx_module_t ngx_event_core_module; > +//extern ngx_module_t ngx_epoll_module; > +extern ngx_module_t ngx_select_module; > +extern ngx_module_t ngx_http_module; > +extern ngx_module_t ngx_http_core_module; > +extern ngx_module_t ngx_http_log_module; > +extern ngx_module_t ngx_http_upstream_module; > +extern ngx_module_t ngx_http_static_module; > +extern ngx_module_t ngx_http_autoindex_module; > +extern ngx_module_t ngx_http_index_module; > +extern ngx_module_t ngx_http_mirror_module; > +extern ngx_module_t ngx_http_try_files_module; > +extern ngx_module_t ngx_http_access_module; > +extern ngx_module_t ngx_http_limit_conn_module; > +extern ngx_module_t ngx_http_limit_req_module; > +extern ngx_module_t ngx_http_geo_module; > +extern ngx_module_t ngx_http_map_module; > +extern ngx_module_t ngx_http_split_clients_module; > +extern ngx_module_t ngx_http_referer_module; > +extern ngx_module_t ngx_http_proxy_module; > +extern ngx_module_t ngx_http_fastcgi_module; > +extern ngx_module_t ngx_http_uwsgi_module; > +extern ngx_module_t ngx_http_scgi_module; > +extern ngx_module_t ngx_http_memcached_module; > +extern ngx_module_t ngx_http_empty_gif_module; > +extern ngx_module_t ngx_http_browser_module; > +extern ngx_module_t ngx_http_upstream_hash_module; > +extern ngx_module_t ngx_http_upstream_ip_hash_module; > +extern ngx_module_t ngx_http_upstream_least_conn_module; > +extern ngx_module_t ngx_http_upstream_random_module; > +extern ngx_module_t ngx_http_upstream_keepalive_module; > +extern ngx_module_t ngx_http_upstream_zone_module; > +extern ngx_module_t ngx_http_write_filter_module; > +extern ngx_module_t ngx_http_header_filter_module; > +extern ngx_module_t ngx_http_chunked_filter_module; > +extern ngx_module_t ngx_http_range_header_filter_module; > +extern ngx_module_t ngx_http_postpone_filter_module; > +extern ngx_module_t ngx_http_ssi_filter_module; > +extern ngx_module_t ngx_http_charset_filter_module; > +extern ngx_module_t ngx_http_sub_filter_module; > +extern ngx_module_t ngx_http_userid_filter_module; > +extern ngx_module_t ngx_http_headers_filter_module; > +extern ngx_module_t ngx_http_copy_filter_module; > +extern ngx_module_t ngx_http_range_body_filter_module; > +extern ngx_module_t ngx_http_not_modified_filter_module; > + > +ngx_module_t *ngx_modules[] = { > + &ngx_core_module, > + &ngx_errlog_module, > + &ngx_conf_module, > + &ngx_events_module, > + &ngx_event_core_module, > +// &ngx_epoll_module, > + &ngx_select_module, > + &ngx_http_module, > + &ngx_http_core_module, > + &ngx_http_log_module, > + &ngx_http_upstream_module, > + &ngx_http_static_module, > + &ngx_http_autoindex_module, > + &ngx_http_index_module, > + &ngx_http_mirror_module, > + &ngx_http_try_files_module, > + &ngx_http_access_module, > + &ngx_http_limit_conn_module, > + &ngx_http_limit_req_module, > + &ngx_http_geo_module, > + &ngx_http_map_module, > + &ngx_http_split_clients_module, > + &ngx_http_referer_module, > + &ngx_http_proxy_module, > + &ngx_http_fastcgi_module, > + &ngx_http_uwsgi_module, > + &ngx_http_scgi_module, > + &ngx_http_memcached_module, > + &ngx_http_empty_gif_module, > + &ngx_http_browser_module, > + &ngx_http_upstream_hash_module, > + &ngx_http_upstream_ip_hash_module, > + &ngx_http_upstream_least_conn_module, > + &ngx_http_upstream_random_module, > + &ngx_http_upstream_keepalive_module, > + &ngx_http_upstream_zone_module, > + &ngx_http_write_filter_module, > + &ngx_http_header_filter_module, > + &ngx_http_chunked_filter_module, > + &ngx_http_range_header_filter_module, > + &ngx_http_postpone_filter_module, > + &ngx_http_ssi_filter_module, > + &ngx_http_charset_filter_module, > + &ngx_http_sub_filter_module, > + &ngx_http_userid_filter_module, > + &ngx_http_headers_filter_module, > + &ngx_http_copy_filter_module, > + &ngx_http_range_body_filter_module, > + &ngx_http_not_modified_filter_module, > + NULL > +}; > + > +char *ngx_module_names[] = { > + "ngx_core_module", > + "ngx_errlog_module", > + "ngx_conf_module", > + "ngx_events_module", > + "ngx_event_core_module", > +// "ngx_epoll_module", > + "ngx_select_module", > + "ngx_http_module", > + "ngx_http_core_module", > + "ngx_http_log_module", > + "ngx_http_upstream_module", > + "ngx_http_static_module", > + "ngx_http_autoindex_module", > + "ngx_http_index_module", > + "ngx_http_mirror_module", > + "ngx_http_try_files_module", > + "ngx_http_access_module", > + "ngx_http_limit_conn_module", > + "ngx_http_limit_req_module", > + "ngx_http_geo_module", > + "ngx_http_map_module", > + "ngx_http_split_clients_module", > + "ngx_http_referer_module", > + "ngx_http_proxy_module", > + "ngx_http_fastcgi_module", > + "ngx_http_uwsgi_module", > + "ngx_http_scgi_module", > + "ngx_http_memcached_module", > + "ngx_http_empty_gif_module", > + "ngx_http_browser_module", > + "ngx_http_upstream_hash_module", > + "ngx_http_upstream_ip_hash_module", > + "ngx_http_upstream_least_conn_module", > + "ngx_http_upstream_random_module", > + "ngx_http_upstream_keepalive_module", > + "ngx_http_upstream_zone_module", > + "ngx_http_write_filter_module", > + "ngx_http_header_filter_module", > + "ngx_http_chunked_filter_module", > + "ngx_http_range_header_filter_module", > + "ngx_http_postpone_filter_module", > + "ngx_http_ssi_filter_module", > + "ngx_http_charset_filter_module", > + "ngx_http_sub_filter_module", > + "ngx_http_userid_filter_module", > + "ngx_http_headers_filter_module", > + "ngx_http_copy_filter_module", > + "ngx_http_range_body_filter_module", > + "ngx_http_not_modified_filter_module", > + NULL > +}; > + > diff --git a/stubs.c b/stubs.c > new file mode 100644 > index 0000000..b6a3e32 > --- /dev/null > +++ b/stubs.c > @@ -0,0 +1,78 @@ > +/* SPDX-License-Identifier: BSD-3-Clause */ > +/* > + * Nginx stubs.c > + * > + * Authors: Mihai Pogonaru <pogonarumihai@xxxxxxxxx> > + * > + * Copyright (c) 2019, University Politehnica of Bucharest. All rights > reserved. > + * > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions > + * are met: > + * > + * 1. Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer. > + * 2. Redistributions in binary form must reproduce the above copyright > + * notice, this list of conditions and the following disclaimer in the > + * documentation and/or other materials provided with the distribution. > + * 3. Neither the name of the copyright holder nor the names of its > + * contributors may be used to endorse or promote products derived from > + * this software without specific prior written permission. > + * > + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS > IS" > + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > PURPOSE > + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE > + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF > THE > + * POSSIBILITY OF SUCH DAMAGE. > + * > + * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY. > + */ > + > +#include <grp.h> > +#include <sys/types.h> > +#include <sys/time.h> > +#include <uk/print.h> > + > +long timezone = 0; Where is the 'timezone' variable needed? > + > +#define WARN_STUBBED() uk_pr_warn("%s() stubbed\n", __func__) We should actually define something like this in the Unikraft core and use it everywhere. I guess it's safe to actually define it in <uk/print.h>. > + > +int prctl(int option, unsigned long arg2, unsigned long arg3, unsigned long > arg4, unsigned long arg5) > +{ > + WARN_STUBBED(); > + return 0; > +} This should be actually moved to newlib's glue code in process.c. > + > +int setitimer(int which, const struct itimerval *new_value, struct itimerval > *old_value) > +{ > + WARN_STUBBED(); > + return 0; > +} This should be moved to uktime internal lib. > + > +int setpriority(int which, id_t who, int prio) > +{ > + WARN_STUBBED(); > + return 0; > +} This should be actually moved to newlib's glue code in process.c. > + > +struct group *getgrnam(const char *name) > +{ > + WARN_STUBBED(); > + static struct group g__ = { > + .gr_gid = 0 > + }; > + > + return &g__; > +} This should be moved to user.c in ukunistd internal lib. > + > +ssize_t sendfile(int out_fd, int in_fd, off_t *_offset, size_t count) > +{ > + WARN_STUBBED(); > + return 0; > +} > We can move this to lwip glue, but I don't feel string about it. We can keep it here if you want. Cheers, Costin _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |