# HG changeset patch # User Paul Boddie # Date 1687354884 -7200 # Node ID 3f36ac20f6673ccce58bd432c021f205bda9d6a4 # Parent 06eb2b9ef9e7e23fa2b7ec866db098bd6a74ba85 Moved L4Re factory types to libsystypes, eliminating it as a libipc dependency. diff -r 06eb2b9ef9e7 -r 3f36ac20f667 libipc/Control --- a/libipc/Control Thu Apr 06 21:48:19 2023 +0200 +++ b/libipc/Control Wed Jun 21 15:41:24 2023 +0200 @@ -1,3 +1,3 @@ -requires: libc libsystypes +requires: libc provides: libipc maintainer: paul@boddie.org.uk diff -r 06eb2b9ef9e7 -r 3f36ac20f667 libipc/include/ipc/factory.h --- a/libipc/include/ipc/factory.h Thu Apr 06 21:48:19 2023 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/* - * Factory-related data types. - * - * Copyright (C) 2019 Paul Boddie - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA - */ - -#pragma once - -#include - -#include - - - -EXTERN_C_BEGIN - -/* Supporting data types for factory invocations. */ - -typedef unsigned long unsigned_long; - -ipc_varg_typedef(long, ipc_varg(long)) -ipc_varg_typedef(unsigned_long, ipc_varg(unsigned_long)) - -#define ipc_varg_long(value) \ -ipc_varg_mword(ipc_varg(long), value) - -#define ipc_varg_unsigned_long(value) \ -ipc_varg_umword(ipc_varg(unsigned_long), value) - -EXTERN_C_END diff -r 06eb2b9ef9e7 -r 3f36ac20f667 libsystypes/idl/dataspace_factory.idl --- a/libsystypes/idl/dataspace_factory.idl Thu Apr 06 21:48:19 2023 +0200 +++ b/libsystypes/idl/dataspace_factory.idl Wed Jun 21 15:41:24 2023 +0200 @@ -1,5 +1,5 @@ -#include #include /* L4RE_PROTO_DATASPACE */ +#include /* Dataspace operations exposed via the factory interface. This appears to involve extra tag values which are incorporated into the provided values.*/ diff -r 06eb2b9ef9e7 -r 3f36ac20f667 libsystypes/idl/filesystem_factory.idl --- a/libsystypes/idl/filesystem_factory.idl Thu Apr 06 21:48:19 2023 +0200 +++ b/libsystypes/idl/filesystem_factory.idl Wed Jun 21 15:41:24 2023 +0200 @@ -1,4 +1,5 @@ #include /* sys_uid_t, sys_gid_t, sys_mode_t */ +#include /* Filesystem operations exposed via the factory interface. This appears to involve extra tag values which are incorporated into the provided values. */ diff -r 06eb2b9ef9e7 -r 3f36ac20f667 libsystypes/include/systypes/base.h --- a/libsystypes/include/systypes/base.h Thu Apr 06 21:48:19 2023 +0200 +++ b/libsystypes/include/systypes/base.h Wed Jun 21 15:41:24 2023 +0200 @@ -22,8 +22,9 @@ #pragma once #include +#include -#include + EXTERN_C_BEGIN @@ -140,21 +141,6 @@ #define systypes_to_sys_mode(mode) \ ((sys_mode_t) mode) -/* Factory types for L4 factory interface invocations. */ - -ipc_varg_typedef(sys_mode_t, ipc_varg_sys_mode_t) -ipc_varg_typedef(sys_uid_t, ipc_varg_sys_uid_t) -ipc_varg_typedef(sys_gid_t, ipc_varg_sys_gid_t) - -#define ipc_varg_sys_mode(value) \ -ipc_varg_umword(ipc_varg_sys_mode_t, value) - -#define ipc_varg_sys_uid(value) \ -ipc_varg_umword(ipc_varg_sys_uid_t, value) - -#define ipc_varg_sys_gid(value) \ -ipc_varg_umword(ipc_varg_sys_gid_t, value) - EXTERN_C_END // vim: tabstop=2 expandtab shiftwidth=2 diff -r 06eb2b9ef9e7 -r 3f36ac20f667 libsystypes/include/systypes/factory.h --- a/libsystypes/include/systypes/factory.h Thu Apr 06 21:48:19 2023 +0200 +++ b/libsystypes/include/systypes/factory.h Wed Jun 21 15:41:24 2023 +0200 @@ -1,7 +1,7 @@ /* * Factory-related data type macros. * - * Copyright (C) 2019 Paul Boddie + * Copyright (C) 2019, 2023 Paul Boddie * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -21,7 +21,7 @@ #pragma once -#include +#include @@ -53,4 +53,36 @@ #define ipc_varg(type) ipc_varg_##type##_t + + +/* Supporting data types for factory invocations. */ + +typedef unsigned long unsigned_long; + +ipc_varg_typedef(long, ipc_varg(long)) +ipc_varg_typedef(unsigned_long, ipc_varg(unsigned_long)) + +#define ipc_varg_long(value) \ +ipc_varg_mword(ipc_varg(long), value) + +#define ipc_varg_unsigned_long(value) \ +ipc_varg_umword(ipc_varg(unsigned_long), value) + + + +/* Additional, specific factory types for L4 factory interface invocations. */ + +ipc_varg_typedef(sys_mode_t, ipc_varg_sys_mode_t) +ipc_varg_typedef(sys_uid_t, ipc_varg_sys_uid_t) +ipc_varg_typedef(sys_gid_t, ipc_varg_sys_gid_t) + +#define ipc_varg_sys_mode(value) \ +ipc_varg_umword(ipc_varg_sys_mode_t, value) + +#define ipc_varg_sys_uid(value) \ +ipc_varg_umword(ipc_varg_sys_uid_t, value) + +#define ipc_varg_sys_gid(value) \ +ipc_varg_umword(ipc_varg_sys_gid_t, value) + EXTERN_C_END