68 if (strnlen(param, size) >= size) {
69 DOCA_LOG_ERR(
"System VUID argument too long. Must be <=%zu long", size - 1);
88 if (strnlen(param, size) >= size) {
89 DOCA_LOG_ERR(
"DMA device name argument too long. Must be <=%zu long", size - 1);
106 char *str_param = (
char *)param;
108 if (!strcasecmp(str_param,
"windows"))
110 else if (!strcasecmp(str_param,
"linux"))
113 DOCA_LOG_ERR(
"OS type is not windows/linux (case insensitive)");
131 if (strnlen(param, size) >= size) {
132 DOCA_LOG_ERR(
"System memory regions map argument too long, must be <=%zu long", size - 1);
156 if (strnlen(param, size) >= size) {
157 DOCA_LOG_ERR(
"System os symbols map argument too long, must be <=%zu long", size - 1);
172 struct doca_argp_param *pid_param, *vuid_param, *dma_param, *os_type_param, *memr_param, *os_syms_param;
290 struct doca_apsh_ctx *apsh_ctx;
294 strlen(dma_device_name),
302 if (apsh_ctx ==
NULL) {
327 const char *os_symbols,
328 const char *mem_region,
329 const char *pci_vuid,
330 struct doca_apsh_system **system)
333 struct doca_apsh_system *sys =
NULL;
338 (
const uint8_t *)pci_vuid,
398 struct doca_apsh_system *sys,
400 struct doca_apsh_process ***processes,
401 struct doca_apsh_process **process)
403 struct doca_apsh_process **
pslist;
404 int num_processes, i;
415 for (i = 0; i < num_processes; ++i) {
421 if (*process ==
NULL) {
428 *nb_procs = num_processes;
DOCA_LOG_REGISTER(APSH_COMMON)
static doca_error_t os_syms_callback(void *param, void *config)
static doca_error_t os_type_callback(void *param, void *config)
static struct doca_dev * dma_device
static doca_error_t memr_callback(void *param, void *config)
static doca_error_t dma_callback(void *param, void *config)
doca_error_t register_apsh_params(bool add_os_arg, bool add_pid_arg)
static doca_error_t pid_callback(void *param, void *config)
doca_error_t process_get(DOCA_APSH_PROCESS_PID_TYPE pid, struct doca_apsh_system *sys, int *nb_procs, struct doca_apsh_process ***processes, struct doca_apsh_process **process)
static struct doca_dev_rep * pci_device
static doca_error_t vuid_callback(void *param, void *config)
doca_error_t cleanup_doca_apsh(struct doca_apsh_ctx *ctx, struct doca_apsh_system *system)
doca_error_t init_doca_apsh_system(struct doca_apsh_ctx *ctx, enum doca_apsh_system_os os_type, const char *os_symbols, const char *mem_region, const char *pci_vuid, struct doca_apsh_system **system)
doca_error_t init_doca_apsh(const char *dma_device_name, struct doca_apsh_ctx **ctx)
doca_error_t pslist(const char *dma_device_name, const char *pci_vuid, enum doca_apsh_system_os os_type, const char *mem_region, const char *os_symbols)
doca_error_t open_doca_device_rep_with_vuid(struct doca_dev *local, enum doca_devinfo_rep_filter filter, const uint8_t *value, size_t val_size, struct doca_dev_rep **retval)
doca_error_t open_doca_device_with_ibdev_name(const uint8_t *value, size_t val_size, tasks_check func, struct doca_dev **retval)
if(bitoffset % 64+bitlength > 64) result|
uint32_t DOCA_APSH_PROCESS_PID_TYPE
process pid type
doca_apsh_system_os
system os types
@ DOCA_APSH_SYSTEM_WINDOWS
DOCA_EXPERIMENTAL doca_error_t doca_apsh_sys_mem_region_set(struct doca_apsh_system *system, const char *system_mem_region_path)
Set system allowed memory regions.
DOCA_EXPERIMENTAL doca_error_t doca_apsh_sys_dev_set(struct doca_apsh_system *system, struct doca_dev_rep *dev)
Set system device.
DOCA_EXPERIMENTAL doca_error_t doca_apsh_processes_get(struct doca_apsh_system *system, struct doca_apsh_process ***processes, int *processes_size)
Get array of current processes running on the system.
DOCA_EXPERIMENTAL doca_error_t doca_apsh_start(struct doca_apsh_ctx *ctx)
Start apsh handler.
DOCA_EXPERIMENTAL doca_error_t doca_apsh_sys_os_type_set(struct doca_apsh_system *system, enum doca_apsh_system_os os_type)
Set system os type.
DOCA_EXPERIMENTAL struct doca_apsh_ctx * doca_apsh_create(void)
Create a new apsh handler.
DOCA_EXPERIMENTAL doca_error_t doca_apsh_dma_dev_set(struct doca_apsh_ctx *ctx, struct doca_dev *dma_dev)
Set apsh dma device.
DOCA_EXPERIMENTAL struct doca_apsh_system * doca_apsh_system_create(struct doca_apsh_ctx *ctx)
Create a new system handler.
DOCA_EXPERIMENTAL doca_error_t doca_apsh_sys_os_symbol_map_set(struct doca_apsh_system *system, const char *system_os_symbol_map_path)
Set system os symbol map.
DOCA_EXPERIMENTAL void doca_apsh_destroy(struct doca_apsh_ctx *ctx)
Free the APSH memory and close connections.
#define doca_apsh_process_info_get(process, attr)
Get attribute value for a process.
DOCA_EXPERIMENTAL void doca_apsh_processes_free(struct doca_apsh_process **processes)
Destroys a process context.
DOCA_EXPERIMENTAL void doca_apsh_system_destroy(struct doca_apsh_system *system)
Destroy system handler.
DOCA_EXPERIMENTAL doca_error_t doca_apsh_system_start(struct doca_apsh_system *system)
Start system handler.
DOCA_EXPERIMENTAL void doca_argp_param_set_description(struct doca_argp_param *param, const char *description)
Set the description of the program param, used during program usage.
DOCA_EXPERIMENTAL void doca_argp_param_set_long_name(struct doca_argp_param *param, const char *name)
Set the long name of the program param.
DOCA_EXPERIMENTAL void doca_argp_param_set_arguments(struct doca_argp_param *param, const char *arguments)
Set the description of the expected arguments of the program param, used during program usage.
DOCA_EXPERIMENTAL void doca_argp_param_set_callback(struct doca_argp_param *param, doca_argp_param_cb_t callback)
Set the callback function of the program param.
DOCA_EXPERIMENTAL doca_error_t doca_argp_param_create(struct doca_argp_param **param)
Create new program param.
DOCA_EXPERIMENTAL void doca_argp_param_set_type(struct doca_argp_param *param, enum doca_argp_type type)
Set the type of the param arguments.
DOCA_EXPERIMENTAL void doca_argp_param_set_short_name(struct doca_argp_param *param, const char *name)
Set the short name of the program param.
DOCA_EXPERIMENTAL doca_error_t doca_argp_register_param(struct doca_argp_param *input_param)
Register a program flag.
DOCA_STABLE doca_error_t doca_dev_rep_close(struct doca_dev_rep *dev)
Destroy allocated representor device instance.
DOCA_STABLE doca_error_t doca_dev_close(struct doca_dev *dev)
Destroy allocated local device instance.
@ DOCA_DEVINFO_REP_FILTER_NET
enum doca_error doca_error_t
DOCA API return codes.
DOCA_STABLE const char * doca_error_get_descr(doca_error_t error)
Returns the description string of an error code.
@ DOCA_ERROR_INVALID_VALUE
@ DOCA_ERROR_INITIALIZATION
@ DOCA_ERROR_NOT_SUPPORTED
#define DOCA_LOG_ERR(format,...)
Generates an ERROR application log message.
char system_vuid[DOCA_DEVINFO_VUID_SIZE+1]
DOCA_APSH_PROCESS_PID_TYPE pid
char dma_dev_name[DOCA_DEVINFO_IBDEV_NAME_SIZE+1]
char system_mem_region_path[MAX_PATH_LEN]
char system_os_symbol_map_path[MAX_PATH_LEN]
enum doca_apsh_system_os os_type
struct upf_accel_ctx * ctx