forked from Minki/linux
staging: unisys: visornic: Move function to appropriate location
Move function add_physinfo_entries() to visornic_main.c, which is the only function where it is used. Signed-off-by: David Binder <david.binder@unisys.com> Signed-off-by: David Kershner <david.kershner@unisys.com> Reviewed-by: Tim Sell <timothy.sell@unisys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
392064a0c1
commit
ea0d207564
@ -551,41 +551,4 @@ struct spar_io_channel_protocol {
|
|||||||
#define PI_PAGE_SIZE 0x1000
|
#define PI_PAGE_SIZE 0x1000
|
||||||
#define PI_PAGE_MASK 0x0FFF
|
#define PI_PAGE_MASK 0x0FFF
|
||||||
|
|
||||||
/* Returns next non-zero index on success or 0 on failure (i.e. out of room). */
|
|
||||||
static inline u16
|
|
||||||
add_physinfo_entries(u64 inp_pfn, u16 inp_off, u32 inp_len, u16 index,
|
|
||||||
u16 max_pi_arr_entries, struct phys_info pi_arr[])
|
|
||||||
{
|
|
||||||
u32 len;
|
|
||||||
u16 i, firstlen;
|
|
||||||
|
|
||||||
firstlen = PI_PAGE_SIZE - inp_off;
|
|
||||||
if (inp_len <= firstlen) {
|
|
||||||
/* The input entry spans only one page - add as is. */
|
|
||||||
if (index >= max_pi_arr_entries)
|
|
||||||
return 0;
|
|
||||||
pi_arr[index].pi_pfn = inp_pfn;
|
|
||||||
pi_arr[index].pi_off = (u16)inp_off;
|
|
||||||
pi_arr[index].pi_len = (u16)inp_len;
|
|
||||||
return index + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* This entry spans multiple pages. */
|
|
||||||
for (len = inp_len, i = 0; len;
|
|
||||||
len -= pi_arr[index + i].pi_len, i++) {
|
|
||||||
if (index + i >= max_pi_arr_entries)
|
|
||||||
return 0;
|
|
||||||
pi_arr[index + i].pi_pfn = inp_pfn + i;
|
|
||||||
if (i == 0) {
|
|
||||||
pi_arr[index].pi_off = inp_off;
|
|
||||||
pi_arr[index].pi_len = firstlen;
|
|
||||||
} else {
|
|
||||||
pi_arr[index + i].pi_off = 0;
|
|
||||||
pi_arr[index + i].pi_len =
|
|
||||||
(u16)MINNUM(len, (u32)PI_PAGE_SIZE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return index + i;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* __IOCHANNEL_H__ */
|
#endif /* __IOCHANNEL_H__ */
|
||||||
|
@ -141,6 +141,43 @@ struct visornic_devdata {
|
|||||||
struct uiscmdrsp cmdrsp[SIZEOF_CMDRSP];
|
struct uiscmdrsp cmdrsp[SIZEOF_CMDRSP];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* Returns next non-zero index on success or 0 on failure (i.e. out of room). */
|
||||||
|
static inline u16
|
||||||
|
add_physinfo_entries(u64 inp_pfn, u16 inp_off, u32 inp_len, u16 index,
|
||||||
|
u16 max_pi_arr_entries, struct phys_info pi_arr[])
|
||||||
|
{
|
||||||
|
u32 len;
|
||||||
|
u16 i, firstlen;
|
||||||
|
|
||||||
|
firstlen = PI_PAGE_SIZE - inp_off;
|
||||||
|
if (inp_len <= firstlen) {
|
||||||
|
/* The input entry spans only one page - add as is. */
|
||||||
|
if (index >= max_pi_arr_entries)
|
||||||
|
return 0;
|
||||||
|
pi_arr[index].pi_pfn = inp_pfn;
|
||||||
|
pi_arr[index].pi_off = (u16)inp_off;
|
||||||
|
pi_arr[index].pi_len = (u16)inp_len;
|
||||||
|
return index + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* This entry spans multiple pages. */
|
||||||
|
for (len = inp_len, i = 0; len;
|
||||||
|
len -= pi_arr[index + i].pi_len, i++) {
|
||||||
|
if (index + i >= max_pi_arr_entries)
|
||||||
|
return 0;
|
||||||
|
pi_arr[index + i].pi_pfn = inp_pfn + i;
|
||||||
|
if (i == 0) {
|
||||||
|
pi_arr[index].pi_off = inp_off;
|
||||||
|
pi_arr[index].pi_len = firstlen;
|
||||||
|
} else {
|
||||||
|
pi_arr[index + i].pi_off = 0;
|
||||||
|
pi_arr[index + i].pi_len =
|
||||||
|
(u16)MINNUM(len, (u32)PI_PAGE_SIZE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return index + i;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* visor_copy_fragsinfo_from_skb(
|
* visor_copy_fragsinfo_from_skb(
|
||||||
* @skb_in: skbuff that we are pulling the frags from
|
* @skb_in: skbuff that we are pulling the frags from
|
||||||
|
Loading…
Reference in New Issue
Block a user