Code Monkey home page Code Monkey logo

Comments (3)

Drakulix avatar Drakulix commented on July 17, 2024

We currently pull the headers from the ubuntu-images in CI and automatically update them. Ubuntu however is obviously lacking behind libdrm most of the time. So adjusting the CI-script to pull the latest libdrm sources would already be an improvement.

That said generating the ioctl code directly from the kernel seems even better, as well as addressing #105 this way. I don't see any issues with that. :)

from drm-rs.

ids1024 avatar ids1024 commented on July 17, 2024

I wonder if the generic ioctl mechanism added to Rustix recently would be helpful: bytecodealliance/rustix#788. The linux-raw-sys crate used by Rustix seems to have ioctl numbers. Though presumably something else would be needed on BSDs (and I'm not sure if that currently handles all Linux architectures, with different ioctl numbering).

from drm-rs.

ids1024 avatar ids1024 commented on July 17, 2024

It seems like the only differences between architectures here is a few typedefs. (A couple of which may just be differences in different versions and ultimately the same concrete types?)

Looking at https://gitlab.freedesktop.org/mesa/drm/-/blob/main/include/drm/drm.h:

#if   defined(__linux__)

#include <linux/types.h>
#include <asm/ioctl.h>
typedef unsigned int drm_handle_t;

#else /* One of the BSDs */

#include <stdint.h>
#include <sys/ioccom.h>
#include <sys/types.h>
typedef int8_t   __s8;
typedef uint8_t  __u8;
typedef int16_t  __s16;
typedef uint16_t __u16;
typedef int32_t  __s32;
typedef uint32_t __u32;
typedef int64_t  __s64;
typedef uint64_t __u64;
typedef size_t   __kernel_size_t;
typedef unsigned long drm_handle_t;

#endif

So it looks like the same header file is supposed to apply across operating systems and architectures. I guess it's the files like linux/types.h where any actually differences may be?

from drm-rs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.