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
4 changes: 2 additions & 2 deletions common/inc/fx_api.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@ extern "C" {
#define AZURE_RTOS_FILEX
#define FILEX_MAJOR_VERSION 6
#define FILEX_MINOR_VERSION 5
#define FILEX_PATCH_VERSION 0
#define FILEX_BUILD_VERSION 202601
#define FILEX_PATCH_VERSION 1
#define FILEX_BUILD_VERSION 202602
#define FILEX_HOTFIX_VERSION ' '

/* Define the following symbols for backward compatibility */
Expand Down
16 changes: 16 additions & 0 deletions common/src/fx_media_format.c
Original file line number Diff line number Diff line change
Expand Up @@ -669,6 +669,22 @@ UINT sectors_per_fat, f, s;
}
}

#ifndef FX_MEDIA_STATISTICS_DISABLE

/* Increment the number of driver flush requests. */
media_ptr -> fx_media_driver_flush_requests++;
#endif

/* Build the "flush" I/O driver request. */
media_ptr -> fx_media_driver_request = FX_DRIVER_FLUSH;
media_ptr -> fx_media_driver_status = FX_IO_ERROR;

/* If trace is enabled, insert this event into the trace buffer. */
FX_TRACE_IN_LINE_INSERT(FX_TRACE_INTERNAL_IO_DRIVER_FLUSH, media_ptr, 0, 0, 0, FX_TRACE_INTERNAL_EVENTS, 0, 0)

/* Call the specified I/O driver with the flush request. */
(driver)(media_ptr);

/* Build the "uninitialize" I/O driver request. */
media_ptr -> fx_media_driver_request = FX_DRIVER_UNINIT;
media_ptr -> fx_media_driver_status = FX_IO_ERROR;
Expand Down
2 changes: 1 addition & 1 deletion ports/generic/inc/fx_port.h
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ typedef unsigned long long ULONG64;

#ifdef FX_SYSTEM_INIT
CHAR _fx_version_id[] =
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * FileX Generic Version 6.5.0.202601 *";
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * FileX Generic Version 6.5.1.202602 *";
#else
extern CHAR _fx_version_id[];
#endif
Expand Down
2 changes: 1 addition & 1 deletion ports/linux/gnu/inc/fx_port.h
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,7 @@ extern VOID fault_tolerant_apply_log_callback(struct FX_MEDIA_STRUCT *media_ptr,

#ifdef FX_SYSTEM_INIT
CHAR _fx_version_id[] =
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * FileX Linux/GCC Version 6.5.0.202601 *";
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * FileX Linux/GCC Version 6.5.1.202602 *";
#else
extern CHAR _fx_version_id[];
#endif
Expand Down
2 changes: 1 addition & 1 deletion ports/win32/vs_2019/inc/fx_port.h
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ typedef unsigned long long ULONG64;

#ifdef FX_SYSTEM_INIT
CHAR _fx_version_id[] =
"Copyright (c) 2024 Microsoft Corporation. * FileX Win32/Version 6.4.1 *";
"Copyright (c) 2024 Microsoft Corporation. * FileX Win32/Version 6.5.1.202602 *";
* Copyright (c) 2026-present Eclipse ThreadX contributors
#else
extern CHAR _fx_version_id[];
Expand Down
11 changes: 11 additions & 0 deletions scripts/build.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,13 @@
#!/bin/bash
##############################################################################
# Copyright (c) 2024 Microsoft Corporation
# Copyright (c) 2026 Eclipse ThreadX contributors
#
# This program and the accompanying materials are made available under the
# terms of the MIT License which is available at
# https://opensource.org/licenses/MIT.
#
# SPDX-License-Identifier: MIT
##############################################################################

$(dirname `realpath $0`)/../test/cmake/run.sh build all
11 changes: 11 additions & 0 deletions scripts/install.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
#!/bin/bash
##############################################################################
# Copyright (c) 2024 Microsoft Corporation
# Copyright (c) 2026 Eclipse ThreadX contributors
#
# This program and the accompanying materials are made available under the
# terms of the MIT License which is available at
# https://opensource.org/licenses/MIT.
#
# SPDX-License-Identifier: MIT
##############################################################################

#

# Remove large folder
Expand Down
172 changes: 172 additions & 0 deletions scripts/prepare_release.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
#!/usr/bin/env bash
# prepare_release.sh
# Prepares a FileX release by updating version constants and port version strings.
#
# Usage: prepare_release.sh <version>
# Example: prepare_release.sh 6.5.1.202602
# Hotfix: prepare_release.sh 6.5.1.202602a
#
# This script:
# 1. Creates branch release-<version>-preparation from dev
# 2. Updates version constants in common/inc/fx_api.h
# (commit: "Updated version number constants")
# 3. Updates port version strings in all fx_port.h files
# (commit: "Updated port version strings")
#
# Copyright (C) 2026 Eclipse ThreadX contributors
# SPDX-License-Identifier: MIT

set -eu

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"

API_HEADER="${REPO_ROOT}/common/inc/fx_api.h"
PORT_HEADER_NAME="fx_port.h"
PORT_DIRS="ports"

# --------------------------------------------------------------------------
# Argument validation
# --------------------------------------------------------------------------
if [ "$#" -ne 1 ]; then
printf "Usage: %s <version>\n" "$(basename "$0")" >&2
printf "Example: %s 6.5.1.202602\n" "$(basename "$0")" >&2
exit 1
fi

VERSION="$1"

if ! printf "%s" "${VERSION}" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+[a-z]?$'; then
printf "Error: Invalid version format '%s'.\n" "${VERSION}" >&2
printf "Expected: MAJOR.MINOR.PATCH.BUILD[hotfix_letter]\n" >&2
exit 1
fi

# --------------------------------------------------------------------------
# Parse version components
# --------------------------------------------------------------------------
MAJOR=$(printf "%s" "${VERSION}" | cut -d. -f1)
MINOR=$(printf "%s" "${VERSION}" | cut -d. -f2)
PATCH=$(printf "%s" "${VERSION}" | cut -d. -f3)
BUILD_AND_HOTFIX=$(printf "%s" "${VERSION}" | cut -d. -f4)
BUILD=$(printf "%s" "${BUILD_AND_HOTFIX}" | sed -E 's/[a-z]+$//')
HOTFIX=$(printf "%s" "${BUILD_AND_HOTFIX}" | sed -E 's/^[0-9]+//')

if [ -z "${HOTFIX}" ]; then
HOTFIX_DEFINE="' '"
else
HOTFIX_DEFINE="'${HOTFIX}'"
fi

# --------------------------------------------------------------------------
# Read and display current version
# --------------------------------------------------------------------------
CURR_MAJOR=$(grep -E "^#define FILEX_MAJOR_VERSION" "${API_HEADER}" | awk '{print $NF}')
CURR_MINOR=$(grep -E "^#define FILEX_MINOR_VERSION" "${API_HEADER}" | awk '{print $NF}')
CURR_PATCH=$(grep -E "^#define FILEX_PATCH_VERSION" "${API_HEADER}" | awk '{print $NF}')
CURR_BUILD=$(grep -E "^#define FILEX_BUILD_VERSION" "${API_HEADER}" | awk '{print $NF}')
CURR_HOTFIX=$(grep -E "^#define FILEX_HOTFIX_VERSION" "${API_HEADER}" | \
sed -E "s/.*'([^']*)'.*/\1/" | tr -d ' ')

if [ -z "${CURR_HOTFIX}" ]; then
CURR_VER="${CURR_MAJOR}.${CURR_MINOR}.${CURR_PATCH}.${CURR_BUILD}"
else
CURR_VER="${CURR_MAJOR}.${CURR_MINOR}.${CURR_PATCH}.${CURR_BUILD}${CURR_HOTFIX}"
fi

printf "\nFileX release preparation\n"
printf " Repository : %s\n" "${REPO_ROOT}"
printf " Current version : %s\n" "${CURR_VER}"
printf " Target version : %s\n\n" "${VERSION}"
printf "Proceed with update? [y/N] "
read -r CONFIRM
case "${CONFIRM}" in
y|Y) ;;
*)
printf "Aborted.\n"
exit 0
;;
esac

# --------------------------------------------------------------------------
# Pre-flight checks
# --------------------------------------------------------------------------
if ! git -C "${REPO_ROOT}" diff --quiet HEAD 2>/dev/null; then
printf "Error: Working tree has uncommitted changes. Commit or stash first.\n" >&2
exit 1
fi

# --------------------------------------------------------------------------
# Create feature branch from dev
# --------------------------------------------------------------------------
BRANCH_NAME="release-${VERSION}-preparation"
printf "\nChecking out dev and pulling latest changes...\n"
git -C "${REPO_ROOT}" checkout dev
git -C "${REPO_ROOT}" pull origin dev
printf "Creating branch '%s'...\n" "${BRANCH_NAME}"
git -C "${REPO_ROOT}" checkout -b "${BRANCH_NAME}"

# --------------------------------------------------------------------------
# Update version constants
# --------------------------------------------------------------------------
printf "\nUpdating version constants in %s...\n" "${API_HEADER}"

sed -i -E "s|(#define FILEX_MAJOR_VERSION[[:space:]]+)[0-9]+|\1${MAJOR}|" "${API_HEADER}"
sed -i -E "s|(#define FILEX_MINOR_VERSION[[:space:]]+)[0-9]+|\1${MINOR}|" "${API_HEADER}"
sed -i -E "s|(#define FILEX_PATCH_VERSION[[:space:]]+)[0-9]+|\1${PATCH}|" "${API_HEADER}"
sed -i -E "s|(#define FILEX_BUILD_VERSION[[:space:]]+)[0-9]+|\1${BUILD}|" "${API_HEADER}"
sed -i -E "s|(#define FILEX_HOTFIX_VERSION[[:space:]]+)'[^']*'|\1${HOTFIX_DEFINE}|" "${API_HEADER}"

git -C "${REPO_ROOT}" add "${API_HEADER}"
git -C "${REPO_ROOT}" commit -F - <<'COMMIT_EOF'
Updated version number constants

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
COMMIT_EOF

printf "Committed version constant updates.\n"

# --------------------------------------------------------------------------
# Update port version strings
# --------------------------------------------------------------------------
printf "\nUpdating port version strings...\n"

PORT_FILES=""
for dir in ${PORT_DIRS}; do
if [ -d "${REPO_ROOT}/${dir}" ]; then
found=$(find "${REPO_ROOT}/${dir}" -name "${PORT_HEADER_NAME}" 2>/dev/null | sort)
if [ -n "${found}" ]; then
PORT_FILES="${PORT_FILES}${found}
"
fi
fi
done
PORT_FILES=$(printf "%s" "${PORT_FILES}" | grep -v '^[[:space:]]*$' || true)

if [ -z "${PORT_FILES}" ]; then
printf "Warning: No port header files found. Skipping port version string commit.\n"
else
while IFS= read -r port_file; do
if [ -n "${port_file}" ] && grep -qE "Version [0-9]" "${port_file}" 2>/dev/null; then
sed -i -E "s/Version [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+[a-z]*/Version ${VERSION}/g" "${port_file}"
printf " Updated: %s\n" "${port_file#${REPO_ROOT}/}"
fi
done <<EOF
${PORT_FILES}
EOF

git -C "${REPO_ROOT}" add -u
if git -C "${REPO_ROOT}" diff --cached --quiet; then
printf "No port version string changes staged. Skipping commit.\n"
else
git -C "${REPO_ROOT}" commit -F - <<'COMMIT_EOF'
Updated port version strings

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
COMMIT_EOF
printf "Committed port version string updates.\n"
fi
fi

printf "\nRelease preparation complete.\n"
printf "Branch '%s' is ready for review.\n" "${BRANCH_NAME}"
11 changes: 11 additions & 0 deletions scripts/test.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,13 @@
#!/bin/bash
##############################################################################
# Copyright (c) 2024 Microsoft Corporation
# Copyright (c) 2026 Eclipse ThreadX contributors
#
# This program and the accompanying materials are made available under the
# terms of the MIT License which is available at
# https://opensource.org/licenses/MIT.
#
# SPDX-License-Identifier: MIT
##############################################################################

$(dirname `realpath $0`)/../test/cmake/run.sh test all
11 changes: 11 additions & 0 deletions test/cmake/coverage.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
#!/bin/bash
##############################################################################
# Copyright (c) 2024 Microsoft Corporation
# Copyright (c) 2026 Eclipse ThreadX contributors
#
# This program and the accompanying materials are made available under the
# terms of the MIT License which is available at
# https://opensource.org/licenses/MIT.
#
# SPDX-License-Identifier: MIT
##############################################################################


set -e

Expand Down
11 changes: 11 additions & 0 deletions test/cmake/run.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
#!/bin/bash
##############################################################################
# Copyright (c) 2024 Microsoft Corporation
# Copyright (c) 2026 Eclipse ThreadX contributors
#
# This program and the accompanying materials are made available under the
# terms of the MIT License which is available at
# https://opensource.org/licenses/MIT.
#
# SPDX-License-Identifier: MIT
##############################################################################


cd $(dirname $0)

Expand Down
11 changes: 11 additions & 0 deletions test/regression_test/filex_directory_attributes_read_set_test.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
/***************************************************************************/
/* Copyright (c) 2024 Microsoft Corporation */
/* Copyright (c) 2026 Eclipse ThreadX contributors */
/* */
/* This program and the accompanying materials are made available under */
/* the terms of the MIT License which is available at */
/* https://opensource.org/licenses/MIT. */
/* */
/* SPDX-License-Identifier: MIT */
/***************************************************************************/

/* This FileX test concentrates on the file attributes read/set operation. */

#ifndef FX_STANDALONE_ENABLE
Expand Down
11 changes: 11 additions & 0 deletions test/regression_test/filex_directory_create_delete_test.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
/***************************************************************************/
/* Copyright (c) 2024 Microsoft Corporation */
/* Copyright (c) 2026 Eclipse ThreadX contributors */
/* */
/* This program and the accompanying materials are made available under */
/* the terms of the MIT License which is available at */
/* https://opensource.org/licenses/MIT. */
/* */
/* SPDX-License-Identifier: MIT */
/***************************************************************************/

/* This FileX test concentrates on the basic directory create/delete operations. */

#ifndef FX_STANDALONE_ENABLE
Expand Down
11 changes: 11 additions & 0 deletions test/regression_test/filex_directory_default_path_get_set_test.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
/***************************************************************************/
/* Copyright (c) 2024 Microsoft Corporation */
/* Copyright (c) 2026 Eclipse ThreadX contributors */
/* */
/* This program and the accompanying materials are made available under */
/* the terms of the MIT License which is available at */
/* https://opensource.org/licenses/MIT. */
/* */
/* SPDX-License-Identifier: MIT */
/***************************************************************************/

/* This FileX test concentrates on the basic directory default path get/set operations. */

#ifndef FX_STANDALONE_ENABLE
Expand Down
11 changes: 11 additions & 0 deletions test/regression_test/filex_directory_duplicate_entries_test.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
/***************************************************************************/
/* Copyright (c) 2024 Microsoft Corporation */
/* Copyright (c) 2026 Eclipse ThreadX contributors */
/* */
/* This program and the accompanying materials are made available under */
/* the terms of the MIT License which is available at */
/* https://opensource.org/licenses/MIT. */
/* */
/* SPDX-License-Identifier: MIT */
/***************************************************************************/

/* This FileX test concentrates on recovery operation when there are duplicate entries. */

#ifndef FX_STANDALONE_ENABLE
Expand Down
11 changes: 11 additions & 0 deletions test/regression_test/filex_directory_first_next_find_test.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
/***************************************************************************/
/* Copyright (c) 2024 Microsoft Corporation */
/* Copyright (c) 2026 Eclipse ThreadX contributors */
/* */
/* This program and the accompanying materials are made available under */
/* the terms of the MIT License which is available at */
/* https://opensource.org/licenses/MIT. */
/* */
/* SPDX-License-Identifier: MIT */
/***************************************************************************/

/* This FileX test concentrates on the basic first/next entry find operations. */

#ifndef FX_STANDALONE_ENABLE
Expand Down
11 changes: 11 additions & 0 deletions test/regression_test/filex_directory_local_path_test.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
/***************************************************************************/
/* Copyright (c) 2024 Microsoft Corporation */
/* Copyright (c) 2026 Eclipse ThreadX contributors */
/* */
/* This program and the accompanying materials are made available under */
/* the terms of the MIT License which is available at */
/* https://opensource.org/licenses/MIT. */
/* */
/* SPDX-License-Identifier: MIT */
/***************************************************************************/

/* This FileX test concentrates on the local path operations. */

#ifndef FX_STANDALONE_ENABLE
Expand Down
Loading
Loading