/src/security/security_manager.h

https://github.com/soulxu/libvirt-xuhj · C Header · 100 lines · 67 code · 12 blank · 21 comment · 0 complexity · d66d1f460c7ea001c02f0d20c91c5bb7 MD5 · raw file

  1. /*
  2. * security_manager.h: Internal security manager API
  3. *
  4. * Copyright (C) 2010-2011 Red Hat, Inc.
  5. *
  6. * This library is free software; you can redistribute it and/or
  7. * modify it under the terms of the GNU Lesser General Public
  8. * License as published by the Free Software Foundation; either
  9. * version 2.1 of the License, or (at your option) any later version.
  10. *
  11. * This library is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * Lesser General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU Lesser General Public
  17. * License along with this library; if not, write to the Free Software
  18. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  19. *
  20. * Author: Daniel P. Berrange <berrange@redhat.com>
  21. */
  22. #ifndef VIR_SECURITY_MANAGER_H__
  23. # define VIR_SECURITY_MANAGER_H__
  24. # define virSecurityReportError(code, ...) \
  25. virReportErrorHelper(VIR_FROM_SECURITY, code, __FILE__, \
  26. __FUNCTION__, __LINE__, __VA_ARGS__)
  27. typedef struct _virSecurityManager virSecurityManager;
  28. typedef virSecurityManager *virSecurityManagerPtr;
  29. virSecurityManagerPtr virSecurityManagerNew(const char *name,
  30. bool allowDiskFormatProbing);
  31. virSecurityManagerPtr virSecurityManagerNewStack(virSecurityManagerPtr primary,
  32. virSecurityManagerPtr secondary);
  33. virSecurityManagerPtr virSecurityManagerNewDAC(uid_t user,
  34. gid_t group,
  35. bool allowDiskFormatProbing,
  36. bool dynamicOwnership);
  37. void *virSecurityManagerGetPrivateData(virSecurityManagerPtr mgr);
  38. void virSecurityManagerFree(virSecurityManagerPtr mgr);
  39. const char *virSecurityManagerGetDOI(virSecurityManagerPtr mgr);
  40. const char *virSecurityManagerGetModel(virSecurityManagerPtr mgr);
  41. bool virSecurityManagerGetAllowDiskFormatProbing(virSecurityManagerPtr mgr);
  42. int virSecurityManagerRestoreImageLabel(virSecurityManagerPtr mgr,
  43. virDomainObjPtr vm,
  44. virDomainDiskDefPtr disk);
  45. int virSecurityManagerSetDaemonSocketLabel(virSecurityManagerPtr mgr,
  46. virDomainObjPtr vm);
  47. int virSecurityManagerSetSocketLabel(virSecurityManagerPtr mgr,
  48. virDomainObjPtr vm);
  49. int virSecurityManagerClearSocketLabel(virSecurityManagerPtr mgr,
  50. virDomainObjPtr vm);
  51. int virSecurityManagerSetImageLabel(virSecurityManagerPtr mgr,
  52. virDomainObjPtr vm,
  53. virDomainDiskDefPtr disk);
  54. int virSecurityManagerRestoreHostdevLabel(virSecurityManagerPtr mgr,
  55. virDomainObjPtr vm,
  56. virDomainHostdevDefPtr dev);
  57. int virSecurityManagerSetHostdevLabel(virSecurityManagerPtr mgr,
  58. virDomainObjPtr vm,
  59. virDomainHostdevDefPtr dev);
  60. int virSecurityManagerSetSavedStateLabel(virSecurityManagerPtr mgr,
  61. virDomainObjPtr vm,
  62. const char *savefile);
  63. int virSecurityManagerRestoreSavedStateLabel(virSecurityManagerPtr mgr,
  64. virDomainObjPtr vm,
  65. const char *savefile);
  66. int virSecurityManagerGenLabel(virSecurityManagerPtr mgr,
  67. virDomainObjPtr sec);
  68. int virSecurityManagerReserveLabel(virSecurityManagerPtr mgr,
  69. virDomainObjPtr sec);
  70. int virSecurityManagerReleaseLabel(virSecurityManagerPtr mgr,
  71. virDomainObjPtr sec);
  72. int virSecurityManagerSetAllLabel(virSecurityManagerPtr mgr,
  73. virDomainObjPtr sec,
  74. const char *stdin_path);
  75. int virSecurityManagerRestoreAllLabel(virSecurityManagerPtr mgr,
  76. virDomainObjPtr vm,
  77. int migrated);
  78. int virSecurityManagerGetProcessLabel(virSecurityManagerPtr mgr,
  79. virDomainObjPtr vm,
  80. virSecurityLabelPtr sec);
  81. int virSecurityManagerSetProcessLabel(virSecurityManagerPtr mgr,
  82. virDomainObjPtr vm);
  83. int virSecurityManagerVerify(virSecurityManagerPtr mgr,
  84. virDomainDefPtr def);
  85. int virSecurityManagerSetImageFDLabel(virSecurityManagerPtr mgr,
  86. virDomainObjPtr vm,
  87. int fd);
  88. #endif /* VIR_SECURITY_MANAGER_H__ */