Changeset View
Changeset View
Standalone View
Standalone View
sys/sys/sglist.h
Show First 20 Lines • Show All 51 Lines • ▼ Show 20 Lines | struct sglist { | ||||
struct sglist_seg *sg_segs; | struct sglist_seg *sg_segs; | ||||
u_int sg_refs; | u_int sg_refs; | ||||
u_short sg_nseg; | u_short sg_nseg; | ||||
u_short sg_maxseg; | u_short sg_maxseg; | ||||
}; | }; | ||||
struct bio; | struct bio; | ||||
struct mbuf; | struct mbuf; | ||||
struct mbuf_ext_pgs; | |||||
struct uio; | struct uio; | ||||
static __inline void | static __inline void | ||||
sglist_init(struct sglist *sg, u_short maxsegs, struct sglist_seg *segs) | sglist_init(struct sglist *sg, u_short maxsegs, struct sglist_seg *segs) | ||||
{ | { | ||||
sg->sg_segs = segs; | sg->sg_segs = segs; | ||||
sg->sg_nseg = 0; | sg->sg_nseg = 0; | ||||
Show All 14 Lines | sglist_hold(struct sglist *sg) | ||||
refcount_acquire(&sg->sg_refs); | refcount_acquire(&sg->sg_refs); | ||||
return (sg); | return (sg); | ||||
} | } | ||||
struct sglist *sglist_alloc(int nsegs, int mflags); | struct sglist *sglist_alloc(int nsegs, int mflags); | ||||
int sglist_append(struct sglist *sg, void *buf, size_t len); | int sglist_append(struct sglist *sg, void *buf, size_t len); | ||||
int sglist_append_bio(struct sglist *sg, struct bio *bp); | int sglist_append_bio(struct sglist *sg, struct bio *bp); | ||||
int sglist_append_ext_pgs(struct sglist *sg, struct mbuf_ext_pgs *ext_pgs, | |||||
size_t off, size_t len); | |||||
int sglist_append_mb_ext_pgs(struct sglist *sg, struct mbuf *m); | |||||
int sglist_append_mbuf(struct sglist *sg, struct mbuf *m0); | int sglist_append_mbuf(struct sglist *sg, struct mbuf *m0); | ||||
int sglist_append_phys(struct sglist *sg, vm_paddr_t paddr, | int sglist_append_phys(struct sglist *sg, vm_paddr_t paddr, | ||||
size_t len); | size_t len); | ||||
int sglist_append_sglist(struct sglist *sg, struct sglist *source, | int sglist_append_sglist(struct sglist *sg, struct sglist *source, | ||||
size_t offset, size_t length); | size_t offset, size_t length); | ||||
int sglist_append_uio(struct sglist *sg, struct uio *uio); | int sglist_append_uio(struct sglist *sg, struct uio *uio); | ||||
int sglist_append_user(struct sglist *sg, void *buf, size_t len, | int sglist_append_user(struct sglist *sg, void *buf, size_t len, | ||||
struct thread *td); | struct thread *td); | ||||
int sglist_append_vmpages(struct sglist *sg, vm_page_t *m, size_t pgoff, | int sglist_append_vmpages(struct sglist *sg, vm_page_t *m, size_t pgoff, | ||||
size_t len); | size_t len); | ||||
struct sglist *sglist_build(void *buf, size_t len, int mflags); | struct sglist *sglist_build(void *buf, size_t len, int mflags); | ||||
struct sglist *sglist_clone(struct sglist *sg, int mflags); | struct sglist *sglist_clone(struct sglist *sg, int mflags); | ||||
int sglist_consume_uio(struct sglist *sg, struct uio *uio, size_t resid); | int sglist_consume_uio(struct sglist *sg, struct uio *uio, size_t resid); | ||||
int sglist_count(void *buf, size_t len); | int sglist_count(void *buf, size_t len); | ||||
int sglist_count_ext_pgs(struct mbuf_ext_pgs *ext_pgs, size_t off, | |||||
size_t len); | |||||
int sglist_count_mb_ext_pgs(struct mbuf *m); | |||||
int sglist_count_vmpages(vm_page_t *m, size_t pgoff, size_t len); | int sglist_count_vmpages(vm_page_t *m, size_t pgoff, size_t len); | ||||
void sglist_free(struct sglist *sg); | void sglist_free(struct sglist *sg); | ||||
int sglist_join(struct sglist *first, struct sglist *second); | int sglist_join(struct sglist *first, struct sglist *second); | ||||
size_t sglist_length(struct sglist *sg); | size_t sglist_length(struct sglist *sg); | ||||
int sglist_slice(struct sglist *original, struct sglist **slice, | int sglist_slice(struct sglist *original, struct sglist **slice, | ||||
size_t offset, size_t length, int mflags); | size_t offset, size_t length, int mflags); | ||||
int sglist_split(struct sglist *original, struct sglist **head, | int sglist_split(struct sglist *original, struct sglist **head, | ||||
size_t length, int mflags); | size_t length, int mflags); | ||||
#endif /* !__SGLIST_H__ */ | #endif /* !__SGLIST_H__ */ |