1.1 --- a/libipc/Control Thu Apr 06 21:48:19 2023 +0200
1.2 +++ b/libipc/Control Wed Jun 21 15:41:24 2023 +0200
1.3 @@ -1,3 +1,3 @@
1.4 -requires: libc libsystypes
1.5 +requires: libc
1.6 provides: libipc
1.7 maintainer: paul@boddie.org.uk
2.1 --- a/libipc/include/ipc/factory.h Thu Apr 06 21:48:19 2023 +0200
2.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2.3 @@ -1,45 +0,0 @@
2.4 -/*
2.5 - * Factory-related data types.
2.6 - *
2.7 - * Copyright (C) 2019 Paul Boddie <paul@boddie.org.uk>
2.8 - *
2.9 - * This program is free software; you can redistribute it and/or
2.10 - * modify it under the terms of the GNU General Public License as
2.11 - * published by the Free Software Foundation; either version 2 of
2.12 - * the License, or (at your option) any later version.
2.13 - *
2.14 - * This program is distributed in the hope that it will be useful,
2.15 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
2.16 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2.17 - * GNU General Public License for more details.
2.18 - *
2.19 - * You should have received a copy of the GNU General Public License
2.20 - * along with this program; if not, write to the Free Software
2.21 - * Foundation, Inc., 51 Franklin Street, Fifth Floor,
2.22 - * Boston, MA 02110-1301, USA
2.23 - */
2.24 -
2.25 -#pragma once
2.26 -
2.27 -#include <l4/sys/types.h>
2.28 -
2.29 -#include <systypes/factory.h>
2.30 -
2.31 -
2.32 -
2.33 -EXTERN_C_BEGIN
2.34 -
2.35 -/* Supporting data types for factory invocations. */
2.36 -
2.37 -typedef unsigned long unsigned_long;
2.38 -
2.39 -ipc_varg_typedef(long, ipc_varg(long))
2.40 -ipc_varg_typedef(unsigned_long, ipc_varg(unsigned_long))
2.41 -
2.42 -#define ipc_varg_long(value) \
2.43 -ipc_varg_mword(ipc_varg(long), value)
2.44 -
2.45 -#define ipc_varg_unsigned_long(value) \
2.46 -ipc_varg_umword(ipc_varg(unsigned_long), value)
2.47 -
2.48 -EXTERN_C_END
3.1 --- a/libsystypes/idl/dataspace_factory.idl Thu Apr 06 21:48:19 2023 +0200
3.2 +++ b/libsystypes/idl/dataspace_factory.idl Wed Jun 21 15:41:24 2023 +0200
3.3 @@ -1,5 +1,5 @@
3.4 -#include <ipc/factory.h>
3.5 #include <l4/re/protocols.h> /* L4RE_PROTO_DATASPACE */
3.6 +#include <systypes/factory.h>
3.7
3.8 /* Dataspace operations exposed via the factory interface. This appears to
3.9 involve extra tag values which are incorporated into the provided values.*/
4.1 --- a/libsystypes/idl/filesystem_factory.idl Thu Apr 06 21:48:19 2023 +0200
4.2 +++ b/libsystypes/idl/filesystem_factory.idl Wed Jun 21 15:41:24 2023 +0200
4.3 @@ -1,4 +1,5 @@
4.4 #include <systypes/base.h> /* sys_uid_t, sys_gid_t, sys_mode_t */
4.5 +#include <systypes/factory.h>
4.6
4.7 /* Filesystem operations exposed via the factory interface. This appears to
4.8 involve extra tag values which are incorporated into the provided values. */
5.1 --- a/libsystypes/include/systypes/base.h Thu Apr 06 21:48:19 2023 +0200
5.2 +++ b/libsystypes/include/systypes/base.h Wed Jun 21 15:41:24 2023 +0200
5.3 @@ -22,8 +22,9 @@
5.4 #pragma once
5.5
5.6 #include <l4/sys/compiler.h>
5.7 +#include <l4/sys/types.h>
5.8
5.9 -#include <systypes/factory.h>
5.10 +
5.11
5.12 EXTERN_C_BEGIN
5.13
5.14 @@ -140,21 +141,6 @@
5.15 #define systypes_to_sys_mode(mode) \
5.16 ((sys_mode_t) mode)
5.17
5.18 -/* Factory types for L4 factory interface invocations. */
5.19 -
5.20 -ipc_varg_typedef(sys_mode_t, ipc_varg_sys_mode_t)
5.21 -ipc_varg_typedef(sys_uid_t, ipc_varg_sys_uid_t)
5.22 -ipc_varg_typedef(sys_gid_t, ipc_varg_sys_gid_t)
5.23 -
5.24 -#define ipc_varg_sys_mode(value) \
5.25 -ipc_varg_umword(ipc_varg_sys_mode_t, value)
5.26 -
5.27 -#define ipc_varg_sys_uid(value) \
5.28 -ipc_varg_umword(ipc_varg_sys_uid_t, value)
5.29 -
5.30 -#define ipc_varg_sys_gid(value) \
5.31 -ipc_varg_umword(ipc_varg_sys_gid_t, value)
5.32 -
5.33 EXTERN_C_END
5.34
5.35 // vim: tabstop=2 expandtab shiftwidth=2
6.1 --- a/libsystypes/include/systypes/factory.h Thu Apr 06 21:48:19 2023 +0200
6.2 +++ b/libsystypes/include/systypes/factory.h Wed Jun 21 15:41:24 2023 +0200
6.3 @@ -1,7 +1,7 @@
6.4 /*
6.5 * Factory-related data type macros.
6.6 *
6.7 - * Copyright (C) 2019 Paul Boddie <paul@boddie.org.uk>
6.8 + * Copyright (C) 2019, 2023 Paul Boddie <paul@boddie.org.uk>
6.9 *
6.10 * This program is free software; you can redistribute it and/or
6.11 * modify it under the terms of the GNU General Public License as
6.12 @@ -21,7 +21,7 @@
6.13
6.14 #pragma once
6.15
6.16 -#include <l4/sys/types.h>
6.17 +#include <systypes/base.h>
6.18
6.19
6.20
6.21 @@ -53,4 +53,36 @@
6.22
6.23 #define ipc_varg(type) ipc_varg_##type##_t
6.24
6.25 +
6.26 +
6.27 +/* Supporting data types for factory invocations. */
6.28 +
6.29 +typedef unsigned long unsigned_long;
6.30 +
6.31 +ipc_varg_typedef(long, ipc_varg(long))
6.32 +ipc_varg_typedef(unsigned_long, ipc_varg(unsigned_long))
6.33 +
6.34 +#define ipc_varg_long(value) \
6.35 +ipc_varg_mword(ipc_varg(long), value)
6.36 +
6.37 +#define ipc_varg_unsigned_long(value) \
6.38 +ipc_varg_umword(ipc_varg(unsigned_long), value)
6.39 +
6.40 +
6.41 +
6.42 +/* Additional, specific factory types for L4 factory interface invocations. */
6.43 +
6.44 +ipc_varg_typedef(sys_mode_t, ipc_varg_sys_mode_t)
6.45 +ipc_varg_typedef(sys_uid_t, ipc_varg_sys_uid_t)
6.46 +ipc_varg_typedef(sys_gid_t, ipc_varg_sys_gid_t)
6.47 +
6.48 +#define ipc_varg_sys_mode(value) \
6.49 +ipc_varg_umword(ipc_varg_sys_mode_t, value)
6.50 +
6.51 +#define ipc_varg_sys_uid(value) \
6.52 +ipc_varg_umword(ipc_varg_sys_uid_t, value)
6.53 +
6.54 +#define ipc_varg_sys_gid(value) \
6.55 +ipc_varg_umword(ipc_varg_sys_gid_t, value)
6.56 +
6.57 EXTERN_C_END