Blame view

drivers/xen/xen-stub.c 2.31 KB
4359375c3   Thomas Gleixner   treewide: Replace...
1
  // SPDX-License-Identifier: GPL-2.0-or-later
dcb93b96c   Liu Jinsong   xen/stub: driver ...
2
3
4
5
6
7
8
9
10
  /*
   * xen-stub.c - stub drivers to reserve space for Xen
   *
   * Copyright (C) 2012 Intel Corporation
   *    Author: Liu Jinsong <jinsong.liu@intel.com>
   *    Author: Jiang Yunhong <yunhong.jiang@intel.com>
   *
   * Copyright (C) 2012 Oracle Inc
   *    Author: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
dcb93b96c   Liu Jinsong   xen/stub: driver ...
11
12
13
14
15
16
17
   */
  
  #include <linux/kernel.h>
  #include <linux/init.h>
  #include <linux/export.h>
  #include <linux/types.h>
  #include <linux/acpi.h>
dcb93b96c   Liu Jinsong   xen/stub: driver ...
18
  #include <xen/acpi.h>
b22ff77b8   Liu Jinsong   xen/stub: driver ...
19
  #ifdef CONFIG_ACPI
dcb93b96c   Liu Jinsong   xen/stub: driver ...
20
21
22
  /*--------------------------------------------
  	stub driver for Xen memory hotplug
  --------------------------------------------*/
dcb93b96c   Liu Jinsong   xen/stub: driver ...
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
  static const struct acpi_device_id memory_device_ids[] = {
  	{ACPI_MEMORY_DEVICE_HID, 0},
  	{"", 0},
  };
  
  static struct acpi_driver xen_stub_memory_device_driver = {
  	/* same name as native memory driver to block native loaded */
  	.name = "acpi_memhotplug",
  	.class = ACPI_MEMORY_DEVICE_CLASS,
  	.ids = memory_device_ids,
  };
  
  int xen_stub_memory_device_init(void)
  {
  	if (!xen_initial_domain())
  		return -ENODEV;
  
  	/* just reserve space for Xen, block native driver loaded */
  	return acpi_bus_register_driver(&xen_stub_memory_device_driver);
  }
  EXPORT_SYMBOL_GPL(xen_stub_memory_device_init);
  subsys_initcall(xen_stub_memory_device_init);
  
  void xen_stub_memory_device_exit(void)
  {
  	acpi_bus_unregister_driver(&xen_stub_memory_device_driver);
  }
  EXPORT_SYMBOL_GPL(xen_stub_memory_device_exit);
b22ff77b8   Liu Jinsong   xen/stub: driver ...
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
  
  /*--------------------------------------------
  	stub driver for Xen cpu hotplug
  --------------------------------------------*/
  
  static const struct acpi_device_id processor_device_ids[] = {
  	{ACPI_PROCESSOR_OBJECT_HID, 0},
  	{ACPI_PROCESSOR_DEVICE_HID, 0},
  	{"", 0},
  };
  
  static struct acpi_driver xen_stub_processor_driver = {
  	/* same name as native processor driver to block native loaded */
  	.name = "processor",
  	.class = ACPI_PROCESSOR_CLASS,
  	.ids = processor_device_ids,
  };
  
  int xen_stub_processor_init(void)
  {
  	if (!xen_initial_domain())
  		return -ENODEV;
  
  	/* just reserve space for Xen, block native driver loaded */
  	return acpi_bus_register_driver(&xen_stub_processor_driver);
  }
  EXPORT_SYMBOL_GPL(xen_stub_processor_init);
  subsys_initcall(xen_stub_processor_init);
  
  void xen_stub_processor_exit(void)
  {
  	acpi_bus_unregister_driver(&xen_stub_processor_driver);
  }
  EXPORT_SYMBOL_GPL(xen_stub_processor_exit);
dcb93b96c   Liu Jinsong   xen/stub: driver ...
85
  #endif