mirror of
https://github.com/openharmony/drivers_framework.git
synced 2026-07-20 19:27:49 -04:00
51 lines
1.5 KiB
C
51 lines
1.5 KiB
C
/*
|
|
* Copyright (c) 2020-2021 Huawei Device Co., Ltd.
|
|
*
|
|
* HDF is dual licensed: you can use it either under the terms of
|
|
* the GPL, or the BSD license, at your option.
|
|
* See the LICENSE file in the root of this repository for complete details.
|
|
*/
|
|
|
|
#ifndef OSAL_CDEV_H
|
|
#define OSAL_CDEV_H
|
|
|
|
#include "osal_cdev_adapter.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus */
|
|
|
|
#ifndef __user
|
|
#define __user
|
|
#endif
|
|
|
|
struct OsalCdev;
|
|
struct file;
|
|
|
|
struct OsalCdevOps {
|
|
int64_t (*seek)(struct file* filep, int64_t offset, int whence);
|
|
ssize_t (*read)(struct file* filep, char __user* buffer, size_t buflen, int64_t* offset);
|
|
ssize_t (*write)(struct file* filep, const char __user* buffer, size_t buflen, int64_t* offset);
|
|
unsigned int (*poll)(struct file* filep, poll_table* pollTable);
|
|
long (*ioctl)(struct file* filep, unsigned int cmd, unsigned long arg);
|
|
int (*open)(struct OsalCdev* cdev, struct file* filep);
|
|
int (*release)(struct OsalCdev* cdev, struct file* filep);
|
|
};
|
|
|
|
struct OsalCdev* OsalAllocCdev(const struct OsalCdevOps* fops);
|
|
int OsalRegisterCdev(struct OsalCdev* cdev, const char *name, unsigned int mode, void *priv);
|
|
void OsalUnregisterCdev(struct OsalCdev* cdev);
|
|
void OsalFreeCdev(struct OsalCdev* cdev);
|
|
|
|
void* OsalGetCdevPriv(struct OsalCdev* cdev);
|
|
|
|
void OsalSetFilePriv(struct file* filep, void *priv);
|
|
void* OsalGetFilePriv(struct file* filep);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* __cplusplus */
|
|
|
|
#endif /* OSAL_CDEV_H */
|
|
/** @} */
|