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
4527e1db
Commit
4527e1db
authored
Jan 23, 2024
by
longpanda
Browse files
Add support for FreeBSD 14.0
parent
757cacf2
Changes
6
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
1398 additions
and
0 deletions
+1398
-0
INSTALL/ventoy/ventoy_unix.cpio
INSTALL/ventoy/ventoy_unix.cpio
+0
-0
Unix/ventoy_unix/FreeBSD/geom_ventoy_ko/14.x/32/geom_ventoy.ko.xz
...toy_unix/FreeBSD/geom_ventoy_ko/14.x/32/geom_ventoy.ko.xz
+0
-0
Unix/ventoy_unix/FreeBSD/geom_ventoy_ko/14.x/64/geom_ventoy.ko.xz
...toy_unix/FreeBSD/geom_ventoy_ko/14.x/64/geom_ventoy.ko.xz
+0
-0
Unix/ventoy_unix_src/FreeBSD/geom_ventoy_src/14.x/sys/geom/ventoy/g_ventoy.c
...c/FreeBSD/geom_ventoy_src/14.x/sys/geom/ventoy/g_ventoy.c
+1243
-0
Unix/ventoy_unix_src/FreeBSD/geom_ventoy_src/14.x/sys/geom/ventoy/g_ventoy.h
...c/FreeBSD/geom_ventoy_src/14.x/sys/geom/ventoy/g_ventoy.h
+147
-0
Unix/ventoy_unix_src/FreeBSD/geom_ventoy_src/14.x/sys/modules/geom/geom_ventoy/Makefile
...eom_ventoy_src/14.x/sys/modules/geom/geom_ventoy/Makefile
+8
-0
No files found.
INSTALL/ventoy/ventoy_unix.cpio
View file @
4527e1db
No preview for this file type
Unix/ventoy_unix/FreeBSD/geom_ventoy_ko/14.x/32/geom_ventoy.ko.xz
View file @
4527e1db
No preview for this file type
Unix/ventoy_unix/FreeBSD/geom_ventoy_ko/14.x/64/geom_ventoy.ko.xz
View file @
4527e1db
No preview for this file type
Unix/ventoy_unix_src/FreeBSD/geom_ventoy_src/14.x/sys/geom/ventoy/g_ventoy.c
0 → 100644
View file @
4527e1db
This diff is collapsed.
Click to expand it.
Unix/ventoy_unix_src/FreeBSD/geom_ventoy_src/14.x/sys/geom/ventoy/g_ventoy.h
0 → 100644
View file @
4527e1db
/*-
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
*
* Copyright (c) 2020 longpanda <admin@ventoy.net>
* Copyright (c) 2004-2005 Pawel Jakub Dawidek <pjd@FreeBSD.org>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $FreeBSD$
*/
#ifndef _G_VENTOY_H_
#define _G_VENTOY_H_
#include <sys/endian.h>
#define G_VENTOY_CLASS_NAME "VENTOY"
#define G_VENTOY_MAGIC "GEOM::VENTOY"
/*
* Version history:
* 1 - Initial version number.
* 2 - Added 'stop' command to gconcat(8).
* 3 - Added md_provider field to metadata and '-h' option to gconcat(8).
* 4 - Added md_provsize field to metadata.
*/
#define G_VENTOY_VERSION 4
#ifdef _KERNEL
#define G_VENTOY_TYPE_MANUAL 0
#define G_VENTOY_TYPE_AUTOMATIC 1
#define G_DEBUG(...) if (bootverbose) printf(__VA_ARGS__)
#define G_VENTOY_DEBUG(lvl, ...) if (g_ventoy_debug) printf(__VA_ARGS__)
#define G_VENTOY_LOGREQ(bp, ...) if (g_ventoy_debug) printf(__VA_ARGS__)
struct
g_ventoy_disk
{
TAILQ_ENTRY
(
g_ventoy_disk
)
d_next
;
struct
g_consumer
*
d_consumer
;
struct
g_ventoy_softc
*
d_softc
;
off_t
d_start
;
off_t
d_end
;
off_t
d_map_start
;
off_t
d_map_end
;
int
d_candelete
;
int
d_removed
;
bool
d_hardcoded
;
};
struct
g_ventoy_softc
{
u_int
sc_type
;
/* provider type */
struct
g_geom
*
sc_geom
;
struct
g_provider
*
sc_provider
;
uint32_t
sc_id
;
/* concat unique ID */
uint16_t
sc_ndisks
;
TAILQ_HEAD
(
g_ventoy_disks
,
g_ventoy_disk
)
sc_disks
;
struct
mtx
sc_completion_lock
;
/* synchronizes cross-boundary IOs */
struct
sx
sc_disks_lock
;
/* synchronizes modification of sc_disks */
};
#define sc_name sc_geom->name
#pragma pack(1)
#define VENTOY_UNIX_SEG_MAGIC0 0x11223344
#define VENTOY_UNIX_SEG_MAGIC1 0x55667788
#define VENTOY_UNIX_SEG_MAGIC2 0x99aabbcc
#define VENTOY_UNIX_SEG_MAGIC3 0xddeeff00
#define VENTOY_UNIX_MAX_SEGNUM 40960
struct
g_ventoy_seg
{
uint64_t
seg_start_bytes
;
uint64_t
seg_end_bytes
;
};
struct
g_ventoy_map
{
uint32_t
magic1
[
4
];
uint32_t
magic2
[
4
];
uint64_t
segnum
;
uint64_t
disksize
;
uint8_t
diskuuid
[
16
];
struct
g_ventoy_seg
seglist
[
VENTOY_UNIX_MAX_SEGNUM
];
uint32_t
magic3
[
4
];
};
#pragma pack()
#define VENTOY_MAP_VALID(magic2) \
(magic2[0] == VENTOY_UNIX_SEG_MAGIC0 && magic2[1] == VENTOY_UNIX_SEG_MAGIC1 && magic2[2] == VENTOY_UNIX_SEG_MAGIC2 && magic2[3] == VENTOY_UNIX_SEG_MAGIC3)
#endif
/* _KERNEL */
struct
g_ventoy_metadata
{
char
md_magic
[
16
];
/* Magic value. */
uint32_t
md_version
;
/* Version number. */
char
md_name
[
16
];
/* Concat name. */
uint32_t
md_id
;
/* Unique ID. */
uint16_t
md_no
;
/* Disk number. */
uint16_t
md_all
;
/* Number of all disks. */
char
md_provider
[
16
];
/* Hardcoded provider. */
uint64_t
md_provsize
;
/* Provider's size. */
};
static
__inline
void
ventoy_metadata_encode
(
const
struct
g_ventoy_metadata
*
md
,
u_char
*
data
)
{
bcopy
(
md
->
md_magic
,
data
,
sizeof
(
md
->
md_magic
));
le32enc
(
data
+
16
,
md
->
md_version
);
bcopy
(
md
->
md_name
,
data
+
20
,
sizeof
(
md
->
md_name
));
le32enc
(
data
+
36
,
md
->
md_id
);
le16enc
(
data
+
40
,
md
->
md_no
);
le16enc
(
data
+
42
,
md
->
md_all
);
bcopy
(
md
->
md_provider
,
data
+
44
,
sizeof
(
md
->
md_provider
));
le64enc
(
data
+
60
,
md
->
md_provsize
);
}
static
__inline
void
ventoy_metadata_decode
(
const
u_char
*
data
,
struct
g_ventoy_metadata
*
md
)
{
bcopy
(
data
,
md
->
md_magic
,
sizeof
(
md
->
md_magic
));
md
->
md_version
=
le32dec
(
data
+
16
);
bcopy
(
data
+
20
,
md
->
md_name
,
sizeof
(
md
->
md_name
));
md
->
md_id
=
le32dec
(
data
+
36
);
md
->
md_no
=
le16dec
(
data
+
40
);
md
->
md_all
=
le16dec
(
data
+
42
);
bcopy
(
data
+
44
,
md
->
md_provider
,
sizeof
(
md
->
md_provider
));
md
->
md_provsize
=
le64dec
(
data
+
60
);
}
#endif
/* _G_VENTOY_H_ */
Unix/ventoy_unix_src/FreeBSD/geom_ventoy_src/14.x/sys/modules/geom/geom_ventoy/Makefile
0 → 100644
View file @
4527e1db
# $FreeBSD$
.PATH
:
${SRCTOP}/sys/geom/ventoy
KMOD
=
geom_ventoy
SRCS
=
g_ventoy.c
.
include
<bsd.kmod.mk>
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