summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorLuke T. Shumaker <lukeshu@lukeshu.com>2025-01-11 23:33:44 -0700
committerLuke T. Shumaker <lukeshu@lukeshu.com>2025-01-11 23:33:44 -0700
commit7eda822ef31a15d22de03fc1eec7d995f661b26d (patch)
tree0f00fdf307cfa78337c50a43e2ff842942922af5 /cmd
parent8573ec62fe175edc73c6c54d24e520ee6aba3f96 (diff)
parentd29cb3f3deda2ae55fbccfdaae3b2481410a0894 (diff)
Merge branch 'lukeshu/9p-tests'
Diffstat (limited to 'cmd')
-rw-r--r--cmd/srv9p/CMakeLists.txt42
-rw-r--r--cmd/srv9p/config/config.h60
-rw-r--r--cmd/srv9p/main.c129
-rw-r--r--cmd/srv9p/static/Documentation/x1
-rw-r--r--cmd/srv9p/static/README.md1
5 files changed, 0 insertions, 233 deletions
diff --git a/cmd/srv9p/CMakeLists.txt b/cmd/srv9p/CMakeLists.txt
deleted file mode 100644
index 0d8e320..0000000
--- a/cmd/srv9p/CMakeLists.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-# cmd/srv9p/CMakeLists.txt - Build script for srv9p test/dev executable
-#
-# Copyright (C) 2024 Luke T. Shumaker <lukeshu@lukeshu.com>
-# SPDX-License-Identifier: AGPL-3.0-or-later
-
-if (PICO_PLATFORM STREQUAL "host")
-
-# Compile ######################################################################
-
-add_library(srv9p_objs OBJECT
- main.c
-)
-target_include_directories(srv9p_objs PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/config)
-target_include_directories(srv9p_objs PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
-target_link_libraries(srv9p_objs
- libcr
- libcr_ipc
- libmisc
- lib9p
- lib9p_util
-)
-
-# Analyze the stack ############################################################
-
-add_stack_analysis(srv9p_stack.c srv9p_objs)
-
-# Link #########################################################################
-
-add_executable(srv9p)
-target_sources(srv9p PRIVATE
- srv9p_stack.c
- "$<TARGET_OBJECTS:srv9p_objs>"
-)
-
-# Embed ########################################################################
-
-target_embed_sources(srv9p_objs srv9p static.h
- static/README.md
- static/Documentation/x
-)
-
-endif()
diff --git a/cmd/srv9p/config/config.h b/cmd/srv9p/config/config.h
deleted file mode 100644
index 4f8384e..0000000
--- a/cmd/srv9p/config/config.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* config.h - Compile-time configuration for srv9p
- *
- * Copyright (C) 2024 Luke T. Shumaker <lukeshu@lukeshu.com>
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
-
-#ifndef _CONFIG_H_
-#define _CONFIG_H_
-
-#define CONFIG_SRV9P_NUM_CONNS 8
-
-/* 9P *************************************************************************/
-
-#define CONFIG_9P_PORT 564
-/**
- * This max-msg-size is sized so that a Twrite message can return
- * 8KiB of data.
- *
- * This is the same as the default in Plan 9 4e's lib9p; it has the
- * comment that "24" is "ample room for Twrite/Rread header
- * (iounit)". In fact, the Twrite header is only 23 bytes
- * ("size[4] Twrite[1] tag[2] fid[4] offset[8] count[4]") and the
- * Rread header is even shorter at 11 bytes ("size[4] Rread[1]
- * tag[2] count[4]"), so "24" appears to be the size of the Twrite
- * header rounded up to a nice round number.
- *
- * In older versions of 9P ("9P1"), the max message size was
- * defined as part of the protocol specification rather than
- * negotiated. In Plan 9 1e it was (8*1024)+128, and was bumped to
- * (8*1024)+160 in 2e and 3e.
- */
-#define CONFIG_9P_MAX_MSG_SIZE ((4*1024)+24)
-/**
- * Maximum host-data-structure size. A message may be larger in
- * unmarshaled-host-structures than marshaled-net-bytes due to (1)
- * struct padding, (2) nul-terminator byes for strings.
- */
-#define CONFIG_9P_MAX_HOSTMSG_SIZE CONFIG_9P_MAX_MSG_SIZE+16
-#define CONFIG_9P_MAX_FIDS 16
-#define CONFIG_9P_MAX_REQS 2
-#define CONFIG_9P_MAX_ERR_SIZE 128 /* 128 is what Plan 9 4e uses */
-#define CONFIG_9P_ENABLE_9P2000 1 /* bool */
-#define CONFIG_9P_ENABLE_9P2000_u 1 /* bool */
-#define CONFIG_9P_ENABLE_9P2000_e 0 /* bool */
-
-/* COROUTINE ******************************************************************/
-
-#define CONFIG_COROUTINE_DEFAULT_STACK_SIZE (32*1024)
-#define CONFIG_COROUTINE_NAME_LEN 16
-#define CONFIG_COROUTINE_MEASURE_STACK 1 /* bool */
-#define CONFIG_COROUTINE_PROTECT_STACK 1 /* bool */
-#define CONFIG_COROUTINE_DEBUG 0 /* bool */
-#define CONFIG_COROUTINE_VALGRIND 1 /* bool */
-#define CONFIG_COROUTINE_GDB 1 /* bool */
-#define CONFIG_COROUTINE_NUM (1 /* usb_common */ +\
- 1 /* usb_keyboard */ +\
- CONFIG_SRV9P_NUM_CONNS /* accept+read */ +\
- (CONFIG_9P_MAX_REQS*CONFIG_SRV9P_NUM_CONNS) /* work+write */ )
-
-#endif /* _CONFIG_H_ */
diff --git a/cmd/srv9p/main.c b/cmd/srv9p/main.c
deleted file mode 100644
index b5cb122..0000000
--- a/cmd/srv9p/main.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/* srv9p/main.c - Main entry point for test 9P server
- *
- * Copyright (C) 2024 Luke T. Shumaker <lukeshu@lukeshu.com>
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
-
-#include <error.h>
-
-#include <lib9p/srv.h>
-#include <libcr/coroutine.h>
-#include <libhw/generic/net.h>
-#include <libhw/generic/alarmclock.h>
-#include <libhw/host_net.h>
-#include <libmisc/macro.h>
-#include <util9p/static.h>
-
-#include "static.h"
-
-/* configuration **************************************************************/
-
-#include "config.h"
-
-#ifndef CONFIG_SRV9P_NUM_CONNS
- #error config.h must define CONFIG_SRV9P_NUM_CONNS
-#endif
-
-/* implementation *************************************************************/
-
-/* file tree ******************************************************************/
-
-#define FILE_COMMON(NAME) { \
- .vtable = &util9p_static_file_vtable, \
- \
- .u_name = "root", .u_num = 0, /* owner user */ \
- .g_name = "root", .g_num = 0, /* owner group */ \
- .m_name = "root", .m_num = 0, /* last-modified-by user */ \
- \
- .pathnum = __COUNTER__, \
- .name = NAME, \
- .perm = 0444, \
- .atime = 1728337905, \
- .mtime = 1728337904, \
- }
-
-#define DIR_COMMON(NAME) { \
- .vtable = &util9p_static_dir_vtable, \
- \
- .u_name = "root", .u_num = 0, /* owner user */ \
- .g_name = "root", .g_num = 0, /* owner group */ \
- .m_name = "root", .m_num = 0, /* last-modified-by user */ \
- \
- .pathnum = __COUNTER__, \
- .name = NAME, \
- .perm = 0555, \
- .atime = 1728337905, \
- .mtime = 1728337904, \
- }
-
-#define STATIC_FILE(STRNAME, SYMNAME) \
- &((static struct util9p_static_file){ \
- ._util9p_static_common = FILE_COMMON(STRNAME), \
- .data_start = _binary_static_##SYMNAME##_start, \
- .data_end = _binary_static_##SYMNAME##_end, \
- })
-
-static struct util9p_static_dir root = {
- ._util9p_static_common = DIR_COMMON(""),
- .members = {
- &((static struct util9p_static_dir){
- ._util9p_static_common = DIR_COMMON("Documentation"),
- .members = {
- STATIC_FILE("x", Documentation_x),
- NULL
- },
- }),
- STATIC_FILE("README.md", README_md),
- NULL,
- },
-};
-
-static implements_lib9p_srv_file *get_root(struct lib9p_srv_ctx *LM_UNUSED(ctx), char *LM_UNUSED(treename)) {
- return &root;
-}
-
-/* main ***********************************************************************/
-
-static COROUTINE read_cr(void *_srv) {
- struct lib9p_srv *srv = _srv;
- assert(srv);
-
- cr_begin();
-
- struct hostnet_tcp_listener listener;
- hostnet_tcp_listener_init(&listener, 9000);
-
- lib9p_srv_read_cr(srv, &listener);
-
- cr_end();
-}
-
-const char *hexdig = "0123456789abcdef";
-
-struct lib9p_srv srv = {
- .rootdir = get_root,
-};
-
-static COROUTINE init_cr(void *) {
- cr_begin();
-
- for (int i = 0; i < CONFIG_SRV9P_NUM_CONNS; i++) {
- char name[] = {'r', 'e', 'a', 'd', '-', hexdig[i], '\0'};
- if (!coroutine_add(name, read_cr, &srv))
- error(1, 0, "coroutine_add(read_cr, &srv)");
- sleep_for_s(1);
- }
- for (int i = 0; i < 2*CONFIG_SRV9P_NUM_CONNS; i++) {
- char name[] = {'w', 'r', 'i', 't', 'e', '-', hexdig[i], '\0'};
- if (!coroutine_add(name, lib9p_srv_write_cr, &srv))
- error(1, 0, "coroutine_add(lib9p_srv_write_cr, &srv)");
- sleep_for_s(1);
- }
-
- cr_exit();
-}
-
-int main() {
- coroutine_add("init", init_cr, NULL);
- coroutine_main();
-}
diff --git a/cmd/srv9p/static/Documentation/x b/cmd/srv9p/static/Documentation/x
deleted file mode 100644
index 257cc56..0000000
--- a/cmd/srv9p/static/Documentation/x
+++ /dev/null
@@ -1 +0,0 @@
-foo
diff --git a/cmd/srv9p/static/README.md b/cmd/srv9p/static/README.md
deleted file mode 100644
index af5626b..0000000
--- a/cmd/srv9p/static/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Hello, world!