ARGSUSED*/
| 254 | |
| 255 | /*ARGSUSED*/ |
| 256 | static int |
| 257 | logioctl(struct cdev *dev, u_long com, caddr_t data, int flag, struct thread *td) |
| 258 | { |
| 259 | |
| 260 | switch (com) { |
| 261 | /* return number of characters immediately available */ |
| 262 | case FIONREAD: |
| 263 | *(int *)data = msgbuf_getcount(msgbufp); |
| 264 | break; |
| 265 | |
| 266 | case FIONBIO: |
| 267 | break; |
| 268 | |
| 269 | case FIOASYNC: |
| 270 | mtx_lock(&msgbuf_lock); |
| 271 | if (*(int *)data) |
| 272 | logsoftc.sc_state |= LOG_ASYNC; |
| 273 | else |
| 274 | logsoftc.sc_state &= ~LOG_ASYNC; |
| 275 | mtx_unlock(&msgbuf_lock); |
| 276 | break; |
| 277 | |
| 278 | case FIOSETOWN: |
| 279 | return (fsetown(*(int *)data, &logsoftc.sc_sigio)); |
| 280 | |
| 281 | case FIOGETOWN: |
| 282 | *(int *)data = fgetown(&logsoftc.sc_sigio); |
| 283 | break; |
| 284 | |
| 285 | /* This is deprecated, FIOSETOWN should be used instead. */ |
| 286 | case TIOCSPGRP: |
| 287 | return (fsetown(-(*(int *)data), &logsoftc.sc_sigio)); |
| 288 | |
| 289 | /* This is deprecated, FIOGETOWN should be used instead */ |
| 290 | case TIOCGPGRP: |
| 291 | *(int *)data = -fgetown(&logsoftc.sc_sigio); |
| 292 | break; |
| 293 | |
| 294 | default: |
| 295 | return (ENOTTY); |
| 296 | } |
| 297 | return (0); |
| 298 | } |
| 299 | |
| 300 | static void |
| 301 | log_drvinit(void *unused) |
nothing calls this directly
no test coverage detected