Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix licensing #72

Merged
merged 5 commits into from
Sep 30, 2024
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 README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@ by MIT license.
The library functions (all code in lib/ directory and include/ublksrv.h)
are covered by dual licensed LGPL and MIT, see COPYING.LGPL and LICENSE.

qcow2 target code is covered by GPL-2.0, see COPYING.
qcow2 and nbd target code is covered by GPL-2.0, see COPYING.

All other source code are covered by dual licensed GPL and MIT, see
COPYING and LICENSE.
Expand Down
2 changes: 1 addition & 1 deletion include/ublk_cmd.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) or MIT */
#ifndef USER_BLK_DRV_CMD_INC_H
#define USER_BLK_DRV_CMD_INC_H

Expand Down
133 changes: 10 additions & 123 deletions include/ublksrv_tgt_endian.h
Original file line number Diff line number Diff line change
@@ -1,141 +1,28 @@
// SPDX-License-Identifier: GPL-2.0
// SPDX-License-Identifier: MIT or GPL-2.0-only
#ifndef UBLK_TGT_ENDIAN_H
#define UBLK_TGT_ENDIAN_H

#include <byteswap.h>

/* ublksrv target code private header, not for libublksrv user */

static inline uint16_t bswap16(uint16_t x)
{
return bswap_16(x);
}
static inline uint32_t bswap32(uint32_t x)
{
return bswap_32(x);
}
static inline uint64_t bswap64(uint64_t x)
{
return bswap_64(x);
}

static inline void bswap16s(uint16_t *s)
{
*s = bswap16(*s);
}

static inline void bswap32s(uint32_t *s)
{
*s = bswap32(*s);
}

static inline void bswap64s(uint64_t *s)
{
*s = bswap64(*s);
}

#ifndef glue
#define xglue(x, y) x ## y
#define glue(x, y) xglue(x, y)
#endif

#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
#define be_bswap(v, size) (v)
#define le_bswap(v, size) glue(bswap, size)(v)
#define be_bswaps(v, size)
#define le_bswaps(p, size) do { *p = glue(bswap, size)(*p); } while(0)
#else
#define le_bswap(v, size) (v)
#define be_bswap(v, size) glue(bswap, size)(v)
#define le_bswaps(v, size)
#define be_bswaps(p, size) do { *p = glue(bswap, size)(*p); } while(0)
#endif

/**
* Endianness conversion functions between host cpu and specified endianness.
* (We list the complete set of prototypes produced by the macros below
* to assist people who search the headers to find their definitions.)
*
* uint16_t le16_to_cpu(uint16_t v);
* uint32_t le32_to_cpu(uint32_t v);
* uint64_t le64_to_cpu(uint64_t v);
* uint16_t be16_to_cpu(uint16_t v);
* uint32_t be32_to_cpu(uint32_t v);
* uint64_t be64_to_cpu(uint64_t v);
*
* Convert the value @v from the specified format to the native
* endianness of the host CPU by byteswapping if necessary, and
* return the converted value.
*
* uint16_t cpu_to_le16(uint16_t v);
* uint32_t cpu_to_le32(uint32_t v);
* uint64_t cpu_to_le64(uint64_t v);
* uint16_t cpu_to_be16(uint16_t v);
* uint32_t cpu_to_be32(uint32_t v);
* uint64_t cpu_to_be64(uint64_t v);
*
* Convert the value @v from the native endianness of the host CPU to
* the specified format by byteswapping if necessary, and return
* the converted value.
*
* void le16_to_cpus(uint16_t *v);
* void le32_to_cpus(uint32_t *v);
* void le64_to_cpus(uint64_t *v);
* void be16_to_cpus(uint16_t *v);
* void be32_to_cpus(uint32_t *v);
* void be64_to_cpus(uint64_t *v);
*
* Do an in-place conversion of the value pointed to by @v from the
* specified format to the native endianness of the host CPU.
*
* void cpu_to_le16s(uint16_t *v);
* void cpu_to_le32s(uint32_t *v);
* void cpu_to_le64s(uint64_t *v);
* void cpu_to_be16s(uint16_t *v);
* void cpu_to_be32s(uint32_t *v);
* void cpu_to_be64s(uint64_t *v);
*
* Do an in-place conversion of the value pointed to by @v from the
* native endianness of the host CPU to the specified format.
*
* Both X_to_cpu() and cpu_to_X() perform the same operation; you
* should use whichever one is better documenting of the function your
* code is performing.
*
* Do not use these functions for conversion of values which are in guest
* memory, since the data may not be sufficiently aligned for the host CPU's
* load and store instructions. Instead you should use the ld*_p() and
* st*_p() functions, which perform loads and stores of data of any
* required size and endianness and handle possible misalignment.
*/

#define CPU_CONVERT(endian, size, type)\
#define HOST_CONVERT(endian, size, type)\
static inline type endian ## size ## _to_cpu(type v)\
{\
return glue(endian, _bswap)(v, size);\
return endian ## size ## toh(v); \
}\
\
static inline type cpu_to_ ## endian ## size(type v)\
{\
return glue(endian, _bswap)(v, size);\
return hto ## endian ## size(v); \
}\
\
static inline void endian ## size ## _to_cpus(type *p)\
{\
glue(endian, _bswaps)(p, size);\
}\
\
static inline void cpu_to_ ## endian ## size ## s(type *p)\
{\
glue(endian, _bswaps)(p, size);\
}

CPU_CONVERT(be, 16, uint16_t)
CPU_CONVERT(be, 32, uint32_t)
CPU_CONVERT(be, 64, uint64_t)
HOST_CONVERT(be, 16, uint16_t)
HOST_CONVERT(be, 32, uint32_t)
HOST_CONVERT(be, 64, uint64_t)

CPU_CONVERT(le, 16, uint16_t)
CPU_CONVERT(le, 32, uint32_t)
CPU_CONVERT(le, 64, uint64_t)
HOST_CONVERT(le, 16, uint16_t)
HOST_CONVERT(le, 32, uint32_t)
HOST_CONVERT(le, 64, uint64_t)

#endif
2 changes: 1 addition & 1 deletion tests/common/nbd_common
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0

export NBDSRV=127.0.0.1
export NBD_SIZE=2G
Expand Down
2 changes: 1 addition & 1 deletion tests/common/qcow2_common
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: GPL-2.0
#!/bin/bash
# SPDX-License-Identifier: MIT or GPL-2.0-only

export QCOW2_IMG_SZ=2G

Expand Down
2 changes: 1 addition & 1 deletion tests/debug/test_dev
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0-only
#
#usage:
# export UBLK_DBG_DEV=/dev/vdc; make test T=debug/test_dev
Expand Down
2 changes: 1 addition & 1 deletion tests/nbd/001
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0

. common/fio_common
. common/nbd_common
Expand Down
2 changes: 1 addition & 1 deletion tests/nbd/002
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0

. common/fio_common
. common/nbd_common
Expand Down
2 changes: 1 addition & 1 deletion tests/nbd/003
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0

. common/fio_common
. common/nbd_common
Expand Down
2 changes: 1 addition & 1 deletion tests/nbd/021
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0

. common/fio_common
. common/nbd_common
Expand Down
2 changes: 1 addition & 1 deletion tests/nbd/022
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0

. common/fio_common
. common/nbd_common
Expand Down
2 changes: 1 addition & 1 deletion tests/nbd/023
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0

. common/fio_common
. common/nbd_common
Expand Down
2 changes: 1 addition & 1 deletion tests/nbd/041
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0

. common/fio_common
. common/nbd_common
Expand Down
2 changes: 1 addition & 1 deletion tests/nbd/042
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0

. common/fio_common
. common/nbd_common
Expand Down
2 changes: 1 addition & 1 deletion tests/nbd/043
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0

. common/fio_common
. common/nbd_common
Expand Down
2 changes: 1 addition & 1 deletion tests/qcow2/001
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0

. common/fio_common
. common/qcow2_common
Expand Down
2 changes: 1 addition & 1 deletion tests/qcow2/002
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0

. common/fio_common
. common/qcow2_common
Expand Down
2 changes: 1 addition & 1 deletion tests/qcow2/021
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0

. common/fio_common
. common/qcow2_common
Expand Down
2 changes: 1 addition & 1 deletion tests/qcow2/022
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0

. common/fio_common
. common/qcow2_common
Expand Down
2 changes: 1 addition & 1 deletion tests/qcow2/040
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0

. common/fio_common
. common/qcow2_common
Expand Down
2 changes: 1 addition & 1 deletion tests/qcow2/041
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0

. common/fio_common
. common/qcow2_common
Expand Down
2 changes: 1 addition & 1 deletion tests/qcow2/big_size_fs_io
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0-only

. common/fio_common
. common/qcow2_common
Expand Down
2 changes: 1 addition & 1 deletion tests/qcow2/big_size_io
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0-only

. common/fio_common
. common/qcow2_common
Expand Down
2 changes: 1 addition & 1 deletion utils/genver.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0-only

GITDESC=$(git describe --dirty|sed -e 's/^v//' 2>/dev/null)

Expand Down
65 changes: 0 additions & 65 deletions utils/nop.c

This file was deleted.

2 changes: 1 addition & 1 deletion utils/ublk_chown_docker.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: MIT or GPL-2.0-only

ublk_docker_add()
{
Expand Down
Loading