~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/vmw_vmci_api.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0-only */
  2 /*
  3  * VMware VMCI Driver
  4  *
  5  * Copyright (C) 2012 VMware, Inc. All rights reserved.
  6  */
  7 
  8 #ifndef __VMW_VMCI_API_H__
  9 #define __VMW_VMCI_API_H__
 10 
 11 #include <linux/uidgid.h>
 12 #include <linux/vmw_vmci_defs.h>
 13 
 14 #undef  VMCI_KERNEL_API_VERSION
 15 #define VMCI_KERNEL_API_VERSION_1 1
 16 #define VMCI_KERNEL_API_VERSION_2 2
 17 #define VMCI_KERNEL_API_VERSION   VMCI_KERNEL_API_VERSION_2
 18 
 19 struct msghdr;
 20 typedef void (vmci_device_shutdown_fn) (void *device_registration,
 21                                         void *user_data);
 22 typedef void (*vmci_vsock_cb) (bool is_host);
 23 
 24 int vmci_datagram_create_handle(u32 resource_id, u32 flags,
 25                                 vmci_datagram_recv_cb recv_cb,
 26                                 void *client_data,
 27                                 struct vmci_handle *out_handle);
 28 int vmci_datagram_create_handle_priv(u32 resource_id, u32 flags, u32 priv_flags,
 29                                      vmci_datagram_recv_cb recv_cb,
 30                                      void *client_data,
 31                                      struct vmci_handle *out_handle);
 32 int vmci_datagram_destroy_handle(struct vmci_handle handle);
 33 int vmci_datagram_send(struct vmci_datagram *msg);
 34 int vmci_doorbell_create(struct vmci_handle *handle, u32 flags,
 35                          u32 priv_flags,
 36                          vmci_callback notify_cb, void *client_data);
 37 int vmci_doorbell_destroy(struct vmci_handle handle);
 38 int vmci_doorbell_notify(struct vmci_handle handle, u32 priv_flags);
 39 u32 vmci_get_context_id(void);
 40 bool vmci_is_context_owner(u32 context_id, kuid_t uid);
 41 int vmci_register_vsock_callback(vmci_vsock_cb callback);
 42 
 43 int vmci_event_subscribe(u32 event,
 44                          vmci_event_cb callback, void *callback_data,
 45                          u32 *subid);
 46 int vmci_event_unsubscribe(u32 subid);
 47 u32 vmci_context_get_priv_flags(u32 context_id);
 48 int vmci_qpair_alloc(struct vmci_qp **qpair,
 49                      struct vmci_handle *handle,
 50                      u64 produce_qsize,
 51                      u64 consume_qsize,
 52                      u32 peer, u32 flags, u32 priv_flags);
 53 int vmci_qpair_detach(struct vmci_qp **qpair);
 54 int vmci_qpair_get_produce_indexes(const struct vmci_qp *qpair,
 55                                    u64 *producer_tail,
 56                                    u64 *consumer_head);
 57 int vmci_qpair_get_consume_indexes(const struct vmci_qp *qpair,
 58                                    u64 *consumer_tail,
 59                                    u64 *producer_head);
 60 s64 vmci_qpair_produce_free_space(const struct vmci_qp *qpair);
 61 s64 vmci_qpair_produce_buf_ready(const struct vmci_qp *qpair);
 62 s64 vmci_qpair_consume_free_space(const struct vmci_qp *qpair);
 63 s64 vmci_qpair_consume_buf_ready(const struct vmci_qp *qpair);
 64 ssize_t vmci_qpair_enqueue(struct vmci_qp *qpair,
 65                            const void *buf, size_t buf_size, int mode);
 66 ssize_t vmci_qpair_dequeue(struct vmci_qp *qpair,
 67                            void *buf, size_t buf_size, int mode);
 68 ssize_t vmci_qpair_peek(struct vmci_qp *qpair, void *buf, size_t buf_size,
 69                         int mode);
 70 ssize_t vmci_qpair_enquev(struct vmci_qp *qpair,
 71                           struct msghdr *msg, size_t iov_size, int mode);
 72 ssize_t vmci_qpair_dequev(struct vmci_qp *qpair,
 73                           struct msghdr *msg, size_t iov_size, int mode);
 74 ssize_t vmci_qpair_peekv(struct vmci_qp *qpair, struct msghdr *msg, size_t iov_size,
 75                          int mode);
 76 
 77 #endif /* !__VMW_VMCI_API_H__ */
 78 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php