summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Kühndel <frank.kuehndel@embedded-brains.de>2022-10-13 17:41:33 +0200
committerChris Johns <chrisj@rtems.org>2022-10-14 12:39:57 +1100
commite3cbdca98143bfccdac47f077abed1bcf4fbd7ad (patch)
tree3b5def9e7e0cf18665e01cded5dffd4cdef60027
parentREADME: Add a note about image tools (diff)
downloadrtems-docs-e3cbdca98143bfccdac47f077abed1bcf4fbd7ad.tar.bz2
TFTPFS: Adding missing diagram
-rw-r--r--filesystem/trivial_ftp.rst8
-rw-r--r--images/filesystem/tftpfs_usage.pngbin0 -> 47217 bytes
-rw-r--r--images/filesystem/tftpfs_usage.puml37
3 files changed, 43 insertions, 2 deletions
diff --git a/filesystem/trivial_ftp.rst b/filesystem/trivial_ftp.rst
index 3ef8bba..b8e1ae4 100644
--- a/filesystem/trivial_ftp.rst
+++ b/filesystem/trivial_ftp.rst
@@ -275,16 +275,20 @@ repository):
Usage
=====
-The following diagram shows how the TFTP filesystem is used by an
+The following diagram usage_ shows how the TFTP filesystem is used by an
application. The mount point can be any directory. The name ``/tftp``
used in the figure serves only as an example. The final unmounting and
remove directory steps are optional.
+.. _usage:
+
.. figure:: ../images/filesystem/tftpfs_usage.png
- :width: 90%
+ :width: 75%
:align: center
:alt: TFTP Usage Diagram
+ TFTP file system usage
+
Mounting the TFTP Filesystem
----------------------------
diff --git a/images/filesystem/tftpfs_usage.png b/images/filesystem/tftpfs_usage.png
new file mode 100644
index 0000000..5faa72f
--- /dev/null
+++ b/images/filesystem/tftpfs_usage.png
Binary files differ
diff --git a/images/filesystem/tftpfs_usage.puml b/images/filesystem/tftpfs_usage.puml
new file mode 100644
index 0000000..ebd449c
--- /dev/null
+++ b/images/filesystem/tftpfs_usage.puml
@@ -0,0 +1,37 @@
+'
+' TFTP file system : usage
+'
+' Copyright (c) 2022 Frank Kuehndel <frank.kuehndel@embedded-brains.de>
+' All rights reserved.
+'
+@startuml
+:Initialize libbsd;
+:Initialize Networking;
+:const char *mount_point = "/tftp"
+result = mkdir( mount_point, S_IRWXU | S_IRWXG | S_IRWXO );
+:result = mount(
+ "",
+ mount_point,
+ RTEMS_FILESYSTEM_TYPE_TFTPFS,
+ RTEMS_FILESYSTEM_READ_WRITE,
+ "blocksize=1024,windowsize=4,verbose"
+ );
+repeat
+ if () then
+ :fd = open( path, O_RDONLY );
+ repeat
+ :bytes = read( fd, data_buffer,
+ sizeof( data_buffer ) );
+ repeat while ()
+ :result = close( fd );
+ else
+ :fd = open( path, O_WRONLY );
+ repeat
+ :bytes = write( fd, data, size );
+ repeat while ()
+ :result = close( fd );
+ endif
+repeat while ()
+:result = unmount( mount_point );
+:result = rmdir( mount_point );
+@enduml