16f52b16cSGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 254579826SDavid Howells #ifndef _SPARC_OPENPROMIO_H 354579826SDavid Howells #define _SPARC_OPENPROMIO_H 454579826SDavid Howells 554579826SDavid Howells #include <linux/compiler.h> 654579826SDavid Howells #include <linux/ioctl.h> 754579826SDavid Howells 854579826SDavid Howells /* 954579826SDavid Howells * SunOS and Solaris /dev/openprom definitions. The ioctl values 1054579826SDavid Howells * were chosen to be exactly equal to the SunOS equivalents. 1154579826SDavid Howells */ 1254579826SDavid Howells 13*221a4b56SGustavo A. R. Silva struct openpromio { 1415d5dfafSMasahiro Yamada unsigned int oprom_size; /* Actual size of the oprom_array. */ 15*221a4b56SGustavo A. R. Silva char oprom_array[]; /* Holds property names and values. */ 1654579826SDavid Howells }; 1754579826SDavid Howells 1854579826SDavid Howells #define OPROMMAXPARAM 4096 /* Maximum size of oprom_array. */ 1954579826SDavid Howells 2054579826SDavid Howells #define OPROMGETOPT 0x20004F01 2154579826SDavid Howells #define OPROMSETOPT 0x20004F02 2254579826SDavid Howells #define OPROMNXTOPT 0x20004F03 2354579826SDavid Howells #define OPROMSETOPT2 0x20004F04 2454579826SDavid Howells #define OPROMNEXT 0x20004F05 2554579826SDavid Howells #define OPROMCHILD 0x20004F06 2654579826SDavid Howells #define OPROMGETPROP 0x20004F07 2754579826SDavid Howells #define OPROMNXTPROP 0x20004F08 2854579826SDavid Howells #define OPROMU2P 0x20004F09 2954579826SDavid Howells #define OPROMGETCONS 0x20004F0A 3054579826SDavid Howells #define OPROMGETFBNAME 0x20004F0B 3154579826SDavid Howells #define OPROMGETBOOTARGS 0x20004F0C 3254579826SDavid Howells /* Linux extensions */ /* Arguments in oprom_array: */ 3354579826SDavid Howells #define OPROMSETCUR 0x20004FF0 /* int node - Sets current node */ 3454579826SDavid Howells #define OPROMPCI2NODE 0x20004FF1 /* int pci_bus, pci_devfn - Sets current node to PCI device's node */ 3554579826SDavid Howells #define OPROMPATH2NODE 0x20004FF2 /* char path[] - Set current node from fully qualified PROM path */ 3654579826SDavid Howells 3754579826SDavid Howells /* 3854579826SDavid Howells * Return values from OPROMGETCONS: 3954579826SDavid Howells */ 4054579826SDavid Howells 4154579826SDavid Howells #define OPROMCONS_NOT_WSCONS 0 4254579826SDavid Howells #define OPROMCONS_STDIN_IS_KBD 0x1 /* stdin device is kbd */ 4354579826SDavid Howells #define OPROMCONS_STDOUT_IS_FB 0x2 /* stdout is a framebuffer */ 4454579826SDavid Howells #define OPROMCONS_OPENPROM 0x4 /* supports openboot */ 4554579826SDavid Howells 4654579826SDavid Howells 4754579826SDavid Howells /* 4854579826SDavid Howells * NetBSD/OpenBSD /dev/openprom definitions. 4954579826SDavid Howells */ 5054579826SDavid Howells 5154579826SDavid Howells struct opiocdesc 5254579826SDavid Howells { 5354579826SDavid Howells int op_nodeid; /* PROM Node ID (value-result) */ 5454579826SDavid Howells int op_namelen; /* Length of op_name. */ 5554579826SDavid Howells char __user *op_name; /* Pointer to the property name. */ 5654579826SDavid Howells int op_buflen; /* Length of op_buf (value-result) */ 5754579826SDavid Howells char __user *op_buf; /* Pointer to buffer. */ 5854579826SDavid Howells }; 5954579826SDavid Howells 6054579826SDavid Howells #define OPIOCGET _IOWR('O', 1, struct opiocdesc) 6154579826SDavid Howells #define OPIOCSET _IOW('O', 2, struct opiocdesc) 6254579826SDavid Howells #define OPIOCNEXTPROP _IOWR('O', 3, struct opiocdesc) 6354579826SDavid Howells #define OPIOCGETOPTNODE _IOR('O', 4, int) 6454579826SDavid Howells #define OPIOCGETNEXT _IOWR('O', 5, int) 6554579826SDavid Howells #define OPIOCGETCHILD _IOWR('O', 6, int) 6654579826SDavid Howells 6754579826SDavid Howells #endif /* _SPARC_OPENPROMIO_H */ 6854579826SDavid Howells 69