Contains the list of all possible side effects.
This is where we map which side effect is located where, as well as what are potential issues with having them implemented.
- Global _RM_CTRL (fd, client, object, cmd, data)
- Macro for rm_ctrl_res
- Global create_nv_mgr ()
File System Side Effect: Can potentially create a few /dev files.
File System Side Effect: Opens /dev/nvidiactl.
File System Side Effect: Opens /dev/nvidiad for different GPUs.
RM Side Effect: Creates a RM Client.
RM Side Effect: Attaches a GPU to /dev/nvidiad.
RM Side Effect: Creates a RM Device Id.
RM Side Effect: Creates a RM Sub Device Id.
RM Side Effect: Creates a mdev configurator id.
- Global create_nv_mgr_mdevs (struct NvMdev *mgr, struct Gpu *limited, size_t gpu_size, struct MDevRequest *requested, size_t mdev_size)
- RM Side Effect: Creates mdevs on a requested GPU.
- Global device_exists (const char *device_name)
- File System Side Effect: This checks the file system, specifically the device tree.
- Global free_nv_mgr (struct NvMdev *mgr)
RM Side Effect: Deletes a RM Client.
RM Side Effect: DeAttaches a GPU from /dev/nvidiad.
RM Side Effect: Deletes a RM Device Id.
RM Side Effect: Deletes a RM Sub Device Id.
RM Side Effect: Deletes a mdev configurator id.
- Global get_major (const char *device)
- File System Side Effect: Checks the major number of a device.
- Global get_param (const char *filename, const char *parameter)
- File System Side Effect: Checks the device parameter file for a value.
- Global handle_vm_start (struct VmMgr *mgr, struct NvMdev *mdev_mgr)
- VM Side Effect: Starts a VM.
- Global init_nv_vm_mgr (struct NvMdev *mgr)
- RM Side Effect: Creates a start and a bind operation to the VM object.
- Global register_nv_mgr_mdevs (struct NvMdev *mgr)
- RM Side Effect: Creates mdevs in the OS.
- Global rm_alloc_res (int fd, struct NvResource *parent, uint32_t object, uint32_t rm_class, void *data)
RM Side Effect: Allocates an object with a specific class in the RM Core, for safety purposes we should call a free res for all resources available on the system. However it is not strictly necessary as there is a garbage collector inside the RM Core.
State Side Effect: Parent node is modified, to have a new child.
- Global RM_CTRL (fd, res, cmd, data)
- Macro for rm_ctrl_res
- Global rm_ctrl_res (int fd, uint32_t client, uint32_t device, uint32_t command, void *data, uint32_t size)
RM Side Effect: Performs a potentially unsafe method on an object in the kernel.
Log Side Effect: Logs incorrect information.
- Global rm_free_res (int fd, struct NvResource *object)
- RM Side Effect: Deallocates an object with a specific id in the RM Core.
- Global rm_free_tree (int fd, struct NvResource *root)
- RM Side Effect: Deallocates an object with a specific root in the RM Core.
- Global rm_version_check (int ctl_fd, uint8_t ignore_version, const char *version)
- RM Side Effect: Enables the file descriptor to connect to the device.
- Global start_vm (struct VmMgr *mgr, struct NvMdev *mdev_mgr)
- VM Side Effect: Starts a VM.