Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
9c6466ac
Commit
9c6466ac
authored
Mar 12, 2012
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
server: Create some kernel notification events.
parent
5f43cd26
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
3 deletions
+32
-3
directory.c
server/directory.c
+32
-3
No files found.
server/directory.c
View file @
9c6466ac
...
@@ -371,6 +371,7 @@ void init_directories(void)
...
@@ -371,6 +371,7 @@ void init_directories(void)
static
const
WCHAR
dir_mailslotW
[]
=
{
'\\'
,
'D'
,
'e'
,
'v'
,
'i'
,
'c'
,
'e'
,
'\\'
,
'M'
,
'a'
,
'i'
,
'l'
,
'S'
,
'l'
,
'o'
,
't'
};
static
const
WCHAR
dir_mailslotW
[]
=
{
'\\'
,
'D'
,
'e'
,
'v'
,
'i'
,
'c'
,
'e'
,
'\\'
,
'M'
,
'a'
,
'i'
,
'l'
,
'S'
,
'l'
,
'o'
,
't'
};
static
const
WCHAR
dir_objtypeW
[]
=
{
'O'
,
'b'
,
'j'
,
'e'
,
'c'
,
't'
,
'T'
,
'y'
,
'p'
,
'e'
,
's'
,};
static
const
WCHAR
dir_objtypeW
[]
=
{
'O'
,
'b'
,
'j'
,
'e'
,
'c'
,
't'
,
'T'
,
'y'
,
'p'
,
'e'
,
's'
,};
static
const
WCHAR
dir_sessionsW
[]
=
{
'S'
,
'e'
,
's'
,
's'
,
'i'
,
'o'
,
'n'
,
's'
};
static
const
WCHAR
dir_sessionsW
[]
=
{
'S'
,
'e'
,
's'
,
's'
,
'i'
,
'o'
,
'n'
,
's'
};
static
const
WCHAR
dir_kernelW
[]
=
{
'K'
,
'e'
,
'r'
,
'n'
,
'e'
,
'l'
,
'O'
,
'b'
,
'j'
,
'e'
,
'c'
,
't'
,
's'
};
static
const
struct
unicode_str
dir_global_str
=
{
dir_globalW
,
sizeof
(
dir_globalW
)};
static
const
struct
unicode_str
dir_global_str
=
{
dir_globalW
,
sizeof
(
dir_globalW
)};
static
const
struct
unicode_str
dir_driver_str
=
{
dir_driverW
,
sizeof
(
dir_driverW
)};
static
const
struct
unicode_str
dir_driver_str
=
{
dir_driverW
,
sizeof
(
dir_driverW
)};
static
const
struct
unicode_str
dir_device_str
=
{
dir_deviceW
,
sizeof
(
dir_deviceW
)};
static
const
struct
unicode_str
dir_device_str
=
{
dir_deviceW
,
sizeof
(
dir_deviceW
)};
...
@@ -379,6 +380,7 @@ void init_directories(void)
...
@@ -379,6 +380,7 @@ void init_directories(void)
static
const
struct
unicode_str
dir_mailslot_str
=
{
dir_mailslotW
,
sizeof
(
dir_mailslotW
)};
static
const
struct
unicode_str
dir_mailslot_str
=
{
dir_mailslotW
,
sizeof
(
dir_mailslotW
)};
static
const
struct
unicode_str
dir_objtype_str
=
{
dir_objtypeW
,
sizeof
(
dir_objtypeW
)};
static
const
struct
unicode_str
dir_objtype_str
=
{
dir_objtypeW
,
sizeof
(
dir_objtypeW
)};
static
const
struct
unicode_str
dir_sessions_str
=
{
dir_sessionsW
,
sizeof
(
dir_sessionsW
)};
static
const
struct
unicode_str
dir_sessions_str
=
{
dir_sessionsW
,
sizeof
(
dir_sessionsW
)};
static
const
struct
unicode_str
dir_kernel_str
=
{
dir_kernelW
,
sizeof
(
dir_kernelW
)};
/* symlinks */
/* symlinks */
static
const
WCHAR
link_dosdevW
[]
=
{
'D'
,
'o'
,
's'
,
'D'
,
'e'
,
'v'
,
'i'
,
'c'
,
'e'
,
's'
};
static
const
WCHAR
link_dosdevW
[]
=
{
'D'
,
'o'
,
's'
,
'D'
,
'e'
,
'v'
,
'i'
,
'c'
,
'e'
,
's'
};
...
@@ -404,18 +406,36 @@ void init_directories(void)
...
@@ -404,18 +406,36 @@ void init_directories(void)
static
const
struct
unicode_str
named_pipe_str
=
{
named_pipeW
,
sizeof
(
named_pipeW
)};
static
const
struct
unicode_str
named_pipe_str
=
{
named_pipeW
,
sizeof
(
named_pipeW
)};
static
const
struct
unicode_str
mailslot_str
=
{
mailslotW
,
sizeof
(
mailslotW
)};
static
const
struct
unicode_str
mailslot_str
=
{
mailslotW
,
sizeof
(
mailslotW
)};
struct
directory
*
dir_driver
,
*
dir_device
,
*
dir_global
,
*
dir_basenamed
,
*
dir_sessions
;
/* events */
static
const
WCHAR
event_low_memW
[]
=
{
'L'
,
'o'
,
'w'
,
'M'
,
'e'
,
'm'
,
'o'
,
'r'
,
'y'
,
'C'
,
'o'
,
'n'
,
'd'
,
'i'
,
't'
,
'i'
,
'o'
,
'n'
};
static
const
WCHAR
event_low_pagedW
[]
=
{
'L'
,
'o'
,
'w'
,
'P'
,
'a'
,
'g'
,
'e'
,
'd'
,
'P'
,
'o'
,
'o'
,
'l'
,
'C'
,
'o'
,
'n'
,
'd'
,
'i'
,
't'
,
'i'
,
'o'
,
'n'
};
static
const
WCHAR
event_low_nonpgW
[]
=
{
'L'
,
'o'
,
'w'
,
'N'
,
'o'
,
'n'
,
'P'
,
'a'
,
'g'
,
'e'
,
'd'
,
'P'
,
'o'
,
'o'
,
'l'
,
'C'
,
'o'
,
'n'
,
'd'
,
'i'
,
't'
,
'i'
,
'o'
,
'n'
};
static
const
WCHAR
event_high_memW
[]
=
{
'H'
,
'i'
,
'g'
,
'h'
,
'M'
,
'e'
,
'm'
,
'o'
,
'r'
,
'y'
,
'C'
,
'o'
,
'n'
,
'd'
,
'i'
,
't'
,
'i'
,
'o'
,
'n'
};
static
const
WCHAR
event_high_pagedW
[]
=
{
'H'
,
'i'
,
'g'
,
'h'
,
'P'
,
'a'
,
'g'
,
'e'
,
'd'
,
'P'
,
'o'
,
'o'
,
'l'
,
'C'
,
'o'
,
'n'
,
'd'
,
'i'
,
't'
,
'i'
,
'o'
,
'n'
};
static
const
WCHAR
event_high_nonpgW
[]
=
{
'H'
,
'i'
,
'g'
,
'h'
,
'N'
,
'o'
,
'n'
,
'P'
,
'a'
,
'g'
,
'e'
,
'd'
,
'P'
,
'o'
,
'o'
,
'l'
,
'C'
,
'o'
,
'n'
,
'd'
,
'i'
,
't'
,
'i'
,
'o'
,
'n'
};
static
const
struct
unicode_str
kernel_events
[]
=
{
{
event_low_memW
,
sizeof
(
event_low_memW
)
},
{
event_low_pagedW
,
sizeof
(
event_low_pagedW
)
},
{
event_low_nonpgW
,
sizeof
(
event_low_nonpgW
)
},
{
event_high_memW
,
sizeof
(
event_high_memW
)
},
{
event_high_pagedW
,
sizeof
(
event_high_pagedW
)
},
{
event_high_nonpgW
,
sizeof
(
event_high_nonpgW
)
}
};
struct
directory
*
dir_driver
,
*
dir_device
,
*
dir_global
,
*
dir_basenamed
,
*
dir_sessions
,
*
dir_kernel
;
struct
symlink
*
link_dosdev
,
*
link_global1
,
*
link_global2
,
*
link_local
,
*
link_pipe
,
*
link_mailslot
,
*
link_0
,
*
link_session
;
struct
symlink
*
link_dosdev
,
*
link_global1
,
*
link_global2
,
*
link_local
,
*
link_pipe
,
*
link_mailslot
,
*
link_0
,
*
link_session
;
unsigned
int
i
;
root_directory
=
create_directory
(
NULL
,
NULL
,
0
,
HASH_SIZE
);
root_directory
=
create_directory
(
NULL
,
NULL
,
0
,
HASH_SIZE
);
dir_driver
=
create_directory
(
root_directory
,
&
dir_driver_str
,
0
,
HASH_SIZE
);
dir_driver
=
create_directory
(
root_directory
,
&
dir_driver_str
,
0
,
HASH_SIZE
);
dir_device
=
create_directory
(
root_directory
,
&
dir_device_str
,
0
,
HASH_SIZE
);
dir_device
=
create_directory
(
root_directory
,
&
dir_device_str
,
0
,
HASH_SIZE
);
dir_objtype
=
create_directory
(
root_directory
,
&
dir_objtype_str
,
0
,
HASH_SIZE
);
dir_objtype
=
create_directory
(
root_directory
,
&
dir_objtype_str
,
0
,
HASH_SIZE
);
dir_sessions
=
create_directory
(
root_directory
,
&
dir_sessions_str
,
0
,
HASH_SIZE
);
dir_sessions
=
create_directory
(
root_directory
,
&
dir_sessions_str
,
0
,
HASH_SIZE
);
dir_kernel
=
create_directory
(
root_directory
,
&
dir_kernel_str
,
0
,
HASH_SIZE
);
make_object_static
(
&
root_directory
->
obj
);
make_object_static
(
&
root_directory
->
obj
);
make_object_static
(
&
dir_driver
->
obj
);
make_object_static
(
&
dir_driver
->
obj
);
make_object_static
(
&
dir_objtype
->
obj
);
make_object_static
(
&
dir_objtype
->
obj
);
make_object_static
(
&
dir_sessions
->
obj
);
dir_global
=
create_directory
(
NULL
,
&
dir_global_str
,
0
,
HASH_SIZE
);
dir_global
=
create_directory
(
NULL
,
&
dir_global_str
,
0
,
HASH_SIZE
);
/* use a larger hash table for this one since it can contain a lot of objects */
/* use a larger hash table for this one since it can contain a lot of objects */
...
@@ -443,10 +463,19 @@ void init_directories(void)
...
@@ -443,10 +463,19 @@ void init_directories(void)
make_object_static
(
(
struct
object
*
)
link_0
);
make_object_static
(
(
struct
object
*
)
link_0
);
make_object_static
(
(
struct
object
*
)
link_session
);
make_object_static
(
(
struct
object
*
)
link_session
);
/* the symlinks or devices hold references so we can release these */
/* events */
for
(
i
=
0
;
i
<
sizeof
(
kernel_events
)
/
sizeof
(
kernel_events
[
0
]);
i
++
)
{
struct
event
*
event
=
create_event
(
dir_kernel
,
&
kernel_events
[
i
],
0
,
1
,
0
,
NULL
);
make_object_static
(
(
struct
object
*
)
event
);
}
/* the objects hold references so we can release these directories */
release_object
(
dir_global
);
release_object
(
dir_global
);
release_object
(
dir_device
);
release_object
(
dir_device
);
release_object
(
dir_basenamed
);
release_object
(
dir_basenamed
);
release_object
(
dir_sessions
);
release_object
(
dir_kernel
);
}
}
/* create a directory object */
/* create a directory object */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment