163a93856SMark Peek /*- 2*3eeb7511SMark Peek * Copyright (c) 2018 VMware, Inc. 363a93856SMark Peek * 48c302b2eSMark Peek * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0) 563a93856SMark Peek */ 663a93856SMark Peek 763a93856SMark Peek /* VMCI driver interface. */ 863a93856SMark Peek 963a93856SMark Peek #ifndef _VMCI_DRIVER_H_ 1063a93856SMark Peek #define _VMCI_DRIVER_H_ 1163a93856SMark Peek 1263a93856SMark Peek #include <sys/types.h> 1363a93856SMark Peek #include <sys/syslog.h> 1463a93856SMark Peek #include <sys/systm.h> 1563a93856SMark Peek 1663a93856SMark Peek #include "vmci_call_defs.h" 1763a93856SMark Peek #include "vmci_kernel_if.h" 1863a93856SMark Peek 1963a93856SMark Peek #ifndef VMCI_DEBUG_LOGGING 2063a93856SMark Peek #define VMCI_LOG_DEBUG(_args, ...) 2163a93856SMark Peek #else /* VMCI_DEBUG_LOGGING */ 2263a93856SMark Peek #define VMCI_LOG_DEBUG(_args, ...) \ 2363a93856SMark Peek log(LOG_DEBUG, _args, ##__VA_ARGS__) 2463a93856SMark Peek #endif /* !VMCI_DEBUG_LOGGING */ 2563a93856SMark Peek #define VMCI_LOG_INFO(_args, ...) \ 2663a93856SMark Peek log(LOG_INFO, _args, ##__VA_ARGS__) 2763a93856SMark Peek #define VMCI_LOG_WARNING(_args, ...) \ 2863a93856SMark Peek log(LOG_WARNING, _args, ##__VA_ARGS__) 2963a93856SMark Peek #define VMCI_LOG_ERROR(_args, ...) \ 3063a93856SMark Peek log(LOG_ERR, _args, ##__VA_ARGS__) 3163a93856SMark Peek 3263a93856SMark Peek int vmci_components_init(void); 3363a93856SMark Peek void vmci_components_cleanup(void); 3463a93856SMark Peek int vmci_send_datagram(struct vmci_datagram *dg); 3563a93856SMark Peek 3663a93856SMark Peek void vmci_util_init(void); 3763a93856SMark Peek void vmci_util_exit(void); 3863a93856SMark Peek bool vmci_check_host_capabilities(void); 3963a93856SMark Peek void vmci_read_datagrams_from_port(vmci_io_handle io_handle, 4063a93856SMark Peek vmci_io_port dg_in_port, uint8_t *dg_in_buffer, 4163a93856SMark Peek size_t dg_in_buffer_size); 4263a93856SMark Peek 4363a93856SMark Peek #endif /* !_VMCI_DRIVER_H_ */ 44