~ubuntu-branches/ubuntu/quantal/open-vm-tools/quantal-201210021442

« back to all changes in this revision

Viewing changes to modules/linux/vmci/common/vmciResource.h

  • Committer: Bazaar Package Importer
  • Author(s): Serge Hallyn
  • Date: 2011-03-31 14:20:05 UTC
  • mfrom: (1.4.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20110331142005-3n9red91p7ogkweo
Tags: 2011.03.28-387002-0ubuntu1
* Merge latest upstream git tag.  This has the unlocked_ioctl change
  needed to fix dkms build failures (LP: #727342)
* Changes in debian/rules:
  - work around a bug in toolbox/Makefile, where install-exec-hook is
    not happening.  This needs to get fixed the right way.
  - don't install 'vmware-user' which seems to no longer exist
  - move /etc/xdg into open-vm-toolbox (which should be done using .install)
* debian/open-vm-tools.init: add 'modprobe [-r] vmblock'. (LP: #332323)
* debian/rules and debian/open-vm-toolbox.lintian-overrides:
  - Make vmware-user-suid-wrapper suid-root (LP: #332323)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*********************************************************
 
2
 * Copyright (C) 2006 VMware, Inc. All rights reserved.
 
3
 *
 
4
 * This program is free software; you can redistribute it and/or modify it
 
5
 * under the terms of the GNU General Public License as published by the
 
6
 * Free Software Foundation version 2 and no later version.
 
7
 *
 
8
 * This program is distributed in the hope that it will be useful, but
 
9
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 
10
 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 
11
 * for more details.
 
12
 *
 
13
 * You should have received a copy of the GNU General Public License along
 
14
 * with this program; if not, write to the Free Software Foundation, Inc.,
 
15
 * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
 
16
 *
 
17
 *********************************************************/
 
18
 
 
19
/*
 
20
 * vmciResource.h --
 
21
 *
 
22
 *      VMCI Resource Access Control API.
 
23
 */
 
24
 
 
25
#ifndef _VMCI_RESOURCE_H_
 
26
#define _VMCI_RESOURCE_H_
 
27
 
 
28
#define INCLUDE_ALLOW_VMMON
 
29
#define INCLUDE_ALLOW_VMCORE
 
30
#define INCLUDE_ALLOW_MODULE
 
31
#define INCLUDE_ALLOW_VMKERNEL
 
32
#include "includeCheck.h"
 
33
 
 
34
#include "vmci_defs.h"
 
35
#include "vmci_kernel_if.h"
 
36
#include "vmciHashtable.h"
 
37
#include "vmciContext.h"
 
38
 
 
39
#define RESOURCE_CONTAINER(ptr, type, member) \
 
40
   ((type *)((char *)(ptr) - offsetof(type, member)))
 
41
 
 
42
typedef void(*VMCIResourceFreeCB)(void *resource);
 
43
 
 
44
typedef enum {
 
45
   VMCI_RESOURCE_TYPE_ANY,
 
46
   VMCI_RESOURCE_TYPE_API,
 
47
   VMCI_RESOURCE_TYPE_GROUP,
 
48
   VMCI_RESOURCE_TYPE_DATAGRAM,
 
49
   VMCI_RESOURCE_TYPE_DOORBELL,
 
50
} VMCIResourceType;
 
51
 
 
52
typedef struct VMCIResource {
 
53
   VMCIHashEntry         hashEntry;
 
54
   VMCIResourceType      type;
 
55
   VMCIResourceFreeCB    containerFreeCB;    // Callback to free container
 
56
                                             // object when refCount is 0.
 
57
   void                  *containerObject;   // Container object reference.
 
58
   VMCIHandle            handle;
 
59
} VMCIResource;
 
60
 
 
61
 
 
62
int VMCIResource_Init(void);
 
63
void VMCIResource_Exit(void);
 
64
void VMCIResource_Sync(void);
 
65
 
 
66
VMCIId VMCIResource_GetID(VMCIId contextID);
 
67
 
 
68
int VMCIResource_Add(VMCIResource *resource, VMCIResourceType resourceType,
 
69
                     VMCIHandle resourceHandle,
 
70
                     VMCIResourceFreeCB containerFreeCB, void *containerObject);
 
71
void VMCIResource_Remove(VMCIHandle resourceHandle,
 
72
                         VMCIResourceType resourceType);
 
73
VMCIResource *VMCIResource_Get(VMCIHandle resourceHandle,
 
74
                               VMCIResourceType resourceType);
 
75
void VMCIResource_Hold(VMCIResource *resource);
 
76
int VMCIResource_Release(VMCIResource *resource);
 
77
 
 
78
 
 
79
#endif // _VMCI_RESOURCE_H_