Back to index

libdrm  2.4.37
Defines | Enumerations | Functions
libkms.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define KMS_TERMINATE_PROP_LIST   KMS_TERMINATE_PROP_LIST
#define KMS_BO_TYPE   KMS_BO_TYPE
#define KMS_WIDTH   KMS_WIDTH
#define KMS_HEIGHT   KMS_HEIGHT
#define KMS_PITCH   KMS_PITCH
#define KMS_HANDLE   KMS_HANDLE
#define KMS_BO_TYPE_SCANOUT_X8R8G8B8   KMS_BO_TYPE_SCANOUT_X8R8G8B8
#define KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8   KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8

Enumerations

enum  kms_attrib {
  KMS_TERMINATE_PROP_LIST, KMS_TERMINATE_PROP_LIST, KMS_BO_TYPE, KMS_BO_TYPE,
  KMS_WIDTH, KMS_WIDTH, KMS_HEIGHT, KMS_HEIGHT,
  KMS_PITCH, KMS_PITCH, KMS_HANDLE, KMS_HANDLE
}
enum  kms_bo_type { KMS_BO_TYPE_SCANOUT_X8R8G8B8 = (1 << 0), KMS_BO_TYPE_SCANOUT_X8R8G8B8 = (1 << 0), KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8 = (1 << 1), KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8 = (1 << 1) }

Functions

int kms_create (int fd, struct kms_driver **out)
int kms_get_prop (struct kms_driver *kms, unsigned key, unsigned *out)
int kms_destroy (struct kms_driver **kms)
int kms_bo_create (struct kms_driver *kms, const unsigned *attr, struct kms_bo **out)
int kms_bo_get_prop (struct kms_bo *bo, unsigned key, unsigned *out)
int kms_bo_map (struct kms_bo *bo, void **out)
int kms_bo_unmap (struct kms_bo *bo)
int kms_bo_destroy (struct kms_bo **bo)

Detailed Description

Definition in file libkms.h.


Define Documentation

#define KMS_BO_TYPE   KMS_BO_TYPE

Definition at line 45 of file libkms.h.

Definition at line 61 of file libkms.h.

Definition at line 59 of file libkms.h.

#define KMS_HANDLE   KMS_HANDLE

Definition at line 53 of file libkms.h.

#define KMS_HEIGHT   KMS_HEIGHT

Definition at line 49 of file libkms.h.

#define KMS_PITCH   KMS_PITCH

Definition at line 51 of file libkms.h.

Definition at line 43 of file libkms.h.

#define KMS_WIDTH   KMS_WIDTH

Definition at line 47 of file libkms.h.


Enumeration Type Documentation

enum kms_attrib
Enumerator:
KMS_TERMINATE_PROP_LIST 
KMS_TERMINATE_PROP_LIST 
KMS_BO_TYPE 
KMS_BO_TYPE 
KMS_WIDTH 
KMS_WIDTH 
KMS_HEIGHT 
KMS_HEIGHT 
KMS_PITCH 
KMS_PITCH 
KMS_HANDLE 
KMS_HANDLE 

Definition at line 40 of file libkms.h.

{
       KMS_TERMINATE_PROP_LIST,
#define KMS_TERMINATE_PROP_LIST KMS_TERMINATE_PROP_LIST
       KMS_BO_TYPE,
#define KMS_BO_TYPE KMS_BO_TYPE
       KMS_WIDTH,
#define KMS_WIDTH KMS_WIDTH
       KMS_HEIGHT,
#define KMS_HEIGHT KMS_HEIGHT
       KMS_PITCH,
#define KMS_PITCH KMS_PITCH
       KMS_HANDLE,
#define KMS_HANDLE KMS_HANDLE
};
Enumerator:
KMS_BO_TYPE_SCANOUT_X8R8G8B8 
KMS_BO_TYPE_SCANOUT_X8R8G8B8 
KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8 
KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8 

Definition at line 56 of file libkms.h.

{
       KMS_BO_TYPE_SCANOUT_X8R8G8B8 = (1 << 0),
#define KMS_BO_TYPE_SCANOUT_X8R8G8B8 KMS_BO_TYPE_SCANOUT_X8R8G8B8
       KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8 =  (1 << 1),
#define KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8 KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8
};

Function Documentation

int kms_bo_create ( struct kms_driver kms,
const unsigned *  attr,
struct kms_bo **  out 
)

Definition at line 61 of file api.c.

{
       unsigned width = 0;
       unsigned height = 0;
       enum kms_bo_type type = KMS_BO_TYPE_SCANOUT_X8R8G8B8;
       int i;

       for (i = 0; attr[i];) {
              unsigned key = attr[i++];
              unsigned value = attr[i++];

              switch (key) {
              case KMS_WIDTH:
                     width = value;
                     break;
              case KMS_HEIGHT:
                     height = value;
                     break;
              case KMS_BO_TYPE:
                     type = value;
                     break;
              default:
                     return EINVAL;
              }
       }

       if (width == 0 || height == 0)
              return -EINVAL;

       /* XXX sanity check type */

       if (type == KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8 &&
           (width != 64 || height != 64))
              return -EINVAL;

       return kms->bo_create(kms, width, height, type, attr, out);
}

Here is the caller graph for this function:

int kms_bo_destroy ( struct kms_bo **  bo)

Definition at line 125 of file api.c.

{
       int ret;

       if (!(*bo))
              return 0;

       ret = (*bo)->kms->bo_destroy(*bo);
       if (ret)
              return ret;

       *bo = NULL;
       return 0;
}

Here is the caller graph for this function:

int kms_bo_get_prop ( struct kms_bo bo,
unsigned  key,
unsigned *  out 
)

Definition at line 99 of file api.c.

{
       switch (key) {
       case KMS_PITCH:
              *out = bo->pitch;
              break;
       case KMS_HANDLE:
              *out = bo->handle;
              break;
       default:
              return -EINVAL;
       }

       return 0;
}

Here is the caller graph for this function:

int kms_bo_map ( struct kms_bo bo,
void **  out 
)

Definition at line 115 of file api.c.

{
       return bo->kms->bo_map(bo, out);
}

Here is the caller graph for this function:

int kms_bo_unmap ( struct kms_bo bo)

Definition at line 120 of file api.c.

{
       return bo->kms->bo_unmap(bo);
}

Here is the caller graph for this function:

int kms_create ( int  fd,
struct kms_driver **  out 
)

Definition at line 35 of file api.c.

{
       return linux_create(fd, out);
}

Here is the call graph for this function:

Here is the caller graph for this function:

int kms_destroy ( struct kms_driver **  kms)

Definition at line 51 of file api.c.

{
       if (!(*kms))
              return 0;

       free(*kms);
       *kms = NULL;
       return 0;
}

Here is the caller graph for this function:

int kms_get_prop ( struct kms_driver kms,
unsigned  key,
unsigned *  out 
)

Definition at line 40 of file api.c.

{
       switch (key) {
       case KMS_BO_TYPE:
              break;
       default:
              return -EINVAL;
       }
       return kms->get_prop(kms, key, out);
}