server: Add link_name and unlink_name object operations.
authorAlexandre Julliard <julliard@winehq.org>
Thu, 4 Feb 2016 12:07:19 +0000 (21:07 +0900)
committerAlexandre Julliard <julliard@winehq.org>
Thu, 4 Feb 2016 12:07:19 +0000 (21:07 +0900)
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
34 files changed:
server/async.c
server/atom.c
server/change.c
server/clipboard.c
server/completion.c
server/console.c
server/debugger.c
server/device.c
server/directory.c
server/event.c
server/fd.c
server/file.c
server/handle.c
server/hook.c
server/mailslot.c
server/mapping.c
server/mutex.c
server/named_pipe.c
server/object.c
server/object.h
server/process.c
server/queue.c
server/registry.c
server/request.c
server/semaphore.c
server/serial.c
server/signal.c
server/snapshot.c
server/sock.c
server/symlink.c
server/thread.c
server/timer.c
server/token.c
server/winstation.c

index d2da976969d221fbf6fc1c120d2690a8d9cad593..64aa27a2e27eeb5483e791cdf939d0770583424d 100644 (file)
@@ -65,6 +65,8 @@ static const struct object_ops async_ops =
     default_get_sd,            /* get_sd */
     default_set_sd,            /* set_sd */
     no_lookup_name,            /* lookup_name */
+    no_link_name,              /* link_name */
+    NULL,                      /* unlink_name */
     no_open_file,              /* open_file */
     no_close_handle,           /* close_handle */
     async_destroy              /* destroy */
@@ -98,6 +100,8 @@ static const struct object_ops async_queue_ops =
     default_get_sd,                  /* get_sd */
     default_set_sd,                  /* set_sd */
     no_lookup_name,                  /* lookup_name */
+    no_link_name,                    /* link_name */
+    NULL,                            /* unlink_name */
     no_open_file,                    /* open_file */
     no_close_handle,                 /* close_handle */
     async_queue_destroy              /* destroy */
index 18608d8950201172c284a85e1075689bcc287c29..3ff75407d9fb8994ccbed52ce3ab3bf97d2da0b5 100644 (file)
@@ -87,6 +87,8 @@ static const struct object_ops atom_table_ops =
     default_get_sd,               /* get_sd */
     default_set_sd,               /* set_sd */
     no_lookup_name,               /* lookup_name */
+    no_link_name,                 /* link_name */
+    NULL,                         /* unlink_name */
     no_open_file,                 /* open_file */
     no_close_handle,              /* close_handle */
     atom_table_destroy            /* destroy */
index 59d181968dbcb6e44eeb5284d86c07ca2265d011..36a1997673f2eef8ba7c81683ef8bdf791fe06a1 100644 (file)
@@ -166,6 +166,8 @@ static const struct object_ops dir_ops =
     dir_get_sd,               /* get_sd */
     dir_set_sd,               /* set_sd */
     no_lookup_name,           /* lookup_name */
+    no_link_name,             /* link_name */
+    NULL,                     /* unlink_name */
     no_open_file,             /* open_file */
     fd_close_handle,          /* close_handle */
     dir_destroy               /* destroy */
index 2f56c72f676f538958e86647d3100be75cc9a99b..7b92706eaea4e7271dec3f7f4a1de92eb56cdf34 100644 (file)
@@ -65,6 +65,8 @@ static const struct object_ops clipboard_ops =
     default_get_sd,               /* get_sd */
     default_set_sd,               /* set_sd */
     no_lookup_name,               /* lookup_name */
+    no_link_name,                 /* link_name */
+    NULL,                         /* unlink_name */
     no_open_file,                 /* open_file */
     no_close_handle,              /* close_handle */
     no_destroy                    /* destroy */
index 9cf196fdcdd259348ee4788d03e4961b11fbbe7a..072bc0a16a63f0ac81b0847e025d7ae70e838ffa 100644 (file)
@@ -72,6 +72,8 @@ static const struct object_ops completion_ops =
     default_get_sd,            /* get_sd */
     default_set_sd,            /* set_sd */
     no_lookup_name,            /* lookup_name */
+    no_link_name,              /* link_name */
+    NULL,                      /* unlink_name */
     no_open_file,              /* open_file */
     no_close_handle,           /* close_handle */
     completion_destroy         /* destroy */
index 9b016144efecb1c7fec1d959d518b1e4311d2831..0d98b78868b781f28b4374192b9fce7b5f5adc2f 100644 (file)
@@ -84,6 +84,8 @@ static const struct object_ops console_input_ops =
     default_get_sd,                   /* get_sd */
     default_set_sd,                   /* set_sd */
     no_lookup_name,                   /* lookup_name */
+    no_link_name,                     /* link_name */
+    NULL,                             /* unlink_name */
     no_open_file,                     /* open_file */
     no_close_handle,                  /* close_handle */
     console_input_destroy             /* destroy */
@@ -116,6 +118,8 @@ static const struct object_ops console_input_events_ops =
     default_get_sd,                   /* get_sd */
     default_set_sd,                   /* set_sd */
     no_lookup_name,                   /* lookup_name */
+    no_link_name,                     /* link_name */
+    NULL,                             /* unlink_name */
     no_open_file,                     /* open_file */
     no_close_handle,                  /* close_handle */
     console_input_events_destroy      /* destroy */
@@ -168,6 +172,8 @@ static const struct object_ops screen_buffer_ops =
     default_get_sd,                   /* get_sd */
     default_set_sd,                   /* set_sd */
     no_lookup_name,                   /* lookup_name */
+    no_link_name,                     /* link_name */
+    NULL,                             /* unlink_name */
     no_open_file,                     /* open_file */
     no_close_handle,                  /* close_handle */
     screen_buffer_destroy             /* destroy */
index 810e8d32427855792c79b60b4949b855f6280d77..2eb794aaf258ed8aaf4ba4cab51eab4642026c00 100644 (file)
@@ -81,6 +81,8 @@ static const struct object_ops debug_event_ops =
     default_get_sd,                /* get_sd */
     default_set_sd,                /* set_sd */
     no_lookup_name,                /* lookup_name */
+    no_link_name,                  /* link_name */
+    NULL,                          /* unlink_name */
     no_open_file,                  /* open_file */
     no_close_handle,               /* close_handle */
     debug_event_destroy            /* destroy */
@@ -105,6 +107,8 @@ static const struct object_ops debug_ctx_ops =
     default_get_sd,                /* get_sd */
     default_set_sd,                /* set_sd */
     no_lookup_name,                /* lookup_name */
+    no_link_name,                  /* link_name */
+    NULL,                          /* unlink_name */
     no_open_file,                  /* open_file */
     no_close_handle,               /* close_handle */
     debug_ctx_destroy              /* destroy */
index 2c640ec79bf19f7c280ffd77773e489b5301e534..c6e95b1a10c72687f1d8147df0a26283e7de1463 100644 (file)
@@ -78,6 +78,8 @@ static const struct object_ops irp_call_ops =
     default_get_sd,                   /* get_sd */
     default_set_sd,                   /* set_sd */
     no_lookup_name,                   /* lookup_name */
+    no_link_name,                     /* link_name */
+    NULL,                             /* unlink_name */
     no_open_file,                     /* open_file */
     no_close_handle,                  /* close_handle */
     irp_call_destroy                  /* destroy */
@@ -112,6 +114,8 @@ static const struct object_ops device_manager_ops =
     default_get_sd,                   /* get_sd */
     default_set_sd,                   /* set_sd */
     no_lookup_name,                   /* lookup_name */
+    no_link_name,                     /* link_name */
+    NULL,                             /* unlink_name */
     no_open_file,                     /* open_file */
     no_close_handle,                  /* close_handle */
     device_manager_destroy            /* destroy */
@@ -151,6 +155,8 @@ static const struct object_ops device_ops =
     default_get_sd,                   /* get_sd */
     default_set_sd,                   /* set_sd */
     no_lookup_name,                   /* lookup_name */
+    no_link_name,                     /* link_name */
+    NULL,                             /* unlink_name */
     device_open_file,                 /* open_file */
     no_close_handle,                  /* close_handle */
     device_destroy                    /* destroy */
@@ -197,6 +203,8 @@ static const struct object_ops device_file_ops =
     default_get_sd,                   /* get_sd */
     default_set_sd,                   /* set_sd */
     no_lookup_name,                   /* lookup_name */
+    no_link_name,                     /* link_name */
+    NULL,                             /* unlink_name */
     no_open_file,                     /* open_file */
     device_file_close_handle,         /* close_handle */
     device_file_destroy               /* destroy */
index 6af489e247eb6ff1ec3fd06a3644ce7b6dab3d17..56c5bf102a7367ac2d96392a693f3cb130d0ba3f 100644 (file)
@@ -64,6 +64,8 @@ static const struct object_ops object_type_ops =
     default_get_sd,               /* get_sd */
     default_set_sd,               /* set_sd */
     no_lookup_name,               /* lookup_name */
+    no_link_name,                 /* link_name */
+    NULL,                         /* unlink_name */
     no_open_file,                 /* open_file */
     no_close_handle,              /* close_handle */
     no_destroy                    /* destroy */
@@ -97,6 +99,8 @@ static const struct object_ops directory_ops =
     default_get_sd,               /* get_sd */
     default_set_sd,               /* set_sd */
     directory_lookup_name,        /* lookup_name */
+    no_link_name,                 /* link_name */
+    NULL,                         /* unlink_name */
     no_open_file,                 /* open_file */
     no_close_handle,              /* close_handle */
     directory_destroy             /* destroy */
index 782abee9292a0342382c25c60b5201eac03397f2..cc4ef4fb343d6d49ab9d81ca32929251a2a34794 100644 (file)
@@ -65,6 +65,8 @@ static const struct object_ops event_ops =
     default_get_sd,            /* get_sd */
     default_set_sd,            /* set_sd */
     no_lookup_name,            /* lookup_name */
+    no_link_name,              /* link_name */
+    NULL,                      /* unlink_name */
     no_open_file,              /* open_file */
     no_close_handle,           /* close_handle */
     no_destroy                 /* destroy */
@@ -96,6 +98,8 @@ static const struct object_ops keyed_event_ops =
     default_get_sd,              /* get_sd */
     default_set_sd,              /* set_sd */
     no_lookup_name,              /* lookup_name */
+    no_link_name,                /* link_name */
+    NULL,                        /* unlink_name */
     no_open_file,                /* open_file */
     no_close_handle,             /* close_handle */
     no_destroy                   /* destroy */
index 12c00a28e60ef1627e10a391f6792c7027f3dad5..28f5346eedc9b7c22b232c89b809f8108b261fce 100644 (file)
@@ -209,6 +209,8 @@ static const struct object_ops fd_ops =
     default_get_sd,           /* get_sd */
     default_set_sd,           /* set_sd */
     no_lookup_name,           /* lookup_name */
+    no_link_name,             /* link_name */
+    NULL,                     /* unlink_name */
     no_open_file,             /* open_file */
     no_close_handle,          /* close_handle */
     fd_destroy                /* destroy */
@@ -246,6 +248,8 @@ static const struct object_ops device_ops =
     default_get_sd,           /* get_sd */
     default_set_sd,           /* set_sd */
     no_lookup_name,           /* lookup_name */
+    no_link_name,             /* link_name */
+    NULL,                     /* unlink_name */
     no_open_file,             /* open_file */
     no_close_handle,          /* close_handle */
     device_destroy            /* destroy */
@@ -282,6 +286,8 @@ static const struct object_ops inode_ops =
     default_get_sd,           /* get_sd */
     default_set_sd,           /* set_sd */
     no_lookup_name,           /* lookup_name */
+    no_link_name,             /* link_name */
+    NULL,                     /* unlink_name */
     no_open_file,             /* open_file */
     no_close_handle,          /* close_handle */
     inode_destroy             /* destroy */
@@ -320,6 +326,8 @@ static const struct object_ops file_lock_ops =
     default_get_sd,             /* get_sd */
     default_set_sd,             /* set_sd */
     no_lookup_name,             /* lookup_name */
+    no_link_name,               /* link_name */
+    NULL,                       /* unlink_name */
     no_open_file,               /* open_file */
     no_close_handle,            /* close_handle */
     no_destroy                  /* destroy */
index bf883f3cf76db2020d2347cb2f0f03d9fca05242..15fd411e0df115b15b02a161612743e3791db58d 100644 (file)
@@ -91,6 +91,8 @@ static const struct object_ops file_ops =
     file_get_sd,                  /* get_sd */
     file_set_sd,                  /* set_sd */
     no_lookup_name,               /* lookup_name */
+    no_link_name,                 /* link_name */
+    NULL,                         /* unlink_name */
     file_open_file,               /* open_file */
     fd_close_handle,              /* close_handle */
     file_destroy                  /* destroy */
index 8d6637ea3a09366dc9595842af5ca6031f287973..f440f9fb7392059f42035f2b209cc98bf4c09467 100644 (file)
@@ -130,6 +130,8 @@ static const struct object_ops handle_table_ops =
     default_get_sd,                  /* get_sd */
     default_set_sd,                  /* set_sd */
     no_lookup_name,                  /* lookup_name */
+    no_link_name,                    /* link_name */
+    NULL,                            /* unlink_name */
     no_open_file,                    /* open_file */
     no_close_handle,                 /* close_handle */
     handle_table_destroy             /* destroy */
index a8e6ab97fddf0394f1dfd4badfc391b574bb783e..3a0e4b4d1d3982ffcf7485bfd0b95be6300fce68 100644 (file)
@@ -88,6 +88,8 @@ static const struct object_ops hook_table_ops =
     default_get_sd,               /* get_sd */
     default_set_sd,               /* set_sd */
     no_lookup_name,               /* lookup_name */
+    no_link_name,                 /* link_name */
+    NULL,                         /* unlink_name */
     no_open_file,                 /* open_file */
     no_close_handle,              /* close_handle */
     hook_table_destroy            /* destroy */
index e388f8e51533ff57e52e0800a0527baa8947273d..9f18083370556d1d9706ad6b81d8ee5d59c22eaf 100644 (file)
@@ -85,6 +85,8 @@ static const struct object_ops mailslot_ops =
     default_get_sd,            /* get_sd */
     default_set_sd,            /* set_sd */
     no_lookup_name,            /* lookup_name */
+    no_link_name,              /* link_name */
+    NULL,                      /* unlink_name */
     mailslot_open_file,        /* open_file */
     fd_close_handle,           /* close_handle */
     mailslot_destroy           /* destroy */
@@ -138,6 +140,8 @@ static const struct object_ops mail_writer_ops =
     default_get_sd,             /* get_sd */
     default_set_sd,             /* set_sd */
     no_lookup_name,             /* lookup_name */
+    no_link_name,               /* link_name */
+    NULL,                       /* unlink_name */
     no_open_file,               /* open_file */
     fd_close_handle,            /* close_handle */
     mail_writer_destroy         /* destroy */
@@ -192,6 +196,8 @@ static const struct object_ops mailslot_device_ops =
     default_get_sd,                 /* get_sd */
     default_set_sd,                 /* set_sd */
     mailslot_device_lookup_name,    /* lookup_name */
+    no_link_name,                   /* link_name */
+    NULL,                           /* unlink_name */
     mailslot_device_open_file,      /* open_file */
     fd_close_handle,                /* close_handle */
     mailslot_device_destroy         /* destroy */
index aef174c935fe2ea5eacf3b8a4319f02981c7794f..9504996ed9aa1355d9c44be2440020a58f33845d 100644 (file)
@@ -91,6 +91,8 @@ static const struct object_ops mapping_ops =
     default_get_sd,              /* get_sd */
     default_set_sd,              /* set_sd */
     no_lookup_name,              /* lookup_name */
+    no_link_name,                /* link_name */
+    NULL,                        /* unlink_name */
     no_open_file,                /* open_file */
     fd_close_handle,             /* close_handle */
     mapping_destroy              /* destroy */
index 0482fe0b691afadcc16fd0fd27142883acff55f1..08a2477418414e329e359a97b354f2b9db3092bc 100644 (file)
@@ -68,6 +68,8 @@ static const struct object_ops mutex_ops =
     default_get_sd,            /* get_sd */
     default_set_sd,            /* set_sd */
     no_lookup_name,            /* lookup_name */
+    no_link_name,              /* link_name */
+    NULL,                      /* unlink_name */
     no_open_file,              /* open_file */
     no_close_handle,           /* close_handle */
     mutex_destroy              /* destroy */
index cbacb9363d1669468d8de6f480fa87986af37349..0bd6064ed8f83a3c94f6bd9a25576b33a5fc39ee 100644 (file)
@@ -131,6 +131,8 @@ static const struct object_ops named_pipe_ops =
     default_get_sd,               /* get_sd */
     default_set_sd,               /* set_sd */
     no_lookup_name,               /* lookup_name */
+    no_link_name,                 /* link_name */
+    NULL,                         /* unlink_name */
     named_pipe_open_file,         /* open_file */
     no_close_handle,              /* close_handle */
     named_pipe_destroy            /* destroy */
@@ -160,6 +162,8 @@ static const struct object_ops pipe_server_ops =
     default_get_sd,               /* get_sd */
     default_set_sd,               /* set_sd */
     no_lookup_name,               /* lookup_name */
+    no_link_name,                 /* link_name */
+    NULL,                         /* unlink_name */
     no_open_file,                 /* open_file */
     fd_close_handle,              /* close_handle */
     pipe_server_destroy           /* destroy */
@@ -202,6 +206,8 @@ static const struct object_ops pipe_client_ops =
     default_get_sd,               /* get_sd */
     default_set_sd,               /* set_sd */
     no_lookup_name,               /* lookup_name */
+    no_link_name,                 /* link_name */
+    NULL,                         /* unlink_name */
     no_open_file,                 /* open_file */
     fd_close_handle,              /* close_handle */
     pipe_client_destroy           /* destroy */
@@ -248,6 +254,8 @@ static const struct object_ops named_pipe_device_ops =
     default_get_sd,                   /* get_sd */
     default_set_sd,                   /* set_sd */
     named_pipe_device_lookup_name,    /* lookup_name */
+    no_link_name,                     /* link_name */
+    NULL,                             /* unlink_name */
     named_pipe_device_open_file,      /* open_file */
     fd_close_handle,                  /* close_handle */
     named_pipe_device_destroy         /* destroy */
index 1ec547a58b3809b33d4c52c6fb9090c6bfba6541..4f23e0ce540191287bad6bf1e08ddace46f2ae35 100644 (file)
@@ -551,6 +551,12 @@ struct object *no_lookup_name( struct object *obj, struct unicode_str *name,
     return NULL;
 }
 
+int no_link_name( struct object *obj, struct object_name *name, struct object *parent )
+{
+    set_error( STATUS_OBJECT_TYPE_MISMATCH );
+    return 0;
+}
+
 struct object *no_open_file( struct object *obj, unsigned int access, unsigned int sharing,
                              unsigned int options )
 {
index 8e010a3fb18589a098c29940bb09e4549f23986c..3d6ba8ab33f817861c3723edd6080839d4cd2a4b 100644 (file)
@@ -83,6 +83,10 @@ struct object_ops
     int (*set_sd)( struct object *, const struct security_descriptor *, unsigned int );
     /* lookup a name if an object has a namespace */
     struct object *(*lookup_name)(struct object *, struct unicode_str *,unsigned int);
+    /* link an object's name into a parent object */
+    int (*link_name)(struct object *, struct object_name *, struct object *);
+    /* unlink an object's name from its parent */
+    void (*unlink_name)(struct object *, struct object_name *);
     /* open a file object to access this object */
     struct object *(*open_file)(struct object *, unsigned int access, unsigned int sharing,
                                 unsigned int options);
@@ -143,6 +147,7 @@ extern int default_set_sd( struct object *obj, const struct security_descriptor
 extern int set_sd_defaults_from_token( struct object *obj, const struct security_descriptor *sd,
                                        unsigned int set_info, struct token *token );
 extern struct object *no_lookup_name( struct object *obj, struct unicode_str *name, unsigned int attributes );
+extern int no_link_name( struct object *obj, struct object_name *name, struct object *parent );
 extern struct object *no_open_file( struct object *obj, unsigned int access, unsigned int sharing,
                                     unsigned int options );
 extern int no_close_handle( struct object *obj, struct process *process, obj_handle_t handle );
index 6611de1cec1e95e3f74e9a322a6d909ed874f6ae..d51c8847b943c2884c524dd0a7a9a2c709073bfa 100644 (file)
@@ -81,6 +81,8 @@ static const struct object_ops process_ops =
     default_get_sd,              /* get_sd */
     default_set_sd,              /* set_sd */
     no_lookup_name,              /* lookup_name */
+    no_link_name,                /* link_name */
+    NULL,                        /* unlink_name */
     no_open_file,                /* open_file */
     no_close_handle,             /* close_handle */
     process_destroy              /* destroy */
@@ -129,6 +131,8 @@ static const struct object_ops startup_info_ops =
     default_get_sd,                /* get_sd */
     default_set_sd,                /* set_sd */
     no_lookup_name,                /* lookup_name */
+    no_link_name,                  /* link_name */
+    NULL,                          /* unlink_name */
     no_open_file,                  /* open_file */
     no_close_handle,               /* close_handle */
     startup_info_destroy           /* destroy */
@@ -170,6 +174,8 @@ static const struct object_ops job_ops =
     default_get_sd,                /* get_sd */
     default_set_sd,                /* set_sd */
     no_lookup_name,                /* lookup_name */
+    no_link_name,                  /* link_name */
+    NULL,                          /* unlink_name */
     no_open_file,                  /* open_file */
     job_close_handle,              /* close_handle */
     job_destroy                    /* destroy */
index 771a2e393d842afe9b56455ebd6b0f0f80670d73..f82060fe9d64e42fac2fd9be160bf257b63a8cd8 100644 (file)
@@ -178,6 +178,8 @@ static const struct object_ops msg_queue_ops =
     default_get_sd,            /* get_sd */
     default_set_sd,            /* set_sd */
     no_lookup_name,            /* lookup_name */
+    no_link_name,              /* link_name */
+    NULL,                      /* unlink_name */
     no_open_file,              /* open_file */
     no_close_handle,           /* close_handle */
     msg_queue_destroy          /* destroy */
@@ -211,6 +213,8 @@ static const struct object_ops thread_input_ops =
     default_get_sd,               /* get_sd */
     default_set_sd,               /* set_sd */
     no_lookup_name,               /* lookup_name */
+    no_link_name,                 /* link_name */
+    NULL,                         /* unlink_name */
     no_open_file,                 /* open_file */
     no_close_handle,              /* close_handle */
     thread_input_destroy          /* destroy */
index bdfdb2b621c837490189f8ac3fd9d84d4b423873..5ca2a522b5a85b4f99cc52df1c7a244a2f058249 100644 (file)
@@ -166,6 +166,8 @@ static const struct object_ops key_ops =
     key_get_sd,              /* get_sd */
     default_set_sd,          /* set_sd */
     no_lookup_name,          /* lookup_name */
+    no_link_name,            /* link_name */
+    NULL,                    /* unlink_name */
     no_open_file,            /* open_file */
     key_close_handle,        /* close_handle */
     key_destroy              /* destroy */
index 021878a92315d480e539e0a44e5c47a412c4319b..dfa44858a5fc1a51a9b37e6064017aaa765dadcb 100644 (file)
@@ -104,6 +104,8 @@ static const struct object_ops master_socket_ops =
     default_get_sd,                /* get_sd */
     default_set_sd,                /* set_sd */
     no_lookup_name,                /* lookup_name */
+    no_link_name,                  /* link_name */
+    NULL,                          /* unlink_name */
     no_open_file,                  /* open_file */
     no_close_handle,               /* close_handle */
     master_socket_destroy          /* destroy */
index 73d4fe239c3212896f74c3cf9b9f43cec0b1555b..515f49e4c06c5f8d66442c56b0c83ab3094dcfee 100644 (file)
@@ -65,6 +65,8 @@ static const struct object_ops semaphore_ops =
     default_get_sd,                /* get_sd */
     default_set_sd,                /* set_sd */
     no_lookup_name,                /* lookup_name */
+    no_link_name,                  /* link_name */
+    NULL,                          /* unlink_name */
     no_open_file,                  /* open_file */
     no_close_handle,               /* close_handle */
     no_destroy                     /* destroy */
index 7beb8ff4e9035d6875c284010bd5488ceba44945..03d726a98ea589182a87eb6562c01c2367ee2c27 100644 (file)
@@ -103,6 +103,8 @@ static const struct object_ops serial_ops =
     default_get_sd,               /* get_sd */
     default_set_sd,               /* set_sd */
     no_lookup_name,               /* lookup_name */
+    no_link_name,                 /* link_name */
+    NULL,                         /* unlink_name */
     no_open_file,                 /* open_file */
     fd_close_handle,              /* close_handle */
     serial_destroy                /* destroy */
index 5e4fe33c6a3126bcd79d3fa16693560cc2c43290..c20e1544b4466348928437c66b78ba067fba3037 100644 (file)
@@ -74,6 +74,8 @@ static const struct object_ops handler_ops =
     default_get_sd,           /* get_sd */
     default_set_sd,           /* set_sd */
     no_lookup_name,           /* lookup_name */
+    no_link_name,             /* link_name */
+    NULL,                     /* unlink_name */
     no_open_file,             /* open_file */
     no_close_handle,          /* close_handle */
     handler_destroy           /* destroy */
index dd00bd1418dee618c433a0e330216ee42d81cf31..3566b89f9373f42abda0439149338cfa87a5fc29 100644 (file)
@@ -68,6 +68,8 @@ static const struct object_ops snapshot_ops =
     default_get_sd,               /* get_sd */
     default_set_sd,               /* set_sd */
     no_lookup_name,               /* lookup_name */
+    no_link_name,                 /* link_name */
+    NULL,                         /* unlink_name */
     no_open_file,                 /* open_file */
     no_close_handle,              /* close_handle */
     snapshot_destroy              /* destroy */
index 1767dea75ff913e133ab0277b8a882ec6b2f0227..dc10d2a415ffab1bc4805104df299596e1ff8933 100644 (file)
@@ -153,6 +153,8 @@ static const struct object_ops sock_ops =
     default_get_sd,               /* get_sd */
     default_set_sd,               /* set_sd */
     no_lookup_name,               /* lookup_name */
+    no_link_name,                 /* link_name */
+    NULL,                         /* unlink_name */
     no_open_file,                 /* open_file */
     fd_close_handle,              /* close_handle */
     sock_destroy                  /* destroy */
@@ -995,6 +997,8 @@ static const struct object_ops ifchange_ops =
     default_get_sd,          /* get_sd */
     default_set_sd,          /* set_sd */
     no_lookup_name,          /* lookup_name */
+    no_link_name,            /* link_name */
+    NULL,                    /* unlink_name */
     no_open_file,            /* open_file */
     no_close_handle,         /* close_handle */
     ifchange_destroy         /* destroy */
index 4254c71ddae75465cd4322b97ceb822e9844597a..09443b8260701fe261a1485f594c30ea4cad6322 100644 (file)
@@ -67,6 +67,8 @@ static const struct object_ops symlink_ops =
     default_get_sd,               /* get_sd */
     default_set_sd,               /* set_sd */
     symlink_lookup_name,          /* lookup_name */
+    no_link_name,                 /* link_name */
+    NULL,                         /* unlink_name */
     no_open_file,                 /* open_file */
     no_close_handle,              /* close_handle */
     symlink_destroy               /* destroy */
index bad22311b56ca70bcc8f53bf6ea7a40ab6011504..ca02a8ad34f8fa7b3185138d769c8d49eb16df63 100644 (file)
@@ -117,6 +117,8 @@ static const struct object_ops thread_apc_ops =
     default_get_sd,             /* get_sd */
     default_set_sd,             /* set_sd */
     no_lookup_name,             /* lookup_name */
+    no_link_name,               /* link_name */
+    NULL,                       /* unlink_name */
     no_open_file,               /* open_file */
     no_close_handle,            /* close_handle */
     thread_apc_destroy          /* destroy */
@@ -146,6 +148,8 @@ static const struct object_ops thread_ops =
     default_get_sd,             /* get_sd */
     default_set_sd,             /* set_sd */
     no_lookup_name,             /* lookup_name */
+    no_link_name,               /* link_name */
+    NULL,                       /* unlink_name */
     no_open_file,               /* open_file */
     no_close_handle,            /* close_handle */
     destroy_thread              /* destroy */
index 69d0bef8bc64490d71920007774b89c76a7682f7..ef9aa08760d70d70a9ae46c69e96ad142ea89b5b 100644 (file)
@@ -72,6 +72,8 @@ static const struct object_ops timer_ops =
     default_get_sd,            /* get_sd */
     default_set_sd,            /* set_sd */
     no_lookup_name,            /* lookup_name */
+    no_link_name,              /* link_name */
+    NULL,                      /* unlink_name */
     no_open_file,              /* open_file */
     no_close_handle,           /* close_handle */
     timer_destroy              /* destroy */
index da1f25575885732552c88eaa299a41a7c49511d8..ca12813ca9e97f51660553104a2fee150eb8125c 100644 (file)
@@ -158,6 +158,8 @@ static const struct object_ops token_ops =
     default_get_sd,            /* get_sd */
     default_set_sd,            /* set_sd */
     no_lookup_name,            /* lookup_name */
+    no_link_name,              /* link_name */
+    NULL,                      /* unlink_name */
     no_open_file,              /* open_file */
     no_close_handle,           /* close_handle */
     token_destroy              /* destroy */
index 9384b32ca138601157a461e9aaba2c22191bfcfd..6e1c7547521502b88d7b26a8d632b8ac6cb109f1 100644 (file)
@@ -69,6 +69,8 @@ static const struct object_ops winstation_ops =
     default_get_sd,               /* get_sd */
     default_set_sd,               /* set_sd */
     no_lookup_name,               /* lookup_name */
+    no_link_name,                 /* link_name */
+    NULL,                         /* unlink_name */
     no_open_file,                 /* open_file */
     winstation_close_handle,      /* close_handle */
     winstation_destroy            /* destroy */
@@ -90,6 +92,8 @@ static const struct object_ops desktop_ops =
     default_get_sd,               /* get_sd */
     default_set_sd,               /* set_sd */
     no_lookup_name,               /* lookup_name */
+    no_link_name,                 /* link_name */
+    NULL,                         /* unlink_name */
     no_open_file,                 /* open_file */
     desktop_close_handle,         /* close_handle */
     desktop_destroy               /* destroy */