Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4

- name: Build dmdfs project
- name: Build dmdevfs project
run: |
mkdir -p build
cd build
Expand Down
24 changes: 12 additions & 12 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ jobs:
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Extracted version: $VERSION"

- name: Build dmdfs for ${{ matrix.arch_name }}
- name: Build dmdevfs for ${{ matrix.arch_name }}
run: |
set -e
ARCH_DIR_NAME=$(echo "${{ matrix.arch_name }}" | sed 's|/|-|')
Expand All @@ -91,12 +91,12 @@ jobs:
DMF_DIR="$BUILD_DIR/dmf"
DMFC_DIR="$BUILD_DIR/dmfc"

cp $DMF_DIR/dmdfs.dmf release_package/
cp $DMF_DIR/dmdfs_version.txt release_package/
cp $DMFC_DIR/dmdfs.dmfc release_package/
cp $DMF_DIR/dmdevfs.dmf release_package/
cp $DMF_DIR/dmdevfs_version.txt release_package/
cp $DMFC_DIR/dmdevfs.dmfc release_package/
# Copy .dmd file if it exists
if [ -f $DMF_DIR/dmdfs.dmd ]; then
cp $DMF_DIR/dmdfs.dmd release_package/
if [ -f $DMF_DIR/dmdevfs.dmd ]; then
cp $DMF_DIR/dmdevfs.dmd release_package/
fi

# Copy documentation and license
Expand All @@ -112,16 +112,16 @@ jobs:
- name: Create release archive
run: |
cd release_package
zip -r ../dmdfs-${{ github.event.release.tag_name }}-$ARCH_DIR_NAME.zip .
zip -r ../dmdevfs-${{ github.event.release.tag_name }}-$ARCH_DIR_NAME.zip .
cd ..
echo "Created archive:"
ls -lh dmdfs-*.zip
ls -lh dmdevfs-*.zip

- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME }}
path: dmdfs-${{ github.event.release.tag_name }}-*.zip
path: dmdevfs-${{ github.event.release.tag_name }}-*.zip
retention-days: 1

generate-versions-manifest:
Expand All @@ -140,7 +140,7 @@ jobs:
- name: Generate versions.dmm
run: |
set -e
echo "# List of available versions for dmdfs modules" > versions.dmm
echo "# List of available versions for dmdevfs modules" > versions.dmm
echo "# Generated automatically by CI" >> versions.dmm
echo "" >> versions.dmm

Expand All @@ -158,8 +158,8 @@ jobs:

echo "Found versions: $VERSIONS"

# Add $version-available directive for dmdfs module
echo "\$version-available dmdfs $VERSIONS" >> versions.dmm
# Add $version-available directive for dmdevfs module
echo "\$version-available dmdevfs $VERSIONS" >> versions.dmm

echo "Generated versions.dmm:"
cat versions.dmm
Expand Down
8 changes: 4 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ set(DMOD_BUILD_TEMPLATES OFF CACHE BOOL "Build templates")

FetchContent_MakeAvailable(dmod)

project(dmdfs
project(dmdevfs
VERSION ${DMOD_MODULE_VERSION}
DESCRIPTION "DMOD Driver File System"
LANGUAGES C CXX)
Expand All @@ -57,10 +57,10 @@ FetchContent_Declare(
FetchContent_MakeAvailable(dmfsi)

# ======================================================================
# DMDFS Module Configuration
# DMDEVFS Module Configuration
# ======================================================================
# Name of the module
set(DMOD_MODULE_NAME dmdfs)
set(DMOD_MODULE_NAME dmdevfs)

# Version is already set above and used in project()
# No need to set it again here
Expand All @@ -79,7 +79,7 @@ set(DMOD_STACK_SIZE 1024)
#
dmod_add_library(${DMOD_MODULE_NAME} ${DMOD_MODULE_VERSION}
# List of source files - can include C and C++ files
src/dmdfs.c
src/dmdevfs.c
)

target_include_directories(${DMOD_MODULE_NAME} PRIVATE
Expand Down
34 changes: 17 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# dmdfs
# dmdevfs

DMOD Driver File System - A driver-based file system module for embedded systems.

## Overview

`dmdfs` (DMOD Driver File System) is a file system implementation that provides an interface to access files through hardware drivers or external storage. It is built on the **DMOD (Dynamic Modules)** framework and implements the **DMFSI (DMOD File System Interface)**, making it compatible with **DMVFS (DMOD Virtual File System)** and other DMOD-based applications.
`dmdevfs` (DMOD Driver File System) is a file system implementation that provides an interface to access files through hardware drivers or external storage. It is built on the **DMOD (Dynamic Modules)** framework and implements the **DMFSI (DMOD File System Interface)**, making it compatible with **DMVFS (DMOD Virtual File System)** and other DMOD-based applications.

### Key Features

Expand All @@ -15,7 +15,7 @@ DMOD Driver File System - A driver-based file system module for embedded systems

## Architecture

DMDFS is part of a modular embedded file system architecture built on DMOD:
DMDEVFS is part of a modular embedded file system architecture built on DMOD:

```
┌─────────────────────────────────────────────────────────────┐
Expand Down Expand Up @@ -43,7 +43,7 @@ DMDFS is part of a modular embedded file system architecture built on DMOD:
┌─────────────────┼─────────────────┐
▼ ▼ ▼
┌────────────────┐ ┌─────────────┐ ┌─────────────┐
DMDFS (Driver) │ │ DMFFS (Flash│ │ DMRAMFS (RAM│
DMDEVFS (Driver│ │ DMFFS (Flash│ │ DMRAMFS (RAM│
│ Driver-based │ │ Read-only │ │ Temporary │
│ (This Project) │ │ │ │ │
└────────────────┘ └─────────────┘ └─────────────┘
Expand All @@ -57,9 +57,9 @@ DMDFS is part of a modular embedded file system architecture built on DMOD:
### Component Relationships

- **[DMOD](https://github.com/choco-technologies/dmod)**: The foundation providing dynamic module loading, inter-module communication, and resource management
- **[DMFSI](https://github.com/choco-technologies/dmfsi)**: Defines the standard file system interface that DMDFS implements
- **[DMVFS](https://github.com/choco-technologies/dmvfs)**: Virtual file system layer that can mount DMDFS at any path in a unified directory tree
- **DMDFS**: This project - implements DMFSI to provide access to driver-based storage
- **[DMFSI](https://github.com/choco-technologies/dmfsi)**: Defines the standard file system interface that DMDEVFS implements
- **[DMVFS](https://github.com/choco-technologies/dmvfs)**: Virtual file system layer that can mount DMDEVFS at any path in a unified directory tree
- **DMDEVFS**: This project - implements DMFSI to provide access to driver-based storage

## Building

Expand All @@ -81,7 +81,7 @@ The module can be loaded and mounted using DMVFS:
dmvfs_init(16, 32);

// Mount the driver filesystem at /mnt
dmvfs_mount_fs("dmdfs", "/mnt", NULL);
dmvfs_mount_fs("dmdevfs", "/mnt", NULL);

// Use standard file operations
void* fp;
Expand Down Expand Up @@ -127,11 +127,11 @@ The module implements the full DMFSI interface:
## Project Structure

```
dmdfs/
dmdevfs/
├── include/
│ └── dmdfs.h # Public header
│ └── dmdevfs.h # Public header
├── src/
│ └── dmdfs.c # Main DMDFS implementation
│ └── dmdevfs.c # Main DMDEVFS implementation
├── CMakeLists.txt # CMake build configuration
├── manifest.dmm # DMOD manifest file
├── README.md # This file
Expand All @@ -149,27 +149,27 @@ dmdfs/
```cmake
include(FetchContent)

# Fetch DMDFS
# Fetch DMDEVFS
FetchContent_Declare(
dmdfs
dmdevfs
GIT_REPOSITORY https://github.com/choco-technologies/dmdfs.git
GIT_TAG main
)

# Set DMOD mode
set(DMOD_MODE "DMOD_MODULE" CACHE STRING "DMOD build mode")

FetchContent_MakeAvailable(dmdfs)
FetchContent_MakeAvailable(dmdevfs)

# Link to your target
target_link_libraries(your_target PRIVATE dmdfs)
target_link_libraries(your_target PRIVATE dmdevfs)
```

### Manual Integration

1. Clone the repository: `git clone https://github.com/choco-technologies/dmdfs.git`
2. Add as subdirectory: `add_subdirectory(dmdfs)`
3. Link library: `target_link_libraries(your_target dmdfs)`
2. Add as subdirectory: `add_subdirectory(dmdevfs)`
3. Link library: `target_link_libraries(your_target dmdevfs)`

## Contributing

Expand Down
12 changes: 6 additions & 6 deletions include/dmdfs.h → include/dmdevfs.h
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
/**
* @file dmdfs.h
* @file dmdevfs.h
* @brief DMOD Driver File System - Public header
* @author Patryk Kubiak
*/

#ifndef DMDFS_H
#define DMDFS_H
#ifndef DMDEVFS_H
#define DMDEVFS_H

#ifdef __cplusplus
extern "C" {
#endif

// Module version
#define DMDFS_VERSION_MAJOR 0
#define DMDFS_VERSION_MINOR 1
#define DMDEVFS_VERSION_MAJOR 0
#define DMDEVFS_VERSION_MINOR 1

#ifdef __cplusplus
}
#endif

#endif // DMDFS_H
#endif // DMDEVFS_H
2 changes: 1 addition & 1 deletion manifest.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
$include https://github.com/choco-technologies/dmdfs/releases/download/vlatest/versions.dmm

# Module entries with version placeholder - will be expanded by $version-available
dmdfs https://github.com/choco-technologies/dmdfs/releases/download/v<version>/dmdfs-v<version>-<arch_name>.zip
dmdevfs https://github.com/choco-technologies/dmdfs/releases/download/v<version>/dmdevfs-v<version>-<arch_name>.zip
Loading