mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-17 10:46:33 +00:00
platform/surface: aggregator: Make SSAM_DEFINE_SYNC_REQUEST_x define static functions
The SSAM_DEFINE_SYNC_REQUEST_x() macros are intended to reduce boiler-plate code for SSAM request definitions by defining a wrapper function for the specified request. The client device variants of those macros, i.e. SSAM_DEFINE_SYNC_REQUEST_CL_x() in particular rely on the multi-device (MD) variants, e.g.: #define SSAM_DEFINE_SYNC_REQUEST_CL_R(name, rtype, spec...) \ SSAM_DEFINE_SYNC_REQUEST_MD_R(__raw_##name, rtype, spec) \ int name(struct ssam_device *sdev, rtype *ret) \ { \ return __raw_##name(sdev->ctrl, sdev->uid.target, \ sdev->uid.instance, ret); \ } This now creates the problem that it is not possible to declare the generated functions static via static SSAM_DEFINE_SYNC_REQUEST_CL_R(...) as this will only apply to the function defined by the multi-device macro, i.e. SSAM_DEFINE_SYNC_REQUEST_MD_R(). Thus compiling with `-Wmissing-prototypes' rightfully complains that there is a 'static' keyword missing. To solve this, make all SSAM_DEFINE_SYNC_REQUEST_x() macros define static functions. Non-client-device macros are also changed for consistency. In general, we expect those functions to be only used locally in the respective drivers for the corresponding interfaces, so having to define a wrapper function to be able to export this should be the odd case out. Reported-by: kernel test robot <lkp@intel.com> Fixes: b78b4982d763 ("platform/surface: Add platform profile driver") Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com> Link: https://lore.kernel.org/r/20210304190524.1172197-1-luzmaximilian@gmail.com Signed-off-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
parent
b78b4982d7
commit
03ee318391
@ -248,7 +248,7 @@ This example defines a function
|
|||||||
|
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
int __ssam_tmp_perf_mode_set(struct ssam_controller *ctrl, const __le32 *arg);
|
static int __ssam_tmp_perf_mode_set(struct ssam_controller *ctrl, const __le32 *arg);
|
||||||
|
|
||||||
executing the specified request, with the controller passed in when calling
|
executing the specified request, with the controller passed in when calling
|
||||||
said function. In this example, the argument is provided via the ``arg``
|
said function. In this example, the argument is provided via the ``arg``
|
||||||
@ -296,7 +296,7 @@ This invocation of the macro defines a function
|
|||||||
|
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
int ssam_bat_get_sta(struct ssam_device *sdev, __le32 *ret);
|
static int ssam_bat_get_sta(struct ssam_device *sdev, __le32 *ret);
|
||||||
|
|
||||||
executing the specified request, using the device IDs and controller given
|
executing the specified request, using the device IDs and controller given
|
||||||
in the client device. The full list of such macros for client devices is:
|
in the client device. The full list of such macros for client devices is:
|
||||||
|
@ -1750,35 +1750,35 @@ EXPORT_SYMBOL_GPL(ssam_request_sync_with_buffer);
|
|||||||
|
|
||||||
/* -- Internal SAM requests. ------------------------------------------------ */
|
/* -- Internal SAM requests. ------------------------------------------------ */
|
||||||
|
|
||||||
static SSAM_DEFINE_SYNC_REQUEST_R(ssam_ssh_get_firmware_version, __le32, {
|
SSAM_DEFINE_SYNC_REQUEST_R(ssam_ssh_get_firmware_version, __le32, {
|
||||||
.target_category = SSAM_SSH_TC_SAM,
|
.target_category = SSAM_SSH_TC_SAM,
|
||||||
.target_id = 0x01,
|
.target_id = 0x01,
|
||||||
.command_id = 0x13,
|
.command_id = 0x13,
|
||||||
.instance_id = 0x00,
|
.instance_id = 0x00,
|
||||||
});
|
});
|
||||||
|
|
||||||
static SSAM_DEFINE_SYNC_REQUEST_R(ssam_ssh_notif_display_off, u8, {
|
SSAM_DEFINE_SYNC_REQUEST_R(ssam_ssh_notif_display_off, u8, {
|
||||||
.target_category = SSAM_SSH_TC_SAM,
|
.target_category = SSAM_SSH_TC_SAM,
|
||||||
.target_id = 0x01,
|
.target_id = 0x01,
|
||||||
.command_id = 0x15,
|
.command_id = 0x15,
|
||||||
.instance_id = 0x00,
|
.instance_id = 0x00,
|
||||||
});
|
});
|
||||||
|
|
||||||
static SSAM_DEFINE_SYNC_REQUEST_R(ssam_ssh_notif_display_on, u8, {
|
SSAM_DEFINE_SYNC_REQUEST_R(ssam_ssh_notif_display_on, u8, {
|
||||||
.target_category = SSAM_SSH_TC_SAM,
|
.target_category = SSAM_SSH_TC_SAM,
|
||||||
.target_id = 0x01,
|
.target_id = 0x01,
|
||||||
.command_id = 0x16,
|
.command_id = 0x16,
|
||||||
.instance_id = 0x00,
|
.instance_id = 0x00,
|
||||||
});
|
});
|
||||||
|
|
||||||
static SSAM_DEFINE_SYNC_REQUEST_R(ssam_ssh_notif_d0_exit, u8, {
|
SSAM_DEFINE_SYNC_REQUEST_R(ssam_ssh_notif_d0_exit, u8, {
|
||||||
.target_category = SSAM_SSH_TC_SAM,
|
.target_category = SSAM_SSH_TC_SAM,
|
||||||
.target_id = 0x01,
|
.target_id = 0x01,
|
||||||
.command_id = 0x33,
|
.command_id = 0x33,
|
||||||
.instance_id = 0x00,
|
.instance_id = 0x00,
|
||||||
});
|
});
|
||||||
|
|
||||||
static SSAM_DEFINE_SYNC_REQUEST_R(ssam_ssh_notif_d0_entry, u8, {
|
SSAM_DEFINE_SYNC_REQUEST_R(ssam_ssh_notif_d0_entry, u8, {
|
||||||
.target_category = SSAM_SSH_TC_SAM,
|
.target_category = SSAM_SSH_TC_SAM,
|
||||||
.target_id = 0x01,
|
.target_id = 0x01,
|
||||||
.command_id = 0x34,
|
.command_id = 0x34,
|
||||||
|
@ -302,7 +302,7 @@ struct ssam_base_hub {
|
|||||||
struct ssam_event_notifier notif;
|
struct ssam_event_notifier notif;
|
||||||
};
|
};
|
||||||
|
|
||||||
static SSAM_DEFINE_SYNC_REQUEST_R(ssam_bas_query_opmode, u8, {
|
SSAM_DEFINE_SYNC_REQUEST_R(ssam_bas_query_opmode, u8, {
|
||||||
.target_category = SSAM_SSH_TC_BAS,
|
.target_category = SSAM_SSH_TC_BAS,
|
||||||
.target_id = 0x01,
|
.target_id = 0x01,
|
||||||
.command_id = 0x0d,
|
.command_id = 0x0d,
|
||||||
|
@ -32,12 +32,12 @@ struct ssam_tmp_profile_device {
|
|||||||
struct platform_profile_handler handler;
|
struct platform_profile_handler handler;
|
||||||
};
|
};
|
||||||
|
|
||||||
static SSAM_DEFINE_SYNC_REQUEST_CL_R(__ssam_tmp_profile_get, struct ssam_tmp_profile_info, {
|
SSAM_DEFINE_SYNC_REQUEST_CL_R(__ssam_tmp_profile_get, struct ssam_tmp_profile_info, {
|
||||||
.target_category = SSAM_SSH_TC_TMP,
|
.target_category = SSAM_SSH_TC_TMP,
|
||||||
.command_id = 0x02,
|
.command_id = 0x02,
|
||||||
});
|
});
|
||||||
|
|
||||||
static SSAM_DEFINE_SYNC_REQUEST_CL_W(__ssam_tmp_profile_set, __le32, {
|
SSAM_DEFINE_SYNC_REQUEST_CL_W(__ssam_tmp_profile_set, __le32, {
|
||||||
.target_category = SSAM_SSH_TC_TMP,
|
.target_category = SSAM_SSH_TC_TMP,
|
||||||
.command_id = 0x03,
|
.command_id = 0x03,
|
||||||
});
|
});
|
||||||
|
@ -344,16 +344,16 @@ struct ssam_request_spec_md {
|
|||||||
* request has been fully completed. The required transport buffer will be
|
* request has been fully completed. The required transport buffer will be
|
||||||
* allocated on the stack.
|
* allocated on the stack.
|
||||||
*
|
*
|
||||||
* The generated function is defined as ``int name(struct ssam_controller
|
* The generated function is defined as ``static int name(struct
|
||||||
* *ctrl)``, returning the status of the request, which is zero on success and
|
* ssam_controller *ctrl)``, returning the status of the request, which is
|
||||||
* negative on failure. The ``ctrl`` parameter is the controller via which the
|
* zero on success and negative on failure. The ``ctrl`` parameter is the
|
||||||
* request is being sent.
|
* controller via which the request is being sent.
|
||||||
*
|
*
|
||||||
* Refer to ssam_request_sync_onstack() for more details on the behavior of
|
* Refer to ssam_request_sync_onstack() for more details on the behavior of
|
||||||
* the generated function.
|
* the generated function.
|
||||||
*/
|
*/
|
||||||
#define SSAM_DEFINE_SYNC_REQUEST_N(name, spec...) \
|
#define SSAM_DEFINE_SYNC_REQUEST_N(name, spec...) \
|
||||||
int name(struct ssam_controller *ctrl) \
|
static int name(struct ssam_controller *ctrl) \
|
||||||
{ \
|
{ \
|
||||||
struct ssam_request_spec s = (struct ssam_request_spec)spec; \
|
struct ssam_request_spec s = (struct ssam_request_spec)spec; \
|
||||||
struct ssam_request rqst; \
|
struct ssam_request rqst; \
|
||||||
@ -383,17 +383,17 @@ struct ssam_request_spec_md {
|
|||||||
* returning once the request has been fully completed. The required transport
|
* returning once the request has been fully completed. The required transport
|
||||||
* buffer will be allocated on the stack.
|
* buffer will be allocated on the stack.
|
||||||
*
|
*
|
||||||
* The generated function is defined as ``int name(struct ssam_controller
|
* The generated function is defined as ``static int name(struct
|
||||||
* *ctrl, const atype *arg)``, returning the status of the request, which is
|
* ssam_controller *ctrl, const atype *arg)``, returning the status of the
|
||||||
* zero on success and negative on failure. The ``ctrl`` parameter is the
|
* request, which is zero on success and negative on failure. The ``ctrl``
|
||||||
* controller via which the request is sent. The request argument is specified
|
* parameter is the controller via which the request is sent. The request
|
||||||
* via the ``arg`` pointer.
|
* argument is specified via the ``arg`` pointer.
|
||||||
*
|
*
|
||||||
* Refer to ssam_request_sync_onstack() for more details on the behavior of
|
* Refer to ssam_request_sync_onstack() for more details on the behavior of
|
||||||
* the generated function.
|
* the generated function.
|
||||||
*/
|
*/
|
||||||
#define SSAM_DEFINE_SYNC_REQUEST_W(name, atype, spec...) \
|
#define SSAM_DEFINE_SYNC_REQUEST_W(name, atype, spec...) \
|
||||||
int name(struct ssam_controller *ctrl, const atype *arg) \
|
static int name(struct ssam_controller *ctrl, const atype *arg) \
|
||||||
{ \
|
{ \
|
||||||
struct ssam_request_spec s = (struct ssam_request_spec)spec; \
|
struct ssam_request_spec s = (struct ssam_request_spec)spec; \
|
||||||
struct ssam_request rqst; \
|
struct ssam_request rqst; \
|
||||||
@ -424,17 +424,17 @@ struct ssam_request_spec_md {
|
|||||||
* request itself, returning once the request has been fully completed. The
|
* request itself, returning once the request has been fully completed. The
|
||||||
* required transport buffer will be allocated on the stack.
|
* required transport buffer will be allocated on the stack.
|
||||||
*
|
*
|
||||||
* The generated function is defined as ``int name(struct ssam_controller
|
* The generated function is defined as ``static int name(struct
|
||||||
* *ctrl, rtype *ret)``, returning the status of the request, which is zero on
|
* ssam_controller *ctrl, rtype *ret)``, returning the status of the request,
|
||||||
* success and negative on failure. The ``ctrl`` parameter is the controller
|
* which is zero on success and negative on failure. The ``ctrl`` parameter is
|
||||||
* via which the request is sent. The request's return value is written to the
|
* the controller via which the request is sent. The request's return value is
|
||||||
* memory pointed to by the ``ret`` parameter.
|
* written to the memory pointed to by the ``ret`` parameter.
|
||||||
*
|
*
|
||||||
* Refer to ssam_request_sync_onstack() for more details on the behavior of
|
* Refer to ssam_request_sync_onstack() for more details on the behavior of
|
||||||
* the generated function.
|
* the generated function.
|
||||||
*/
|
*/
|
||||||
#define SSAM_DEFINE_SYNC_REQUEST_R(name, rtype, spec...) \
|
#define SSAM_DEFINE_SYNC_REQUEST_R(name, rtype, spec...) \
|
||||||
int name(struct ssam_controller *ctrl, rtype *ret) \
|
static int name(struct ssam_controller *ctrl, rtype *ret) \
|
||||||
{ \
|
{ \
|
||||||
struct ssam_request_spec s = (struct ssam_request_spec)spec; \
|
struct ssam_request_spec s = (struct ssam_request_spec)spec; \
|
||||||
struct ssam_request rqst; \
|
struct ssam_request rqst; \
|
||||||
@ -483,17 +483,17 @@ struct ssam_request_spec_md {
|
|||||||
* returning once the request has been fully completed. The required transport
|
* returning once the request has been fully completed. The required transport
|
||||||
* buffer will be allocated on the stack.
|
* buffer will be allocated on the stack.
|
||||||
*
|
*
|
||||||
* The generated function is defined as ``int name(struct ssam_controller
|
* The generated function is defined as ``static int name(struct
|
||||||
* *ctrl, u8 tid, u8 iid)``, returning the status of the request, which is
|
* ssam_controller *ctrl, u8 tid, u8 iid)``, returning the status of the
|
||||||
* zero on success and negative on failure. The ``ctrl`` parameter is the
|
* request, which is zero on success and negative on failure. The ``ctrl``
|
||||||
* controller via which the request is sent, ``tid`` the target ID for the
|
* parameter is the controller via which the request is sent, ``tid`` the
|
||||||
* request, and ``iid`` the instance ID.
|
* target ID for the request, and ``iid`` the instance ID.
|
||||||
*
|
*
|
||||||
* Refer to ssam_request_sync_onstack() for more details on the behavior of
|
* Refer to ssam_request_sync_onstack() for more details on the behavior of
|
||||||
* the generated function.
|
* the generated function.
|
||||||
*/
|
*/
|
||||||
#define SSAM_DEFINE_SYNC_REQUEST_MD_N(name, spec...) \
|
#define SSAM_DEFINE_SYNC_REQUEST_MD_N(name, spec...) \
|
||||||
int name(struct ssam_controller *ctrl, u8 tid, u8 iid) \
|
static int name(struct ssam_controller *ctrl, u8 tid, u8 iid) \
|
||||||
{ \
|
{ \
|
||||||
struct ssam_request_spec_md s = (struct ssam_request_spec_md)spec; \
|
struct ssam_request_spec_md s = (struct ssam_request_spec_md)spec; \
|
||||||
struct ssam_request rqst; \
|
struct ssam_request rqst; \
|
||||||
@ -524,18 +524,18 @@ struct ssam_request_spec_md {
|
|||||||
* the request itself, returning once the request has been fully completed.
|
* the request itself, returning once the request has been fully completed.
|
||||||
* The required transport buffer will be allocated on the stack.
|
* The required transport buffer will be allocated on the stack.
|
||||||
*
|
*
|
||||||
* The generated function is defined as ``int name(struct ssam_controller
|
* The generated function is defined as ``static int name(struct
|
||||||
* *ctrl, u8 tid, u8 iid, const atype *arg)``, returning the status of the
|
* ssam_controller *ctrl, u8 tid, u8 iid, const atype *arg)``, returning the
|
||||||
* request, which is zero on success and negative on failure. The ``ctrl``
|
* status of the request, which is zero on success and negative on failure.
|
||||||
* parameter is the controller via which the request is sent, ``tid`` the
|
* The ``ctrl`` parameter is the controller via which the request is sent,
|
||||||
* target ID for the request, and ``iid`` the instance ID. The request argument
|
* ``tid`` the target ID for the request, and ``iid`` the instance ID. The
|
||||||
* is specified via the ``arg`` pointer.
|
* request argument is specified via the ``arg`` pointer.
|
||||||
*
|
*
|
||||||
* Refer to ssam_request_sync_onstack() for more details on the behavior of
|
* Refer to ssam_request_sync_onstack() for more details on the behavior of
|
||||||
* the generated function.
|
* the generated function.
|
||||||
*/
|
*/
|
||||||
#define SSAM_DEFINE_SYNC_REQUEST_MD_W(name, atype, spec...) \
|
#define SSAM_DEFINE_SYNC_REQUEST_MD_W(name, atype, spec...) \
|
||||||
int name(struct ssam_controller *ctrl, u8 tid, u8 iid, const atype *arg)\
|
static int name(struct ssam_controller *ctrl, u8 tid, u8 iid, const atype *arg) \
|
||||||
{ \
|
{ \
|
||||||
struct ssam_request_spec_md s = (struct ssam_request_spec_md)spec; \
|
struct ssam_request_spec_md s = (struct ssam_request_spec_md)spec; \
|
||||||
struct ssam_request rqst; \
|
struct ssam_request rqst; \
|
||||||
@ -567,18 +567,18 @@ struct ssam_request_spec_md {
|
|||||||
* execution of the request itself, returning once the request has been fully
|
* execution of the request itself, returning once the request has been fully
|
||||||
* completed. The required transport buffer will be allocated on the stack.
|
* completed. The required transport buffer will be allocated on the stack.
|
||||||
*
|
*
|
||||||
* The generated function is defined as ``int name(struct ssam_controller
|
* The generated function is defined as ``static int name(struct
|
||||||
* *ctrl, u8 tid, u8 iid, rtype *ret)``, returning the status of the request,
|
* ssam_controller *ctrl, u8 tid, u8 iid, rtype *ret)``, returning the status
|
||||||
* which is zero on success and negative on failure. The ``ctrl`` parameter is
|
* of the request, which is zero on success and negative on failure. The
|
||||||
* the controller via which the request is sent, ``tid`` the target ID for the
|
* ``ctrl`` parameter is the controller via which the request is sent, ``tid``
|
||||||
* request, and ``iid`` the instance ID. The request's return value is written
|
* the target ID for the request, and ``iid`` the instance ID. The request's
|
||||||
* to the memory pointed to by the ``ret`` parameter.
|
* return value is written to the memory pointed to by the ``ret`` parameter.
|
||||||
*
|
*
|
||||||
* Refer to ssam_request_sync_onstack() for more details on the behavior of
|
* Refer to ssam_request_sync_onstack() for more details on the behavior of
|
||||||
* the generated function.
|
* the generated function.
|
||||||
*/
|
*/
|
||||||
#define SSAM_DEFINE_SYNC_REQUEST_MD_R(name, rtype, spec...) \
|
#define SSAM_DEFINE_SYNC_REQUEST_MD_R(name, rtype, spec...) \
|
||||||
int name(struct ssam_controller *ctrl, u8 tid, u8 iid, rtype *ret) \
|
static int name(struct ssam_controller *ctrl, u8 tid, u8 iid, rtype *ret) \
|
||||||
{ \
|
{ \
|
||||||
struct ssam_request_spec_md s = (struct ssam_request_spec_md)spec; \
|
struct ssam_request_spec_md s = (struct ssam_request_spec_md)spec; \
|
||||||
struct ssam_request rqst; \
|
struct ssam_request rqst; \
|
||||||
|
@ -336,17 +336,18 @@ void ssam_device_driver_unregister(struct ssam_device_driver *d);
|
|||||||
* request has been fully completed. The required transport buffer will be
|
* request has been fully completed. The required transport buffer will be
|
||||||
* allocated on the stack.
|
* allocated on the stack.
|
||||||
*
|
*
|
||||||
* The generated function is defined as ``int name(struct ssam_device *sdev)``,
|
* The generated function is defined as ``static int name(struct ssam_device
|
||||||
* returning the status of the request, which is zero on success and negative
|
* *sdev)``, returning the status of the request, which is zero on success and
|
||||||
* on failure. The ``sdev`` parameter specifies both the target device of the
|
* negative on failure. The ``sdev`` parameter specifies both the target
|
||||||
* request and by association the controller via which the request is sent.
|
* device of the request and by association the controller via which the
|
||||||
|
* request is sent.
|
||||||
*
|
*
|
||||||
* Refer to ssam_request_sync_onstack() for more details on the behavior of
|
* Refer to ssam_request_sync_onstack() for more details on the behavior of
|
||||||
* the generated function.
|
* the generated function.
|
||||||
*/
|
*/
|
||||||
#define SSAM_DEFINE_SYNC_REQUEST_CL_N(name, spec...) \
|
#define SSAM_DEFINE_SYNC_REQUEST_CL_N(name, spec...) \
|
||||||
SSAM_DEFINE_SYNC_REQUEST_MD_N(__raw_##name, spec) \
|
SSAM_DEFINE_SYNC_REQUEST_MD_N(__raw_##name, spec) \
|
||||||
int name(struct ssam_device *sdev) \
|
static int name(struct ssam_device *sdev) \
|
||||||
{ \
|
{ \
|
||||||
return __raw_##name(sdev->ctrl, sdev->uid.target, \
|
return __raw_##name(sdev->ctrl, sdev->uid.target, \
|
||||||
sdev->uid.instance); \
|
sdev->uid.instance); \
|
||||||
@ -368,19 +369,19 @@ void ssam_device_driver_unregister(struct ssam_device_driver *d);
|
|||||||
* itself, returning once the request has been fully completed. The required
|
* itself, returning once the request has been fully completed. The required
|
||||||
* transport buffer will be allocated on the stack.
|
* transport buffer will be allocated on the stack.
|
||||||
*
|
*
|
||||||
* The generated function is defined as ``int name(struct ssam_device *sdev,
|
* The generated function is defined as ``static int name(struct ssam_device
|
||||||
* const atype *arg)``, returning the status of the request, which is zero on
|
* *sdev, const atype *arg)``, returning the status of the request, which is
|
||||||
* success and negative on failure. The ``sdev`` parameter specifies both the
|
* zero on success and negative on failure. The ``sdev`` parameter specifies
|
||||||
* target device of the request and by association the controller via which
|
* both the target device of the request and by association the controller via
|
||||||
* the request is sent. The request's argument is specified via the ``arg``
|
* which the request is sent. The request's argument is specified via the
|
||||||
* pointer.
|
* ``arg`` pointer.
|
||||||
*
|
*
|
||||||
* Refer to ssam_request_sync_onstack() for more details on the behavior of
|
* Refer to ssam_request_sync_onstack() for more details on the behavior of
|
||||||
* the generated function.
|
* the generated function.
|
||||||
*/
|
*/
|
||||||
#define SSAM_DEFINE_SYNC_REQUEST_CL_W(name, atype, spec...) \
|
#define SSAM_DEFINE_SYNC_REQUEST_CL_W(name, atype, spec...) \
|
||||||
SSAM_DEFINE_SYNC_REQUEST_MD_W(__raw_##name, atype, spec) \
|
SSAM_DEFINE_SYNC_REQUEST_MD_W(__raw_##name, atype, spec) \
|
||||||
int name(struct ssam_device *sdev, const atype *arg) \
|
static int name(struct ssam_device *sdev, const atype *arg) \
|
||||||
{ \
|
{ \
|
||||||
return __raw_##name(sdev->ctrl, sdev->uid.target, \
|
return __raw_##name(sdev->ctrl, sdev->uid.target, \
|
||||||
sdev->uid.instance, arg); \
|
sdev->uid.instance, arg); \
|
||||||
@ -402,8 +403,8 @@ void ssam_device_driver_unregister(struct ssam_device_driver *d);
|
|||||||
* itself, returning once the request has been fully completed. The required
|
* itself, returning once the request has been fully completed. The required
|
||||||
* transport buffer will be allocated on the stack.
|
* transport buffer will be allocated on the stack.
|
||||||
*
|
*
|
||||||
* The generated function is defined as ``int name(struct ssam_device *sdev,
|
* The generated function is defined as ``static int name(struct ssam_device
|
||||||
* rtype *ret)``, returning the status of the request, which is zero on
|
* *sdev, rtype *ret)``, returning the status of the request, which is zero on
|
||||||
* success and negative on failure. The ``sdev`` parameter specifies both the
|
* success and negative on failure. The ``sdev`` parameter specifies both the
|
||||||
* target device of the request and by association the controller via which
|
* target device of the request and by association the controller via which
|
||||||
* the request is sent. The request's return value is written to the memory
|
* the request is sent. The request's return value is written to the memory
|
||||||
@ -414,7 +415,7 @@ void ssam_device_driver_unregister(struct ssam_device_driver *d);
|
|||||||
*/
|
*/
|
||||||
#define SSAM_DEFINE_SYNC_REQUEST_CL_R(name, rtype, spec...) \
|
#define SSAM_DEFINE_SYNC_REQUEST_CL_R(name, rtype, spec...) \
|
||||||
SSAM_DEFINE_SYNC_REQUEST_MD_R(__raw_##name, rtype, spec) \
|
SSAM_DEFINE_SYNC_REQUEST_MD_R(__raw_##name, rtype, spec) \
|
||||||
int name(struct ssam_device *sdev, rtype *ret) \
|
static int name(struct ssam_device *sdev, rtype *ret) \
|
||||||
{ \
|
{ \
|
||||||
return __raw_##name(sdev->ctrl, sdev->uid.target, \
|
return __raw_##name(sdev->ctrl, sdev->uid.target, \
|
||||||
sdev->uid.instance, ret); \
|
sdev->uid.instance, ret); \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user