Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
dadigang
Ventoy
Commits
cbbd57ee
Commit
cbbd57ee
authored
Feb 27, 2021
by
longpanda
Browse files
1.0.36 release
parent
7b08954e
Changes
58
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
24 additions
and
877 deletions
+24
-877
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/lib/libfat_io_aa64.a
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/lib/libfat_io_aa64.a
+0
-0
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/example.c
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/example.c
+0
-87
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_access.h
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_access.h
+0
-133
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_cache.h
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_cache.h
+0
-13
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_defs.h
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_defs.h
+0
-128
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_filelib.h
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_filelib.h
+0
-146
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_format.h
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_format.h
+0
-15
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_list.h
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_list.h
+0
-161
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_misc.h
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_misc.h
+0
-63
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_string.h
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_string.h
+0
-20
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_table.h
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_table.h
+0
-20
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_types.h
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_types.h
+0
-69
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_write.h
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_write.h
+0
-14
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/version.txt
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/version.txt
+0
-0
LinuxGUI/Ventoy2Disk/Web/ventoy_http.c
LinuxGUI/Ventoy2Disk/Web/ventoy_http.c
+3
-1
LinuxGUI/WebUI/index.html
LinuxGUI/WebUI/index.html
+1
-0
LinuxGUI/build.sh
LinuxGUI/build.sh
+4
-2
Ventoy2Disk/Ventoy2Disk/Utility.c
Ventoy2Disk/Ventoy2Disk/Utility.c
+16
-5
No files found.
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/lib/libfat_io_aa64.a
deleted
100644 → 0
View file @
7b08954e
File deleted
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/example.c
deleted
100644 → 0
View file @
7b08954e
#include <stdio.h>
#include "fat_filelib.h"
int
media_init
()
{
// ...
return
1
;
}
int
media_read
(
unsigned
long
sector
,
unsigned
char
*
buffer
,
unsigned
long
sector_count
)
{
unsigned
long
i
;
for
(
i
=
0
;
i
<
sector_count
;
i
++
)
{
// ...
// Add platform specific sector (512 bytes) read code here
//..
sector
++
;
buffer
+=
512
;
}
return
1
;
}
int
media_write
(
unsigned
long
sector
,
unsigned
char
*
buffer
,
unsigned
long
sector_count
)
{
unsigned
long
i
;
for
(
i
=
0
;
i
<
sector_count
;
i
++
)
{
// ...
// Add platform specific sector (512 bytes) write code here
//..
sector
++
;
buffer
+=
512
;
}
return
1
;
}
void
main
()
{
FL_FILE
*
file
;
// Initialise media
media_init
();
// Initialise File IO Library
fl_init
();
// Attach media access functions to library
if
(
fl_attach_media
(
media_read
,
media_write
)
!=
FAT_INIT_OK
)
{
printf
(
"ERROR: Media attach failed
\n
"
);
return
;
}
// List root directory
fl_listdirectory
(
"/"
);
// Create File
file
=
fl_fopen
(
"/file.bin"
,
"w"
);
if
(
file
)
{
// Write some data
unsigned
char
data
[]
=
{
1
,
2
,
3
,
4
};
if
(
fl_fwrite
(
data
,
1
,
sizeof
(
data
),
file
)
!=
sizeof
(
data
))
printf
(
"ERROR: Write file failed
\n
"
);
}
else
printf
(
"ERROR: Create file failed
\n
"
);
// Close file
fl_fclose
(
file
);
// Delete File
if
(
fl_remove
(
"/file.bin"
)
<
0
)
printf
(
"ERROR: Delete file failed
\n
"
);
// List root directory
fl_listdirectory
(
"/"
);
fl_shutdown
();
}
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_access.h
deleted
100644 → 0
View file @
7b08954e
#ifndef __FAT_ACCESS_H__
#define __FAT_ACCESS_H__
#include "fat_defs.h"
#include "fat_opts.h"
//-----------------------------------------------------------------------------
// Defines
//-----------------------------------------------------------------------------
#define FAT_INIT_OK 0
#define FAT_INIT_MEDIA_ACCESS_ERROR (-1)
#define FAT_INIT_INVALID_SECTOR_SIZE (-2)
#define FAT_INIT_INVALID_SIGNATURE (-3)
#define FAT_INIT_ENDIAN_ERROR (-4)
#define FAT_INIT_WRONG_FILESYS_TYPE (-5)
#define FAT_INIT_WRONG_PARTITION_TYPE (-6)
#define FAT_INIT_STRUCT_PACKING (-7)
#define FAT_DIR_ENTRIES_PER_SECTOR (FAT_SECTOR_SIZE / FAT_DIR_ENTRY_SIZE)
//-----------------------------------------------------------------------------
// Function Pointers
//-----------------------------------------------------------------------------
typedef
int
(
*
fn_diskio_read
)
(
uint32
sector
,
uint8
*
buffer
,
uint32
sector_count
);
typedef
int
(
*
fn_diskio_write
)(
uint32
sector
,
uint8
*
buffer
,
uint32
sector_count
);
//-----------------------------------------------------------------------------
// Structures
//-----------------------------------------------------------------------------
struct
disk_if
{
// User supplied function pointers for disk IO
fn_diskio_read
read_media
;
fn_diskio_write
write_media
;
};
// Forward declaration
struct
fat_buffer
;
struct
fat_buffer
{
uint8
sector
[
FAT_SECTOR_SIZE
*
FAT_BUFFER_SECTORS
];
uint32
address
;
int
dirty
;
uint8
*
ptr
;
// Next in chain of sector buffers
struct
fat_buffer
*
next
;
};
typedef
enum
eFatType
{
FAT_TYPE_16
,
FAT_TYPE_32
}
tFatType
;
struct
fatfs
{
// Filesystem globals
uint8
sectors_per_cluster
;
uint32
cluster_begin_lba
;
uint32
rootdir_first_cluster
;
uint32
rootdir_first_sector
;
uint32
rootdir_sectors
;
uint32
fat_begin_lba
;
uint16
fs_info_sector
;
uint32
lba_begin
;
uint32
fat_sectors
;
uint32
next_free_cluster
;
uint16
root_entry_count
;
uint16
reserved_sectors
;
uint8
num_of_fats
;
tFatType
fat_type
;
// Disk/Media API
struct
disk_if
disk_io
;
// [Optional] Thread Safety
void
(
*
fl_lock
)(
void
);
void
(
*
fl_unlock
)(
void
);
// Working buffer
struct
fat_buffer
currentsector
;
// FAT Buffer
struct
fat_buffer
*
fat_buffer_head
;
struct
fat_buffer
fat_buffers
[
FAT_BUFFERS
];
};
struct
fs_dir_list_status
{
uint32
sector
;
uint32
cluster
;
uint8
offset
;
};
struct
fs_dir_ent
{
char
filename
[
FATFS_MAX_LONG_FILENAME
];
uint8
is_dir
;
uint32
cluster
;
uint32
size
;
#if FATFS_INC_TIME_DATE_SUPPORT
uint16
access_date
;
uint16
write_time
;
uint16
write_date
;
uint16
create_date
;
uint16
create_time
;
#endif
};
//-----------------------------------------------------------------------------
// Prototypes
//-----------------------------------------------------------------------------
int
fatfs_init
(
struct
fatfs
*
fs
);
uint32
fatfs_lba_of_cluster
(
struct
fatfs
*
fs
,
uint32
Cluster_Number
);
int
fatfs_sector_reader
(
struct
fatfs
*
fs
,
uint32
Startcluster
,
uint32
offset
,
uint8
*
target
);
int
fatfs_sector_read
(
struct
fatfs
*
fs
,
uint32
lba
,
uint8
*
target
,
uint32
count
);
int
fatfs_sector_write
(
struct
fatfs
*
fs
,
uint32
lba
,
uint8
*
target
,
uint32
count
);
int
fatfs_read_sector
(
struct
fatfs
*
fs
,
uint32
cluster
,
uint32
sector
,
uint8
*
target
);
int
fatfs_write_sector
(
struct
fatfs
*
fs
,
uint32
cluster
,
uint32
sector
,
uint8
*
target
);
void
fatfs_show_details
(
struct
fatfs
*
fs
);
uint32
fatfs_get_root_cluster
(
struct
fatfs
*
fs
);
uint32
fatfs_get_file_entry
(
struct
fatfs
*
fs
,
uint32
Cluster
,
char
*
nametofind
,
struct
fat_dir_entry
*
sfEntry
);
int
fatfs_sfn_exists
(
struct
fatfs
*
fs
,
uint32
Cluster
,
char
*
shortname
);
int
fatfs_update_file_length
(
struct
fatfs
*
fs
,
uint32
Cluster
,
char
*
shortname
,
uint32
fileLength
);
int
fatfs_mark_file_deleted
(
struct
fatfs
*
fs
,
uint32
Cluster
,
char
*
shortname
);
void
fatfs_list_directory_start
(
struct
fatfs
*
fs
,
struct
fs_dir_list_status
*
dirls
,
uint32
StartCluster
);
int
fatfs_list_directory_next
(
struct
fatfs
*
fs
,
struct
fs_dir_list_status
*
dirls
,
struct
fs_dir_ent
*
entry
);
int
fatfs_update_timestamps
(
struct
fat_dir_entry
*
directoryEntry
,
int
create
,
int
modify
,
int
access
);
#endif
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_cache.h
deleted
100644 → 0
View file @
7b08954e
#ifndef __FAT_CACHE_H__
#define __FAT_CACHE_H__
#include "fat_filelib.h"
//-----------------------------------------------------------------------------
// Prototypes
//-----------------------------------------------------------------------------
int
fatfs_cache_init
(
struct
fatfs
*
fs
,
FL_FILE
*
file
);
int
fatfs_cache_get_next_cluster
(
struct
fatfs
*
fs
,
FL_FILE
*
file
,
uint32
clusterIdx
,
uint32
*
pNextCluster
);
int
fatfs_cache_set_next_cluster
(
struct
fatfs
*
fs
,
FL_FILE
*
file
,
uint32
clusterIdx
,
uint32
nextCluster
);
#endif
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_defs.h
deleted
100644 → 0
View file @
7b08954e
#ifndef __FAT_DEFS_H__
#define __FAT_DEFS_H__
#include "fat_opts.h"
#include "fat_types.h"
//-----------------------------------------------------------------------------
// FAT32 Offsets
// Name Offset
//-----------------------------------------------------------------------------
// Boot Sector
#define BS_JMPBOOT 0 // Length = 3
#define BS_OEMNAME 3 // Length = 8
#define BPB_BYTSPERSEC 11 // Length = 2
#define BPB_SECPERCLUS 13 // Length = 1
#define BPB_RSVDSECCNT 14 // Length = 2
#define BPB_NUMFATS 16 // Length = 1
#define BPB_ROOTENTCNT 17 // Length = 2
#define BPB_TOTSEC16 19 // Length = 2
#define BPB_MEDIA 21 // Length = 1
#define BPB_FATSZ16 22 // Length = 2
#define BPB_SECPERTRK 24 // Length = 2
#define BPB_NUMHEADS 26 // Length = 2
#define BPB_HIDDSEC 28 // Length = 4
#define BPB_TOTSEC32 32 // Length = 4
// FAT 12/16
#define BS_FAT_DRVNUM 36 // Length = 1
#define BS_FAT_BOOTSIG 38 // Length = 1
#define BS_FAT_VOLID 39 // Length = 4
#define BS_FAT_VOLLAB 43 // Length = 11
#define BS_FAT_FILSYSTYPE 54 // Length = 8
// FAT 32
#define BPB_FAT32_FATSZ32 36 // Length = 4
#define BPB_FAT32_EXTFLAGS 40 // Length = 2
#define BPB_FAT32_FSVER 42 // Length = 2
#define BPB_FAT32_ROOTCLUS 44 // Length = 4
#define BPB_FAT32_FSINFO 48 // Length = 2
#define BPB_FAT32_BKBOOTSEC 50 // Length = 2
#define BS_FAT32_DRVNUM 64 // Length = 1
#define BS_FAT32_BOOTSIG 66 // Length = 1
#define BS_FAT32_VOLID 67 // Length = 4
#define BS_FAT32_VOLLAB 71 // Length = 11
#define BS_FAT32_FILSYSTYPE 82 // Length = 8
//-----------------------------------------------------------------------------
// FAT Types
//-----------------------------------------------------------------------------
#define FAT_TYPE_FAT12 1
#define FAT_TYPE_FAT16 2
#define FAT_TYPE_FAT32 3
//-----------------------------------------------------------------------------
// FAT32 Specific Statics
//-----------------------------------------------------------------------------
#define SIGNATURE_POSITION 510
#define SIGNATURE_VALUE 0xAA55
#define PARTITION1_TYPECODE_LOCATION 450
#define FAT32_TYPECODE1 0x0B
#define FAT32_TYPECODE2 0x0C
#define PARTITION1_LBA_BEGIN_LOCATION 454
#define PARTITION1_SIZE_LOCATION 458
#define FAT_DIR_ENTRY_SIZE 32
#define FAT_SFN_SIZE_FULL 11
#define FAT_SFN_SIZE_PARTIAL 8
//-----------------------------------------------------------------------------
// FAT32 File Attributes and Types
//-----------------------------------------------------------------------------
#define FILE_ATTR_READ_ONLY 0x01
#define FILE_ATTR_HIDDEN 0x02
#define FILE_ATTR_SYSTEM 0x04
#define FILE_ATTR_SYSHID 0x06
#define FILE_ATTR_VOLUME_ID 0x08
#define FILE_ATTR_DIRECTORY 0x10
#define FILE_ATTR_ARCHIVE 0x20
#define FILE_ATTR_LFN_TEXT 0x0F
#define FILE_HEADER_BLANK 0x00
#define FILE_HEADER_DELETED 0xE5
#define FILE_TYPE_DIR 0x10
#define FILE_TYPE_FILE 0x20
//-----------------------------------------------------------------------------
// Time / Date details
//-----------------------------------------------------------------------------
#define FAT_TIME_HOURS_SHIFT 11
#define FAT_TIME_HOURS_MASK 0x1F
#define FAT_TIME_MINUTES_SHIFT 5
#define FAT_TIME_MINUTES_MASK 0x3F
#define FAT_TIME_SECONDS_SHIFT 0
#define FAT_TIME_SECONDS_MASK 0x1F
#define FAT_TIME_SECONDS_SCALE 2
#define FAT_DATE_YEAR_SHIFT 9
#define FAT_DATE_YEAR_MASK 0x7F
#define FAT_DATE_MONTH_SHIFT 5
#define FAT_DATE_MONTH_MASK 0xF
#define FAT_DATE_DAY_SHIFT 0
#define FAT_DATE_DAY_MASK 0x1F
#define FAT_DATE_YEAR_OFFSET 1980
//-----------------------------------------------------------------------------
// Other Defines
//-----------------------------------------------------------------------------
#define FAT32_LAST_CLUSTER 0xFFFFFFFF
#define FAT32_INVALID_CLUSTER 0xFFFFFFFF
STRUCT_PACK_BEGIN
struct
fat_dir_entry
STRUCT_PACK
{
uint8
Name
[
11
];
uint8
Attr
;
uint8
NTRes
;
uint8
CrtTimeTenth
;
uint8
CrtTime
[
2
];
uint8
CrtDate
[
2
];
uint8
LstAccDate
[
2
];
uint16
FstClusHI
;
uint8
WrtTime
[
2
];
uint8
WrtDate
[
2
];
uint16
FstClusLO
;
uint32
FileSize
;
}
STRUCT_PACKED
;
STRUCT_PACK_END
#endif
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_filelib.h
deleted
100644 → 0
View file @
7b08954e
#ifndef __FAT_FILELIB_H__
#define __FAT_FILELIB_H__
#include "fat_opts.h"
#include "fat_access.h"
#include "fat_list.h"
//-----------------------------------------------------------------------------
// Defines
//-----------------------------------------------------------------------------
#ifndef SEEK_CUR
#define SEEK_CUR 1
#endif
#ifndef SEEK_END
#define SEEK_END 2
#endif
#ifndef SEEK_SET
#define SEEK_SET 0
#endif
#ifndef EOF
#define EOF (-1)
#endif
//-----------------------------------------------------------------------------
// Structures
//-----------------------------------------------------------------------------
struct
sFL_FILE
;
struct
cluster_lookup
{
uint32
ClusterIdx
;
uint32
CurrentCluster
;
};
typedef
struct
sFL_FILE
{
uint32
parentcluster
;
uint32
startcluster
;
uint32
bytenum
;
uint32
filelength
;
int
filelength_changed
;
char
path
[
FATFS_MAX_LONG_FILENAME
];
char
filename
[
FATFS_MAX_LONG_FILENAME
];
uint8
shortfilename
[
11
];
#ifdef FAT_CLUSTER_CACHE_ENTRIES
uint32
cluster_cache_idx
[
FAT_CLUSTER_CACHE_ENTRIES
];
uint32
cluster_cache_data
[
FAT_CLUSTER_CACHE_ENTRIES
];
#endif
// Cluster Lookup
struct
cluster_lookup
last_fat_lookup
;
// Read/Write sector buffer
uint8
file_data_sector
[
FAT_SECTOR_SIZE
];
uint32
file_data_address
;
int
file_data_dirty
;
// File fopen flags
uint8
flags
;
#define FILE_READ (1 << 0)
#define FILE_WRITE (1 << 1)
#define FILE_APPEND (1 << 2)
#define FILE_BINARY (1 << 3)
#define FILE_ERASE (1 << 4)
#define FILE_CREATE (1 << 5)
struct
fat_node
list_node
;
}
FL_FILE
;
//-----------------------------------------------------------------------------
// Prototypes
//-----------------------------------------------------------------------------
// External
void
fl_init
(
void
);
void
fl_attach_locks
(
void
(
*
lock
)(
void
),
void
(
*
unlock
)(
void
));
int
fl_attach_media
(
fn_diskio_read
rd
,
fn_diskio_write
wr
);
void
fl_shutdown
(
void
);
// Standard API
void
*
fl_fopen
(
const
char
*
path
,
const
char
*
modifiers
);
void
fl_fclose
(
void
*
file
);
int
fl_fflush
(
void
*
file
);
int
fl_fgetc
(
void
*
file
);
char
*
fl_fgets
(
char
*
s
,
int
n
,
void
*
f
);
int
fl_fputc
(
int
c
,
void
*
file
);
int
fl_fputs
(
const
char
*
str
,
void
*
file
);
int
fl_fwrite
(
const
void
*
data
,
int
size
,
int
count
,
void
*
file
);
int
fl_fread
(
void
*
data
,
int
size
,
int
count
,
void
*
file
);
int
fl_fseek
(
void
*
file
,
long
offset
,
int
origin
);
int
fl_fgetpos
(
void
*
file
,
uint32
*
position
);
long
fl_ftell
(
void
*
f
);
int
fl_feof
(
void
*
f
);
int
fl_remove
(
const
char
*
filename
);
// Equivelant dirent.h
typedef
struct
fs_dir_list_status
FL_DIR
;
typedef
struct
fs_dir_ent
fl_dirent
;
FL_DIR
*
fl_opendir
(
const
char
*
path
,
FL_DIR
*
dir
);
int
fl_readdir
(
FL_DIR
*
dirls
,
fl_dirent
*
entry
);
int
fl_closedir
(
FL_DIR
*
dir
);
// Extensions
void
fl_listdirectory
(
const
char
*
path
);
int
fl_createdirectory
(
const
char
*
path
);
int
fl_is_dir
(
const
char
*
path
);
int
fl_format
(
uint32
volume_sectors
,
const
char
*
name
);
// Test hooks
#ifdef FATFS_INC_TEST_HOOKS
struct
fatfs
*
fl_get_fs
(
void
);
#endif
//-----------------------------------------------------------------------------
// Stdio file I/O names
//-----------------------------------------------------------------------------
#ifdef USE_FILELIB_STDIO_COMPAT_NAMES
#define FILE FL_FILE
#define fopen(a,b) fl_fopen(a, b)
#define fclose(a) fl_fclose(a)
#define fflush(a) fl_fflush(a)
#define fgetc(a) fl_fgetc(a)
#define fgets(a,b,c) fl_fgets(a, b, c)
#define fputc(a,b) fl_fputc(a, b)
#define fputs(a,b) fl_fputs(a, b)
#define fwrite(a,b,c,d) fl_fwrite(a, b, c, d)
#define fread(a,b,c,d) fl_fread(a, b, c, d)
#define fseek(a,b,c) fl_fseek(a, b, c)
#define fgetpos(a,b) fl_fgetpos(a, b)
#define ftell(a) fl_ftell(a)
#define feof(a) fl_feof(a)
#define remove(a) fl_remove(a)
#define mkdir(a) fl_createdirectory(a)
#define rmdir(a) 0
#endif
#endif
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_format.h
deleted
100644 → 0
View file @
7b08954e
#ifndef __FAT_FORMAT_H__
#define __FAT_FORMAT_H__
#include "fat_defs.h"
#include "fat_opts.h"
#include "fat_access.h"
//-----------------------------------------------------------------------------
// Prototypes
//-----------------------------------------------------------------------------
int
fatfs_format
(
struct
fatfs
*
fs
,
uint32
volume_sectors
,
const
char
*
name
);
int
fatfs_format_fat16
(
struct
fatfs
*
fs
,
uint32
volume_sectors
,
const
char
*
name
);
int
fatfs_format_fat32
(
struct
fatfs
*
fs
,
uint32
volume_sectors
,
const
char
*
name
);
#endif
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_list.h
deleted
100644 → 0
View file @
7b08954e
#ifndef __FAT_LIST_H__
#define __FAT_LIST_H__
#ifndef FAT_ASSERT
#define FAT_ASSERT(x)
#endif
#ifndef FAT_INLINE
#define FAT_INLINE
#endif
//-----------------------------------------------------------------
// Types
//-----------------------------------------------------------------
struct
fat_list
;
struct
fat_node
{
struct
fat_node
*
previous
;
struct
fat_node
*
next
;
};
struct
fat_list
{
struct
fat_node
*
head
;
struct
fat_node
*
tail
;
};
//-----------------------------------------------------------------
// Macros
//-----------------------------------------------------------------
#define fat_list_entry(p, t, m) p ? ((t *)((char *)(p)-(char*)(&((t *)0)->m))) : 0
#define fat_list_next(l, p) (p)->next
#define fat_list_prev(l, p) (p)->previous
#define fat_list_first(l) (l)->head
#define fat_list_last(l) (l)->tail
#define fat_list_for_each(l, p) for ((p) = (l)->head; (p); (p) = (p)->next)
//-----------------------------------------------------------------
// Inline Functions
//-----------------------------------------------------------------
//-----------------------------------------------------------------
// fat_list_init:
//-----------------------------------------------------------------
static
FAT_INLINE
void
fat_list_init
(
struct
fat_list
*
list
)
{
FAT_ASSERT
(
list
);
list
->
head
=
list
->
tail
=
0
;
}
//-----------------------------------------------------------------
// fat_list_remove:
//-----------------------------------------------------------------
static
FAT_INLINE
void
fat_list_remove
(
struct
fat_list
*
list
,
struct
fat_node
*
node
)
{
FAT_ASSERT
(
list
);
FAT_ASSERT
(
node
);
if
(
!
node
->
previous
)
list
->
head
=
node
->
next
;
else
node
->
previous
->
next
=
node
->
next
;
if
(
!
node
->
next
)
list
->
tail
=
node
->
previous
;
else
node
->
next
->
previous
=
node
->
previous
;
}
//-----------------------------------------------------------------
// fat_list_insert_after:
//-----------------------------------------------------------------
static
FAT_INLINE
void
fat_list_insert_after
(
struct
fat_list
*
list
,
struct
fat_node
*
node
,
struct
fat_node
*
new_node
)
{
FAT_ASSERT
(
list
);
FAT_ASSERT
(
node
);
FAT_ASSERT
(
new_node
);
new_node
->
previous
=
node
;
new_node
->
next
=
node
->
next
;
if
(
!
node
->
next
)
list
->
tail
=
new_node
;
else
node
->
next
->
previous
=
new_node
;
node
->
next
=
new_node
;
}
//-----------------------------------------------------------------
// fat_list_insert_before:
//-----------------------------------------------------------------
static
FAT_INLINE
void
fat_list_insert_before
(
struct
fat_list
*
list
,
struct
fat_node
*
node
,
struct
fat_node
*
new_node
)
{
FAT_ASSERT
(
list
);
FAT_ASSERT
(
node
);
FAT_ASSERT
(
new_node
);
new_node
->
previous
=
node
->
previous
;
new_node
->
next
=
node
;
if
(
!
node
->
previous
)
list
->
head
=
new_node
;
else
node
->
previous
->
next
=
new_node
;
node
->
previous
=
new_node
;
}
//-----------------------------------------------------------------
// fat_list_insert_first:
//-----------------------------------------------------------------
static
FAT_INLINE
void
fat_list_insert_first
(
struct
fat_list
*
list
,
struct
fat_node
*
node
)
{
FAT_ASSERT
(
list
);
FAT_ASSERT
(
node
);
if
(
!
list
->
head
)
{
list
->
head
=
node
;
list
->
tail
=
node
;
node
->
previous
=
0
;
node
->
next
=
0
;
}
else
fat_list_insert_before
(
list
,
list
->
head
,
node
);
}
//-----------------------------------------------------------------
// fat_list_insert_last:
//-----------------------------------------------------------------
static
FAT_INLINE
void
fat_list_insert_last
(
struct
fat_list
*
list
,
struct
fat_node
*
node
)
{
FAT_ASSERT
(
list
);
FAT_ASSERT
(
node
);
if
(
!
list
->
tail
)
fat_list_insert_first
(
list
,
node
);
else
fat_list_insert_after
(
list
,
list
->
tail
,
node
);
}
//-----------------------------------------------------------------
// fat_list_is_empty:
//-----------------------------------------------------------------
static
FAT_INLINE
int
fat_list_is_empty
(
struct
fat_list
*
list
)
{
FAT_ASSERT
(
list
);
return
!
list
->
head
;
}
//-----------------------------------------------------------------
// fat_list_pop_head:
//-----------------------------------------------------------------
static
FAT_INLINE
struct
fat_node
*
fat_list_pop_head
(
struct
fat_list
*
list
)
{
struct
fat_node
*
node
;
FAT_ASSERT
(
list
);
node
=
fat_list_first
(
list
);
if
(
node
)
fat_list_remove
(
list
,
node
);
return
node
;
}
#endif
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_misc.h
deleted
100644 → 0
View file @
7b08954e
#ifndef __FAT_MISC_H__
#define __FAT_MISC_H__
#include "fat_defs.h"
#include "fat_opts.h"
//-----------------------------------------------------------------------------
// Defines
//-----------------------------------------------------------------------------
#define MAX_LONGFILENAME_ENTRIES 20
#define MAX_LFN_ENTRY_LENGTH 13
//-----------------------------------------------------------------------------
// Macros
//-----------------------------------------------------------------------------
#define GET_32BIT_WORD(buffer, location) ( ((uint32)buffer[location+3]<<24) + ((uint32)buffer[location+2]<<16) + ((uint32)buffer[location+1]<<8) + (uint32)buffer[location+0] )
#define GET_16BIT_WORD(buffer, location) ( ((uint16)buffer[location+1]<<8) + (uint16)buffer[location+0] )
#define SET_32BIT_WORD(buffer, location, value) { buffer[location+0] = (uint8)((value)&0xFF); \
buffer[location+1] = (uint8)((value>>8)&0xFF); \
buffer[location+2] = (uint8)((value>>16)&0xFF); \
buffer[location+3] = (uint8)((value>>24)&0xFF); }
#define SET_16BIT_WORD(buffer, location, value) { buffer[location+0] = (uint8)((value)&0xFF); \
buffer[location+1] = (uint8)((value>>8)&0xFF); }
//-----------------------------------------------------------------------------
// Structures
//-----------------------------------------------------------------------------
struct
lfn_cache
{
#if FATFS_INC_LFN_SUPPORT
// Long File Name Structure (max 260 LFN length)
uint8
String
[
MAX_LONGFILENAME_ENTRIES
][
MAX_LFN_ENTRY_LENGTH
];
uint8
Null
;
#endif
uint8
no_of_strings
;
};
//-----------------------------------------------------------------------------
// Prototypes
//-----------------------------------------------------------------------------
void
fatfs_lfn_cache_init
(
struct
lfn_cache
*
lfn
,
int
wipeTable
);
void
fatfs_lfn_cache_entry
(
struct
lfn_cache
*
lfn
,
uint8
*
entryBuffer
);
char
*
fatfs_lfn_cache_get
(
struct
lfn_cache
*
lfn
);
int
fatfs_entry_lfn_text
(
struct
fat_dir_entry
*
entry
);
int
fatfs_entry_lfn_invalid
(
struct
fat_dir_entry
*
entry
);
int
fatfs_entry_lfn_exists
(
struct
lfn_cache
*
lfn
,
struct
fat_dir_entry
*
entry
);
int
fatfs_entry_sfn_only
(
struct
fat_dir_entry
*
entry
);
int
fatfs_entry_is_dir
(
struct
fat_dir_entry
*
entry
);
int
fatfs_entry_is_file
(
struct
fat_dir_entry
*
entry
);
int
fatfs_lfn_entries_required
(
char
*
filename
);
void
fatfs_filename_to_lfn
(
char
*
filename
,
uint8
*
buffer
,
int
entry
,
uint8
sfnChk
);
void
fatfs_sfn_create_entry
(
char
*
shortfilename
,
uint32
size
,
uint32
startCluster
,
struct
fat_dir_entry
*
entry
,
int
dir
);
int
fatfs_lfn_create_sfn
(
char
*
sfn_output
,
char
*
filename
);
int
fatfs_lfn_generate_tail
(
char
*
sfn_output
,
char
*
sfn_input
,
uint32
tailNum
);
void
fatfs_convert_from_fat_time
(
uint16
fat_time
,
int
*
hours
,
int
*
minutes
,
int
*
seconds
);
void
fatfs_convert_from_fat_date
(
uint16
fat_date
,
int
*
day
,
int
*
month
,
int
*
year
);
uint16
fatfs_convert_to_fat_time
(
int
hours
,
int
minutes
,
int
seconds
);
uint16
fatfs_convert_to_fat_date
(
int
day
,
int
month
,
int
year
);
void
fatfs_print_sector
(
uint32
sector
,
uint8
*
data
);
#endif
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_string.h
deleted
100644 → 0
View file @
7b08954e
#ifndef __FILESTRING_H__
#define __FILESTRING_H__
//-----------------------------------------------------------------------------
// Prototypes
//-----------------------------------------------------------------------------
int
fatfs_total_path_levels
(
char
*
path
);
int
fatfs_get_substring
(
char
*
Path
,
int
levelreq
,
char
*
output
,
int
max_len
);
int
fatfs_split_path
(
char
*
FullPath
,
char
*
Path
,
int
max_path
,
char
*
FileName
,
int
max_filename
);
int
fatfs_compare_names
(
char
*
strA
,
char
*
strB
);
int
fatfs_string_ends_with_slash
(
char
*
path
);
int
fatfs_get_sfn_display_name
(
char
*
out
,
char
*
in
);
int
fatfs_get_extension
(
char
*
filename
,
char
*
out
,
int
maxlen
);
int
fatfs_create_path_string
(
char
*
path
,
char
*
filename
,
char
*
out
,
int
maxlen
);
#ifndef NULL
#define NULL 0
#endif
#endif
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_table.h
deleted
100644 → 0
View file @
7b08954e
#ifndef __FAT_TABLE_H__
#define __FAT_TABLE_H__
#include "fat_opts.h"
#include "fat_misc.h"
//-----------------------------------------------------------------------------
// Prototypes
//-----------------------------------------------------------------------------
void
fatfs_fat_init
(
struct
fatfs
*
fs
);
int
fatfs_fat_purge
(
struct
fatfs
*
fs
);
uint32
fatfs_find_next_cluster
(
struct
fatfs
*
fs
,
uint32
current_cluster
);
void
fatfs_set_fs_info_next_free_cluster
(
struct
fatfs
*
fs
,
uint32
newValue
);
int
fatfs_find_blank_cluster
(
struct
fatfs
*
fs
,
uint32
start_cluster
,
uint32
*
free_cluster
);
int
fatfs_fat_set_cluster
(
struct
fatfs
*
fs
,
uint32
cluster
,
uint32
next_cluster
);
int
fatfs_fat_add_cluster_to_chain
(
struct
fatfs
*
fs
,
uint32
start_cluster
,
uint32
newEntry
);
int
fatfs_free_cluster_chain
(
struct
fatfs
*
fs
,
uint32
start_cluster
);
uint32
fatfs_count_free_clusters
(
struct
fatfs
*
fs
);
#endif
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_types.h
deleted
100644 → 0
View file @
7b08954e
#ifndef __FAT_TYPES_H__
#define __FAT_TYPES_H__
// Detect 64-bit compilation on GCC
#if defined(__GNUC__) && defined(__SIZEOF_LONG__)
#if __SIZEOF_LONG__ == 8
#define FATFS_DEF_UINT32_AS_INT
#endif
#endif
//-------------------------------------------------------------
// System specific types
//-------------------------------------------------------------
#ifndef FATFS_NO_DEF_TYPES
typedef
unsigned
char
uint8
;
typedef
unsigned
short
uint16
;
// If compiling on a 64-bit machine, use int as 32-bits
#ifdef FATFS_DEF_UINT32_AS_INT
typedef
unsigned
int
uint32
;
// Else for 32-bit machines & embedded systems, use long...
#else
typedef
unsigned
long
uint32
;
#endif
#endif
#ifndef NULL
#define NULL 0
#endif
//-------------------------------------------------------------
// Endian Macros
//-------------------------------------------------------------
// FAT is little endian so big endian systems need to swap words
// Little Endian - No swap required
#if FATFS_IS_LITTLE_ENDIAN == 1
#define FAT_HTONS(n) (n)
#define FAT_HTONL(n) (n)
// Big Endian - Swap required
#else
#define FAT_HTONS(n) ((((uint16)((n) & 0xff)) << 8) | (((n) & 0xff00) >> 8))
#define FAT_HTONL(n) (((((uint32)(n) & 0xFF)) << 24) | \
((((uint32)(n) & 0xFF00)) << 8) | \
((((uint32)(n) & 0xFF0000)) >> 8) | \
((((uint32)(n) & 0xFF000000)) >> 24))
#endif
//-------------------------------------------------------------
// Structure Packing Compile Options
//-------------------------------------------------------------
#ifdef __GNUC__
#define STRUCT_PACK
#define STRUCT_PACK_BEGIN
#define STRUCT_PACK_END
#define STRUCT_PACKED __attribute__ ((packed))
#else
// Other compilers may require other methods of packing structures
#define STRUCT_PACK
#define STRUCT_PACK_BEGIN
#define STRUCT_PACK_END
#define STRUCT_PACKED
#endif
#endif
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/release/fat_write.h
deleted
100644 → 0
View file @
7b08954e
#ifndef __FAT_WRITE_H__
#define __FAT_WRITE_H__
#include "fat_defs.h"
#include "fat_opts.h"
//-----------------------------------------------------------------------------
// Prototypes
//-----------------------------------------------------------------------------
int
fatfs_add_file_entry
(
struct
fatfs
*
fs
,
uint32
dirCluster
,
char
*
filename
,
char
*
shortfilename
,
uint32
startCluster
,
uint32
size
,
int
dir
);
int
fatfs_add_free_space
(
struct
fatfs
*
fs
,
uint32
*
startCluster
,
uint32
clusters
);
int
fatfs_allocate_free_space
(
struct
fatfs
*
fs
,
int
newFile
,
uint32
*
startCluster
,
uint32
size
);
#endif
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/
release/
version.txt
→
LinuxGUI/Ventoy2Disk/Lib/fat_io_lib/version.txt
View file @
cbbd57ee
File moved
LinuxGUI/Ventoy2Disk/Web/ventoy_http.c
View file @
cbbd57ee
...
...
@@ -346,6 +346,8 @@ static int ventoy_clean_disk(int fd, uint64_t size)
len
=
write
(
fd
,
buf
,
zerolen
);
vdebug
(
"write disk at off:%llu writelen:%lld datalen:%d
\n
"
,
(
_ull
)
offset
,
(
_ll
)
len
,
zerolen
);
fsync
(
fd
);
free
(
buf
);
return
0
;
}
...
...
@@ -800,7 +802,7 @@ static void * ventoy_install_thread(void *data)
else
{
vdebug
(
"Fill MBR part table
\n
"
);
ventoy_fill_mbr
(
disk
->
size_in_byte
,
thread
->
reserveBytes
,
thread
->
align4kb
,
0
,
&
MBR
);
ventoy_fill_mbr
(
disk
->
size_in_byte
,
thread
->
reserveBytes
,
thread
->
align4kb
,
&
MBR
);
Part1StartSector
=
MBR
.
PartTbl
[
0
].
StartSectorId
;
Part1SectorCount
=
MBR
.
PartTbl
[
0
].
SectorCount
;
Part2StartSector
=
MBR
.
PartTbl
[
1
].
StartSectorId
;
...
...
LinuxGUI/WebUI/index.html
View file @
cbbd57ee
...
...
@@ -342,6 +342,7 @@
var
vtoy_cur_process_disk_name
;
var
vtoy_chrome_app_mode
=
(
window
.
location
.
href
.
indexOf
(
'
chrome-app
'
)
>=
0
)
?
1
:
0
;
function
sort_language_list
()
{
var
tmp
;
for
(
var
i
=
0
;
i
<
vtoy_language_data
.
length
;
i
++
)
{
...
...
LinuxGUI/build.sh
View file @
cbbd57ee
...
...
@@ -5,9 +5,9 @@ build_func() {
toolDir
=
$3
XXFLAG
=
'-std=gnu99 -D_FILE_OFFSET_BITS=64'
XXLIB
=
"
./Ventoy2Disk/Lib/fat_io_lib/lib/libfat_io_
${
libsuffix
}
.a
"
XXLIB
=
""
echo
"CC=
$1
libsuffix=
$libsuffix
"
echo
"CC=
$1
libsuffix=
$libsuffix
toolDir=
$toolDir
"
$1
$XXFLAG
-c
-Wall
-Wextra
-Wshadow
-Wformat-security
-Winit-self
\
-Wmissing-prototypes
-O2
-DLINUX
\
...
...
@@ -29,6 +29,7 @@ build_func() {
-I
./Ventoy2Disk/Lib/xz-embedded/userspace
\
-I
./Ventoy2Disk/Lib/exfat/src/libexfat
\
-I
./Ventoy2Disk/Lib/exfat/src/mkfs
\
-I
./Ventoy2Disk/Lib/fat_io_lib
\
\
-L
./Ventoy2Disk/Lib/fat_io_lib/lib
\
Ventoy2Disk/
*
.c
\
...
...
@@ -37,6 +38,7 @@ build_func() {
Ventoy2Disk/Lib/xz-embedded/linux/lib/decompress_unxz.c
\
Ventoy2Disk/Lib/exfat/src/libexfat/
*
.c
\
Ventoy2Disk/Lib/exfat/src/mkfs/
*
.c
\
Ventoy2Disk/Lib/fat_io_lib/
*
.c
\
$XXLIB
\
-l
pthread
\
./civetweb.o
\
...
...
Ventoy2Disk/Ventoy2Disk/Utility.c
View file @
cbbd57ee
...
...
@@ -592,6 +592,7 @@ int VentoyFillWholeGpt(UINT64 DiskSizeBytes, VTOY_GPT_INFO *pInfo)
int
VentoyFillGpt
(
UINT64
DiskSizeBytes
,
VTOY_GPT_INFO
*
pInfo
)
{
INT64
ReservedValue
=
0
;
UINT64
ModSectorCount
=
0
;
UINT64
ReservedSector
=
33
;
UINT64
Part1SectorCount
=
0
;
UINT64
DiskSectorCount
=
DiskSizeBytes
/
512
;
...
...
@@ -609,18 +610,28 @@ int VentoyFillGpt(UINT64 DiskSizeBytes, VTOY_GPT_INFO *pInfo)
ReservedSector
+=
ReservedValue
*
2048
;
}
Part1SectorCount
=
DiskSectorCount
-
ReservedSector
-
(
VENTOY_EFI_PART_SIZE
/
512
)
-
2048
;
ModSectorCount
=
(
Part1SectorCount
%
8
);
if
(
ModSectorCount
)
{
Log
(
"Part1SectorCount:%llu is not aligned by 4KB (%llu)"
,
(
ULONGLONG
)
Part1SectorCount
,
(
ULONGLONG
)
ModSectorCount
);
}
// check aligned with 4KB
if
(
IsPartNeed4KBAlign
())
{
if
(
Disk
SectorCount
%
8
)
if
(
Mod
SectorCount
)
{
Log
(
"Disk need to align with 4KB %u"
,
(
UINT32
)(
DiskSectorCount
%
8
));
ReservedSector
+=
(
DiskSectorCount
%
8
);
Log
(
"Disk need to align with 4KB %u"
,
(
UINT32
)
ModSectorCount
);
Part1SectorCount
-=
ModSectorCount
;
}
else
{
Log
(
"no need to align with 4KB"
);
}
}
Part1SectorCount
=
DiskSectorCount
-
ReservedSector
-
(
VENTOY_EFI_PART_SIZE
/
512
)
-
2048
;
memcpy
(
Head
->
Signature
,
"EFI PART"
,
8
);
Head
->
Version
[
2
]
=
0x01
;
Head
->
Length
=
92
;
...
...
Prev
1
2
3
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment