Updated server-Desktop_Refcount patchset

This commit is contained in:
Alistair Leslie-Hughes 2020-09-07 14:03:16 +10:00
parent 0505562a30
commit 7a5a98a14b

View File

@ -1,4 +1,4 @@
From 8aeef64022bb045cc294dc717c8f6a85cb87623d Mon Sep 17 00:00:00 2001
From a40b6ca0906eb4723a51ebe0066eff54f6b1fe51 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Fri, 4 Dec 2015 10:36:47 +0100
Subject: [PATCH] server: Introduce a new alloc_handle object callback. (v2)
@ -22,7 +22,7 @@ Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
server/mailslot.c | 4 ++++
server/mapping.c | 3 +++
server/mutex.c | 1 +
server/named_pipe.c | 7 ++++++-
server/named_pipe.c | 5 +++++
server/object.c | 4 ++++
server/object.h | 5 ++++-
server/process.c | 3 +++
@ -38,10 +38,10 @@ Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
server/timer.c | 1 +
server/token.c | 1 +
server/winstation.c | 2 ++
33 files changed, 80 insertions(+), 4 deletions(-)
33 files changed, 79 insertions(+), 3 deletions(-)
diff --git a/server/async.c b/server/async.c
index 03994e8fac2..9feafd01847 100644
index 03994e8fac..9feafd0184 100644
--- a/server/async.c
+++ b/server/async.c
@@ -81,6 +81,7 @@ static const struct object_ops async_ops =
@ -61,7 +61,7 @@ index 03994e8fac2..9feafd01847 100644
iosb_destroy /* destroy */
};
diff --git a/server/atom.c b/server/atom.c
index 57aff7b8918..04e301b0bc9 100644
index 57aff7b891..04e301b0bc 100644
--- a/server/atom.c
+++ b/server/atom.c
@@ -91,6 +91,7 @@ static const struct object_ops atom_table_ops =
@ -73,7 +73,7 @@ index 57aff7b8918..04e301b0bc9 100644
atom_table_destroy /* destroy */
};
diff --git a/server/change.c b/server/change.c
index a8f3329c722..d0744e72f07 100644
index a8f3329c72..d0744e72f0 100644
--- a/server/change.c
+++ b/server/change.c
@@ -126,6 +126,7 @@ static const struct object_ops dir_ops =
@ -85,7 +85,7 @@ index a8f3329c722..d0744e72f07 100644
dir_destroy /* destroy */
};
diff --git a/server/clipboard.c b/server/clipboard.c
index e6884dd75fa..dcc92507bc1 100644
index e6884dd75f..dcc92507bc 100644
--- a/server/clipboard.c
+++ b/server/clipboard.c
@@ -88,6 +88,7 @@ static const struct object_ops clipboard_ops =
@ -97,7 +97,7 @@ index e6884dd75fa..dcc92507bc1 100644
clipboard_destroy /* destroy */
};
diff --git a/server/completion.c b/server/completion.c
index db04727b93b..e72a155eeeb 100644
index db04727b93..e72a155eee 100644
--- a/server/completion.c
+++ b/server/completion.c
@@ -75,6 +75,7 @@ static const struct object_ops completion_ops =
@ -109,7 +109,7 @@ index db04727b93b..e72a155eeeb 100644
completion_destroy /* destroy */
};
diff --git a/server/console.c b/server/console.c
index 3ea8a0fe531..16e37b4e885 100644
index 3ea8a0fe53..16e37b4e88 100644
--- a/server/console.c
+++ b/server/console.c
@@ -102,6 +102,7 @@ static const struct object_ops console_input_ops =
@ -153,7 +153,7 @@ index 3ea8a0fe531..16e37b4e885 100644
no_destroy /* destroy */
};
diff --git a/server/debugger.c b/server/debugger.c
index 401ce36a47a..b7746d55c0e 100644
index 401ce36a47..b7746d55c0 100644
--- a/server/debugger.c
+++ b/server/debugger.c
@@ -84,6 +84,7 @@ static const struct object_ops debug_event_ops =
@ -173,7 +173,7 @@ index 401ce36a47a..b7746d55c0e 100644
debug_ctx_destroy /* destroy */
};
diff --git a/server/device.c b/server/device.c
index 01e08f295f7..90150e1b251 100644
index 01e08f295f..90150e1b25 100644
--- a/server/device.c
+++ b/server/device.c
@@ -79,6 +79,7 @@ static const struct object_ops irp_call_ops =
@ -209,7 +209,7 @@ index 01e08f295f7..90150e1b251 100644
device_file_destroy /* destroy */
};
diff --git a/server/directory.c b/server/directory.c
index 198fc48ece2..b735602a805 100644
index 198fc48ece..b735602a80 100644
--- a/server/directory.c
+++ b/server/directory.c
@@ -68,6 +68,7 @@ static const struct object_ops object_type_ops =
@ -229,7 +229,7 @@ index 198fc48ece2..b735602a805 100644
directory_destroy /* destroy */
};
diff --git a/server/event.c b/server/event.c
index d339d85aa45..a78d73d9e78 100644
index d339d85aa4..a78d73d9e7 100644
--- a/server/event.c
+++ b/server/event.c
@@ -71,6 +71,7 @@ static const struct object_ops event_ops =
@ -249,7 +249,7 @@ index d339d85aa45..a78d73d9e78 100644
no_destroy /* destroy */
};
diff --git a/server/fd.c b/server/fd.c
index 7ea8ac273e5..a4741724fb6 100644
index 7ea8ac273e..a4741724fb 100644
--- a/server/fd.c
+++ b/server/fd.c
@@ -221,6 +221,7 @@ static const struct object_ops fd_ops =
@ -285,7 +285,7 @@ index 7ea8ac273e5..a4741724fb6 100644
no_destroy /* destroy */
};
diff --git a/server/file.c b/server/file.c
index 38260cfd2b3..ba9358c0ee0 100644
index 38260cfd2b..ba9358c0ee 100644
--- a/server/file.c
+++ b/server/file.c
@@ -96,6 +96,7 @@ static const struct object_ops file_ops =
@ -297,7 +297,7 @@ index 38260cfd2b3..ba9358c0ee0 100644
file_destroy /* destroy */
};
diff --git a/server/handle.c b/server/handle.c
index 9ae99cd0c63..5a3a357b991 100644
index 9ae99cd0c6..5a3a357b99 100644
--- a/server/handle.c
+++ b/server/handle.c
@@ -134,6 +134,7 @@ static const struct object_ops handle_table_ops =
@ -342,7 +342,7 @@ index 9ae99cd0c63..5a3a357b991 100644
}
}
diff --git a/server/hook.c b/server/hook.c
index ec6be582482..c2a26eb4dff 100644
index ec6be58248..c2a26eb4df 100644
--- a/server/hook.c
+++ b/server/hook.c
@@ -92,6 +92,7 @@ static const struct object_ops hook_table_ops =
@ -354,7 +354,7 @@ index ec6be582482..c2a26eb4dff 100644
hook_table_destroy /* destroy */
};
diff --git a/server/mailslot.c b/server/mailslot.c
index 58d650cbb25..0f8d457f1a8 100644
index 58d650cbb2..0f8d457f1a 100644
--- a/server/mailslot.c
+++ b/server/mailslot.c
@@ -89,6 +89,7 @@ static const struct object_ops mailslot_ops =
@ -390,7 +390,7 @@ index 58d650cbb25..0f8d457f1a8 100644
mailslot_device_file_destroy /* destroy */
};
diff --git a/server/mapping.c b/server/mapping.c
index db0debe0af5..952984381cc 100644
index db0debe0af..952984381c 100644
--- a/server/mapping.c
+++ b/server/mapping.c
@@ -79,6 +79,7 @@ static const struct object_ops ranges_ops =
@ -418,7 +418,7 @@ index db0debe0af5..952984381cc 100644
mapping_destroy /* destroy */
};
diff --git a/server/mutex.c b/server/mutex.c
index 8a8f7248eae..3754c35acbb 100644
index 8a8f7248ea..3754c35acb 100644
--- a/server/mutex.c
+++ b/server/mutex.c
@@ -72,6 +72,7 @@ static const struct object_ops mutex_ops =
@ -430,7 +430,7 @@ index 8a8f7248eae..3754c35acbb 100644
mutex_destroy /* destroy */
};
diff --git a/server/named_pipe.c b/server/named_pipe.c
index e7e5436c0e5..94486bbc332 100644
index e7e5436c0e..2636849e45 100644
--- a/server/named_pipe.c
+++ b/server/named_pipe.c
@@ -129,6 +129,7 @@ static const struct object_ops named_pipe_ops =
@ -457,16 +457,14 @@ index e7e5436c0e5..94486bbc332 100644
fd_close_handle, /* close_handle */
pipe_end_destroy /* destroy */
};
@@ -259,7 +262,8 @@ static const struct object_ops named_pipe_device_ops =
@@ -259,6 +262,7 @@ static const struct object_ops named_pipe_device_ops =
default_unlink_name, /* unlink_name */
named_pipe_device_open_file, /* open_file */
no_kernel_obj_list, /* get_kernel_obj_list */
- no_close_handle, /* close_handle */
+ no_alloc_handle, /* alloc_handle */
+ fd_close_handle, /* close_handle */
no_close_handle, /* close_handle */
named_pipe_device_destroy /* destroy */
};
@@ -288,6 +292,7 @@ static const struct object_ops named_pipe_device_file_ops =
NULL, /* unlink_name */
no_open_file, /* open_file */
@ -476,7 +474,7 @@ index e7e5436c0e5..94486bbc332 100644
named_pipe_device_file_destroy /* destroy */
};
diff --git a/server/object.c b/server/object.c
index 8ec6609f69d..c319cfc4876 100644
index 8ec6609f69..c319cfc487 100644
--- a/server/object.c
+++ b/server/object.c
@@ -711,6 +711,10 @@ struct object *no_open_file( struct object *obj, unsigned int access, unsigned i
@ -491,7 +489,7 @@ index 8ec6609f69d..c319cfc4876 100644
{
return 1; /* ok to close */
diff --git a/server/object.h b/server/object.h
index 1f5c4a5f061..d47abbc3e43 100644
index 1f5c4a5f06..d47abbc3e4 100644
--- a/server/object.h
+++ b/server/object.h
@@ -91,8 +91,10 @@ struct object_ops
@ -515,7 +513,7 @@ index 1f5c4a5f061..d47abbc3e43 100644
extern void no_destroy( struct object *obj );
#ifdef DEBUG_OBJECTS
diff --git a/server/process.c b/server/process.c
index 9bf5e447d37..85856da885e 100644
index 9bf5e447d3..85856da885 100644
--- a/server/process.c
+++ b/server/process.c
@@ -89,6 +89,7 @@ static const struct object_ops process_ops =
@ -543,7 +541,7 @@ index 9bf5e447d37..85856da885e 100644
job_destroy /* destroy */
};
diff --git a/server/queue.c b/server/queue.c
index c1016016051..5b1a57fe0ab 100644
index c101601605..5b1a57fe0a 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -182,6 +182,7 @@ static const struct object_ops msg_queue_ops =
@ -563,7 +561,7 @@ index c1016016051..5b1a57fe0ab 100644
thread_input_destroy /* destroy */
};
diff --git a/server/registry.c b/server/registry.c
index dcbb3f791e1..6e5eddcd257 100644
index dcbb3f791e..6e5eddcd25 100644
--- a/server/registry.c
+++ b/server/registry.c
@@ -170,6 +170,7 @@ static const struct object_ops key_ops =
@ -575,7 +573,7 @@ index dcbb3f791e1..6e5eddcd257 100644
key_destroy /* destroy */
};
diff --git a/server/request.c b/server/request.c
index 4c1f30a5fe7..42cc83c3037 100644
index 4c1f30a5fe..42cc83c303 100644
--- a/server/request.c
+++ b/server/request.c
@@ -107,6 +107,7 @@ static const struct object_ops master_socket_ops =
@ -587,7 +585,7 @@ index 4c1f30a5fe7..42cc83c3037 100644
master_socket_destroy /* destroy */
};
diff --git a/server/semaphore.c b/server/semaphore.c
index 6e2415fd79a..457cd6f4558 100644
index 6e2415fd79..457cd6f455 100644
--- a/server/semaphore.c
+++ b/server/semaphore.c
@@ -69,6 +69,7 @@ static const struct object_ops semaphore_ops =
@ -599,7 +597,7 @@ index 6e2415fd79a..457cd6f4558 100644
no_destroy /* destroy */
};
diff --git a/server/serial.c b/server/serial.c
index 4292472613a..ecb9a9350ad 100644
index 4292472613..ecb9a9350a 100644
--- a/server/serial.c
+++ b/server/serial.c
@@ -103,6 +103,7 @@ static const struct object_ops serial_ops =
@ -611,7 +609,7 @@ index 4292472613a..ecb9a9350ad 100644
serial_destroy /* destroy */
};
diff --git a/server/signal.c b/server/signal.c
index c81f6b8e989..b8dd87d86f1 100644
index c81f6b8e98..b8dd87d86f 100644
--- a/server/signal.c
+++ b/server/signal.c
@@ -78,6 +78,7 @@ static const struct object_ops handler_ops =
@ -623,7 +621,7 @@ index c81f6b8e989..b8dd87d86f1 100644
handler_destroy /* destroy */
};
diff --git a/server/sock.c b/server/sock.c
index 5095a6ef9f0..7b10b74cc4e 100644
index 5095a6ef9f..7b10b74cc4 100644
--- a/server/sock.c
+++ b/server/sock.c
@@ -155,6 +155,7 @@ static const struct object_ops sock_ops =
@ -643,7 +641,7 @@ index 5095a6ef9f0..7b10b74cc4e 100644
ifchange_destroy /* destroy */
};
diff --git a/server/symlink.c b/server/symlink.c
index 7a2f8642d5f..7bb28c8d7ce 100644
index 7a2f8642d5..7bb28c8d7c 100644
--- a/server/symlink.c
+++ b/server/symlink.c
@@ -71,6 +71,7 @@ static const struct object_ops symlink_ops =
@ -655,7 +653,7 @@ index 7a2f8642d5f..7bb28c8d7ce 100644
symlink_destroy /* destroy */
};
diff --git a/server/thread.c b/server/thread.c
index 9b14174578e..e3783351eb1 100644
index 9b14174578..e3783351eb 100644
--- a/server/thread.c
+++ b/server/thread.c
@@ -121,6 +121,7 @@ static const struct object_ops thread_apc_ops =
@ -683,7 +681,7 @@ index 9b14174578e..e3783351eb1 100644
destroy_thread /* destroy */
};
diff --git a/server/timer.c b/server/timer.c
index 6460acbf519..2b5ae29a45a 100644
index 6460acbf51..2b5ae29a45 100644
--- a/server/timer.c
+++ b/server/timer.c
@@ -76,6 +76,7 @@ static const struct object_ops timer_ops =
@ -695,7 +693,7 @@ index 6460acbf519..2b5ae29a45a 100644
timer_destroy /* destroy */
};
diff --git a/server/token.c b/server/token.c
index 2fa95e17aaf..8464eaf83eb 100644
index 2fa95e17aa..8464eaf83e 100644
--- a/server/token.c
+++ b/server/token.c
@@ -157,6 +157,7 @@ static const struct object_ops token_ops =
@ -707,7 +705,7 @@ index 2fa95e17aaf..8464eaf83eb 100644
token_destroy /* destroy */
};
diff --git a/server/winstation.c b/server/winstation.c
index 2962ea0df4a..79a38d4069e 100644
index 2962ea0df4..79a38d4069 100644
--- a/server/winstation.c
+++ b/server/winstation.c
@@ -75,6 +75,7 @@ static const struct object_ops winstation_ops =