diff options
Diffstat (limited to '')
| -rw-r--r-- | src/drm.cpp | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/drm.cpp b/src/drm.cpp index 66fe147..77d326d 100644 --- a/src/drm.cpp +++ b/src/drm.cpp @@ -5,9 +5,9 @@ #include "drm++/helper/types.hpp" #include <stdexcept> +#include <string> #include <drm.h> -#include <string> #include <unistd.h> using namespace drm; @@ -16,6 +16,30 @@ Device::Device(int fd) : m_fd(fd) { if (this->m_fd < 0) { throw std::invalid_argument("invalid file descriptor"); } + + drm_version args{ + .version_major = 0, + }; + ioctl::perform(this->m_fd, DRM_IOCTL_VERSION, args); + + this->m_version = { + args.version_major, + args.version_minor, + args.version_patchlevel + }; + this->m_name.resize(args.name_len); + this->m_date.resize(args.date_len); + this->m_description.resize(args.desc_len); + + args = { + .name_len = this->m_name.size(), + .name = this->m_name.data(), + .date_len = this->m_date.size(), + .date = this->m_date.data(), + .desc_len = this->m_description.size(), + .desc = this->m_description.data() + }; + ioctl::perform(this->m_fd, DRM_IOCTL_VERSION, args); } void Device::setClientName(const std::string& name) const { |
