Lines Matching refs:r
79 struct resource *r; in rid_lookup() local
85 r = ridtbl + rid; in rid_lookup()
86 if (r->fd == -1) { in rid_lookup()
90 return (r); in rid_lookup()
98 struct resource *r; in bs_map() local
109 r = rid_lookup(rid); in bs_map()
110 if (r == NULL) in bs_map()
112 r->fd = open(path, O_RDWR); in bs_map()
113 if (r->fd == -1) in bs_map()
115 r->rid = -1; in bs_map()
116 if (ioctl(r->fd, PROTO_IOC_REGION, ®ion) == -1) { in bs_map()
117 close(r->fd); in bs_map()
118 r->fd = -1; in bs_map()
121 r->addr = region.address; in bs_map()
122 r->size = region.size; in bs_map()
123 r->ofs = 0; in bs_map()
124 r->ptr = mmap(NULL, r->size, PROT_READ | PROT_WRITE, in bs_map()
125 MAP_NOCORE | MAP_SHARED, r->fd, r->ofs); in bs_map()
132 struct resource *r; in bs_read() local
137 r = rid_lookup(rid); in bs_read()
138 if (r == NULL) in bs_read()
140 if (ofs < 0 || ofs > r->size - bufsz) { in bs_read()
144 ofs += r->ofs; in bs_read()
145 if (r->ptr != MAP_FAILED) { in bs_read()
146 ptr = r->ptr + ofs; in bs_read()
162 o = lseek(r->fd, ofs, SEEK_SET); in bs_read()
165 s = read(r->fd, buf, bufsz); in bs_read()
175 struct resource *r; in bs_subregion() local
180 r = rid_lookup(rid0); in bs_subregion()
181 if (r == NULL) in bs_subregion()
187 if (ofs + sz > r->size) { in bs_subregion()
191 fd0 = r->fd; in bs_subregion()
192 addr0 = r->addr; in bs_subregion()
193 ofs0 = r->ofs; in bs_subregion()
194 ptr0 = r->ptr; in bs_subregion()
198 r = rid_lookup(rid); in bs_subregion()
199 if (r == NULL) in bs_subregion()
201 r->rid = rid0; in bs_subregion()
202 r->fd = fd0; in bs_subregion()
203 r->addr = addr0 + ofs; in bs_subregion()
204 r->size = sz; in bs_subregion()
205 r->ofs = ofs0 + ofs; in bs_subregion()
206 r->ptr = ptr0; in bs_subregion()
213 struct resource *r; in bs_unmap() local
215 r = rid_lookup(rid); in bs_unmap()
216 if (r == NULL) in bs_unmap()
218 if (r->rid == -1) { in bs_unmap()
219 if (r->ptr != MAP_FAILED) in bs_unmap()
220 munmap(r->ptr, r->size); in bs_unmap()
221 close(r->fd); in bs_unmap()
223 r->fd = -1; in bs_unmap()
230 struct resource *r; in bs_write() local
235 r = rid_lookup(rid); in bs_write()
236 if (r == NULL) in bs_write()
238 if (ofs < 0 || ofs > r->size - bufsz) { in bs_write()
242 ofs += r->ofs; in bs_write()
243 if (r->ptr != MAP_FAILED) { in bs_write()
244 ptr = r->ptr + ofs; in bs_write()
260 o = lseek(r->fd, ofs, SEEK_SET); in bs_write()
263 s = write(r->fd, buf, bufsz); in bs_write()