1.1 --- a/libsystypes/include/systypes/factory.h Thu Apr 06 21:48:19 2023 +0200
1.2 +++ b/libsystypes/include/systypes/factory.h Wed Jun 21 15:41:24 2023 +0200
1.3 @@ -1,7 +1,7 @@
1.4 /*
1.5 * Factory-related data type macros.
1.6 *
1.7 - * Copyright (C) 2019 Paul Boddie <paul@boddie.org.uk>
1.8 + * Copyright (C) 2019, 2023 Paul Boddie <paul@boddie.org.uk>
1.9 *
1.10 * This program is free software; you can redistribute it and/or
1.11 * modify it under the terms of the GNU General Public License as
1.12 @@ -21,7 +21,7 @@
1.13
1.14 #pragma once
1.15
1.16 -#include <l4/sys/types.h>
1.17 +#include <systypes/base.h>
1.18
1.19
1.20
1.21 @@ -53,4 +53,36 @@
1.22
1.23 #define ipc_varg(type) ipc_varg_##type##_t
1.24
1.25 +
1.26 +
1.27 +/* Supporting data types for factory invocations. */
1.28 +
1.29 +typedef unsigned long unsigned_long;
1.30 +
1.31 +ipc_varg_typedef(long, ipc_varg(long))
1.32 +ipc_varg_typedef(unsigned_long, ipc_varg(unsigned_long))
1.33 +
1.34 +#define ipc_varg_long(value) \
1.35 +ipc_varg_mword(ipc_varg(long), value)
1.36 +
1.37 +#define ipc_varg_unsigned_long(value) \
1.38 +ipc_varg_umword(ipc_varg(unsigned_long), value)
1.39 +
1.40 +
1.41 +
1.42 +/* Additional, specific factory types for L4 factory interface invocations. */
1.43 +
1.44 +ipc_varg_typedef(sys_mode_t, ipc_varg_sys_mode_t)
1.45 +ipc_varg_typedef(sys_uid_t, ipc_varg_sys_uid_t)
1.46 +ipc_varg_typedef(sys_gid_t, ipc_varg_sys_gid_t)
1.47 +
1.48 +#define ipc_varg_sys_mode(value) \
1.49 +ipc_varg_umword(ipc_varg_sys_mode_t, value)
1.50 +
1.51 +#define ipc_varg_sys_uid(value) \
1.52 +ipc_varg_umword(ipc_varg_sys_uid_t, value)
1.53 +
1.54 +#define ipc_varg_sys_gid(value) \
1.55 +ipc_varg_umword(ipc_varg_sys_gid_t, value)
1.56 +
1.57 EXTERN_C_END