From 99d68837843c705133eccbaf326c950a3ca27fc1 Mon Sep 17 00:00:00 2001
From: Alexandre Julliard <julliard@winehq.org>
Date: Fri, 22 Nov 2024 15:13:28 +0100
Subject: [PATCH] server: Use an explicit struct instead of a typedef for
 object locators.

---
 dlls/win32u/winstation.c       | 10 +++++-----
 include/wine/server_protocol.h | 12 ++++++------
 server/file.h                  |  2 +-
 server/mapping.c               |  4 ++--
 server/protocol.def            | 12 ++++++------
 server/request_handlers.h      |  2 +-
 server/request_trace.h         |  2 +-
 server/trace.c                 |  2 +-
 tools/make_requests            |  2 +-
 9 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/dlls/win32u/winstation.c b/dlls/win32u/winstation.c
index 113db326c2d..7e9f526f099 100644
--- a/dlls/win32u/winstation.c
+++ b/dlls/win32u/winstation.c
@@ -179,7 +179,7 @@ static NTSTATUS find_shared_session_block( SIZE_T offset, SIZE_T size, struct se
     return status;
 }
 
-static const shared_object_t *find_shared_session_object( obj_locator_t locator )
+static const shared_object_t *find_shared_session_object( struct obj_locator locator )
 {
     const shared_object_t *object;
     struct session_block *block;
@@ -204,7 +204,7 @@ NTSTATUS get_shared_desktop( struct object_lock *lock, const desktop_shm_t **des
 
     if (!(object = data->shared_desktop))
     {
-        obj_locator_t locator;
+        struct obj_locator locator;
 
         SERVER_START_REQ( get_thread_desktop )
         {
@@ -239,7 +239,7 @@ NTSTATUS get_shared_queue( struct object_lock *lock, const queue_shm_t **queue_s
 
     if (!(object = data->shared_queue))
     {
-        obj_locator_t locator;
+        struct obj_locator locator;
 
         SERVER_START_REQ( get_msg_queue )
         {
@@ -272,7 +272,7 @@ static NTSTATUS try_get_shared_input( UINT tid, struct object_lock *lock, const
 
     if (!(object = cache->object))
     {
-        obj_locator_t locator;
+        struct obj_locator locator;
 
         SERVER_START_REQ( get_thread_input )
         {
@@ -541,7 +541,7 @@ HDESK WINAPI NtUserGetThreadDesktop( DWORD thread )
 BOOL WINAPI NtUserSetThreadDesktop( HDESK handle )
 {
     BOOL ret, was_virtual_desktop = is_virtual_desktop();
-    obj_locator_t locator;
+    struct obj_locator locator;
 
     SERVER_START_REQ( set_thread_desktop )
     {
diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h
index f80f9b9c3e9..290698e0c7a 100644
--- a/include/wine/server_protocol.h
+++ b/include/wine/server_protocol.h
@@ -1004,11 +1004,11 @@ typedef volatile struct
     object_shm_t         shm;
 } shared_object_t;
 
-typedef struct
+struct obj_locator
 {
     object_id_t          id;
     mem_size_t           offset;
-} obj_locator_t;
+};
 
 
 
@@ -2916,7 +2916,7 @@ struct get_msg_queue_request
 struct get_msg_queue_reply
 {
     struct reply_header __header;
-    obj_locator_t  locator;
+    struct obj_locator locator;
 };
 
 
@@ -4064,7 +4064,7 @@ struct get_thread_desktop_request
 struct get_thread_desktop_reply
 {
     struct reply_header __header;
-    obj_locator_t  locator;
+    struct obj_locator locator;
     obj_handle_t   handle;
     char __pad_28[4];
 };
@@ -4079,7 +4079,7 @@ struct set_thread_desktop_request
 struct set_thread_desktop_reply
 {
     struct reply_header __header;
-    obj_locator_t  locator;
+    struct obj_locator locator;
 };
 
 
@@ -4161,7 +4161,7 @@ struct get_thread_input_request
 struct get_thread_input_reply
 {
     struct reply_header __header;
-    obj_locator_t  locator;
+    struct obj_locator locator;
 };
 
 
diff --git a/server/file.h b/server/file.h
index eb350680db4..4f5fc7b26f1 100644
--- a/server/file.h
+++ b/server/file.h
@@ -196,7 +196,7 @@ extern void set_session_mapping( struct mapping *mapping );
 extern const volatile void *alloc_shared_object(void);
 extern void free_shared_object( const volatile void *object_shm );
 extern void invalidate_shared_object( const volatile void *object_shm );
-extern obj_locator_t get_shared_object_locator( const volatile void *object_shm );
+extern struct obj_locator get_shared_object_locator( const volatile void *object_shm );
 
 #define SHARED_WRITE_BEGIN( object_shm, type )                          \
     do {                                                                \
diff --git a/server/mapping.c b/server/mapping.c
index a486fcd8c81..4bdd7c5080a 100644
--- a/server/mapping.c
+++ b/server/mapping.c
@@ -1422,10 +1422,10 @@ void invalidate_shared_object( const volatile void *object_shm )
     SHARED_WRITE_END;
 }
 
-obj_locator_t get_shared_object_locator( const volatile void *object_shm )
+struct obj_locator get_shared_object_locator( const volatile void *object_shm )
 {
     struct session_object *object = CONTAINING_RECORD( object_shm, struct session_object, obj.shm );
-    obj_locator_t locator = {.offset = object->offset, .id = object->obj.id};
+    struct obj_locator locator = {.offset = object->offset, .id = object->obj.id};
     return locator;
 }
 
diff --git a/server/protocol.def b/server/protocol.def
index 5b58da156f7..65f448c24af 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -1020,11 +1020,11 @@ typedef volatile struct
     object_shm_t         shm;              /* object shared data */
 } shared_object_t;
 
-typedef struct
+struct obj_locator
 {
     object_id_t          id;               /* object unique id, object data is valid if != 0 */
     mem_size_t           offset;           /* offset of the object in session shared memory */
-} obj_locator_t;
+};
 
 /****************************************************************/
 /* Request declarations */
@@ -2223,7 +2223,7 @@ struct process_info
 /* Get the message queue of the current thread */
 @REQ(get_msg_queue)
 @REPLY
-    obj_locator_t  locator;    /* locator for the shared session object */
+    struct obj_locator locator;   /* locator for the shared session object */
 @END
 
 
@@ -2958,7 +2958,7 @@ enum coords_relative
 @REQ(get_thread_desktop)
     thread_id_t  tid;             /* thread id */
 @REPLY
-    obj_locator_t  locator;       /* locator for the shared session object */
+    struct obj_locator locator;   /* locator for the shared session object */
     obj_handle_t   handle;        /* handle to the desktop */
 @END
 
@@ -2967,7 +2967,7 @@ enum coords_relative
 @REQ(set_thread_desktop)
     obj_handle_t handle;          /* handle to the desktop */
 @REPLY
-    obj_locator_t  locator;       /* locator for the shared session object */
+    struct obj_locator locator;   /* locator for the shared session object */
 @END
 
 
@@ -3020,7 +3020,7 @@ enum coords_relative
 @REQ(get_thread_input)
     thread_id_t    tid;           /* id of thread */
 @REPLY
-    obj_locator_t  locator;       /* locator for the shared session object */
+    struct obj_locator locator;   /* locator for the shared session object */
 @END
 
 
diff --git a/server/request_handlers.h b/server/request_handlers.h
index 86adb385e52..0adf21dd7c7 100644
--- a/server/request_handlers.h
+++ b/server/request_handlers.h
@@ -610,7 +610,6 @@ C_ASSERT( sizeof(lparam_t) == 8 );
 C_ASSERT( sizeof(mem_size_t) == 8 );
 C_ASSERT( sizeof(mod_handle_t) == 8 );
 C_ASSERT( sizeof(obj_handle_t) == 4 );
-C_ASSERT( sizeof(obj_locator_t) == 16 );
 C_ASSERT( sizeof(object_id_t) == 8 );
 C_ASSERT( sizeof(process_id_t) == 4 );
 C_ASSERT( sizeof(rectangle_t) == 16 );
@@ -622,6 +621,7 @@ C_ASSERT( sizeof(struct generic_map) == 16 );
 C_ASSERT( sizeof(struct handle_info) == 20 );
 C_ASSERT( sizeof(struct luid) == 8 );
 C_ASSERT( sizeof(struct luid_attr) == 12 );
+C_ASSERT( sizeof(struct obj_locator) == 16 );
 C_ASSERT( sizeof(struct object_attributes) == 16 );
 C_ASSERT( sizeof(struct object_type_info) == 44 );
 C_ASSERT( sizeof(struct pe_image_info) == 88 );
diff --git a/server/request_trace.h b/server/request_trace.h
index 6932e1e568b..4d475290346 100644
--- a/server/request_trace.h
+++ b/server/request_trace.h
@@ -13,7 +13,7 @@ static void dump_hw_input( const char *prefix, const union hw_input *val );
 static void dump_ioctl_code( const char *prefix, const ioctl_code_t *val );
 static void dump_irp_params( const char *prefix, const union irp_params *val );
 static void dump_luid( const char *prefix, const struct luid *val );
-static void dump_obj_locator( const char *prefix, const obj_locator_t *val );
+static void dump_obj_locator( const char *prefix, const struct obj_locator *val );
 static void dump_rectangle( const char *prefix, const rectangle_t *val );
 static void dump_timeout( const char *prefix, const timeout_t *val );
 static void dump_uint64( const char *prefix, const unsigned __int64 *val );
diff --git a/server/trace.c b/server/trace.c
index 71592840dcc..34218230c29 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -490,7 +490,7 @@ static void dump_hw_input( const char *prefix, const union hw_input *input )
     }
 }
 
-static void dump_obj_locator( const char *prefix, const obj_locator_t *locator )
+static void dump_obj_locator( const char *prefix, const struct obj_locator *locator )
 {
     fprintf( stderr, "%s{", prefix );
     dump_uint64( "id=", &locator->id );
diff --git a/tools/make_requests b/tools/make_requests
index 2b857e768bd..30f2e77643d 100755
--- a/tools/make_requests
+++ b/tools/make_requests
@@ -39,7 +39,6 @@ my %formats =
     "abstime_t"     => [  8,   8 ],
     "rectangle_t"   => [  16,  4 ],
     "ioctl_code_t"  => [  4,   4 ],
-    "obj_locator_t" => [  16,  8 ],
     # varargs-only structures
     "context_t"                => [  1728,  8 ],
     "union apc_call"           => [ 64, 8 ],
@@ -57,6 +56,7 @@ my %formats =
     "union message_data"       => [ 48, 8 ],
     "struct object_attributes" => [ 16, 4 ],
     "struct object_type_info"  => [ 44, 4 ],
+    "struct obj_locator"       => [ 16, 8 ],
     "struct pe_image_info"     => [ 88, 8 ],
     "struct process_info"      => [ 40, 8 ],
     "struct property_data"     => [ 16, 8 ],
-- 
GitLab